Blob Blame History Raw
From 3967a2b0e7e61dfb6317296a4cf15d0fe91a1638 Mon Sep 17 00:00:00 2001
From: Noriko Hosoi <nhosoi@redhat.com>
Date: Thu, 15 Oct 2020 10:52:29 -0700
Subject: [PATCH 7/7] RHELPLAN-56807 - Logging - elasticsearch - need to adjust
 jinja2 boolean values to the rsyslog config values

Resetting the values of the following params as rsyslog expects.
 dynSearchIndex, bulkmode, dynbulkid, allowUnsignedCerts, usehttps

Adding test cases to tests_ovirt_elasticsearch_params.yml

(cherry picked from commit c98aabd864f6d07c11d6db991bf0af0aaee7f123)
---
 .../rsyslog/templates/output_elasticsearch.j2 | 13 ++++-----
 tests/tests_ovirt_elasticsearch_params.yml    | 29 +++++++++++++++++--
 2 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/roles/rsyslog/templates/output_elasticsearch.j2 b/roles/rsyslog/templates/output_elasticsearch.j2
index c4db10f..6c6255b 100644
--- a/roles/rsyslog/templates/output_elasticsearch.j2
+++ b/roles/rsyslog/templates/output_elasticsearch.j2
@@ -37,25 +37,24 @@ ruleset(name="{{ item.name }}") {
             serverport="{{ item.server_port | d(9200) | int }}"
             template="{{ item.template | d("es_template") }}"
             searchIndex="{{ item.searchIndex | d("index_template") }}"
-            dynSearchIndex="{{ item.dynSearchIndex | d("on") }}"
+            dynSearchIndex="{{ item.dynSearchIndex | d(true) | ternary('on', 'off') }}"
             searchType="{{ item.searchType | d("com.redhat.viaq.common") }}"
-            bulkmode="{{ item.bulkmode | d("on") }}"
+            bulkmode="{{ item.bulkmode | d(true) | ternary('on', 'off') }}"
             writeoperation="{{ item.writeoperation | d("create") }}"
             bulkid="{{ item.bulkid | d("id_template") }}"
-            dynbulkid="{{ item.dynbulkid | d('on') }}"
-            allowUnsignedCerts="{{ item.allowUnsignedCerts | d("off") }}"
+            dynbulkid="{{ item.dynbulkid | d(true) | ternary('on', 'off') }}"
+            allowUnsignedCerts="{{ item.allowUnsignedCerts | d(false) | ternary('on', 'off') }}"
 {% if item.retryfailures | d(true) %}
-{%   if item.retryruleset | d() | length > 0 %}
             retryfailures="on"
+{%   if item.retryruleset | d() | length > 0 %}
             retryruleset="{{ item.retryruleset }}"
 {%   else %}
-            retryfailures="on"
             retryruleset="{{ item.name }}"
 {%   endif %}
 {% else %}
             retryfailures="off"
 {% endif %}
-            usehttps="{{ item.usehttps | default("on") }}"
+            usehttps="{{ item.usehttps | d(true) | ternary('on', 'off') }}"
 {% if item.use_cert | default(true) %}
             tls.cacert="{{ item.ca_cert | default('/etc/rsyslog.d/es-ca.crt') }}"
             tls.mycert="{{ item.cert | default('/etc/rsyslog.d/es-cert.pem') }}"
diff --git a/tests/tests_ovirt_elasticsearch_params.yml b/tests/tests_ovirt_elasticsearch_params.yml
index 34d9e1d..4fefe59 100644
--- a/tests/tests_ovirt_elasticsearch_params.yml
+++ b/tests/tests_ovirt_elasticsearch_params.yml
@@ -34,6 +34,8 @@
     __test_ovirt_engine_conf: /etc/rsyslog.d/90-input-ovirt-ovirt_engine_input.conf
     __test_ovirt_vdsm_conf: /etc/rsyslog.d/90-input-ovirt-ovirt_vdsm_input.conf
     __test_ovirt_bogus_conf: /etc/rsyslog.d/90-input-ovirt-ovirt_bogus_input.conf
+    __test_es_conf: /etc/rsyslog.d/31-output-elasticsearch-elasticsearch_output.conf
+    __test_es_ops_conf: /etc/rsyslog.d/31-output-elasticsearch-elasticsearch_output_ops.conf
     __test_collectd_name: ovirt_collectd_input
     __test_engine_name: ovirt_engine_input
     __test_vdsm_name: ovirt_vdsm_input
@@ -56,7 +58,6 @@
             server_port: 9200
             index_prefix: project.
             input_type: ovirt
-            retryfailures: false
             ca_cert: "/etc/rsyslog.d/es-ca.crt"
             cert: "/etc/rsyslog.d/es-cert.pem"
             private_key: "/etc/rsyslog.d/es-key.pem"
@@ -70,6 +71,11 @@
             ca_cert: "/etc/rsyslog.d/es-ca.crt"
             cert: "/etc/rsyslog.d/es-cert.pem"
             private_key: "/etc/rsyslog.d/es-key.pem"
+            dynSearchIndex: false
+            bulkmode: false
+            dynbulkid: false
+            allowUnsignedCerts: true
+            usehttps: false
         logging_inputs:
           - name: basic_input
             type: basics
@@ -164,4 +170,23 @@
 
     - name: Check index_prefix is "{{ __test_logs_index }}" in "{{ __test_ovirt_vdsm_conf }}"
       command: /bin/grep 'set $.index_prefix = "{{ __test_logs_index }}"' {{ __test_ovirt_vdsm_conf }}
-      changed_when: false
+
+    - name: Check default config params in "{{ __test_es_conf }}"
+      command: /bin/grep {{ item }} {{ __test_es_conf }}
+      loop:
+        - "dynSearchIndex=.on."
+        - "bulkmode=.on."
+        - "dynbulkid=.on."
+        - "allowUnsignedCerts=.off."
+        - "usehttps=.on."
+        - "retryfailures=.on."
+
+    - name: Check modified config params in "{{ __test_es_ops_conf }}"
+      command: /bin/grep {{ item }} {{ __test_es_ops_conf }}
+      loop:
+        - "dynSearchIndex=.off."
+        - "bulkmode=.off."
+        - "dynbulkid=.off."
+        - "allowUnsignedCerts=.on."
+        - "usehttps=.off."
+        - "retryfailures=.off."
-- 
2.26.2