From 74e13d4925eba6099b9052c4641b6d27ed406a0e Mon Sep 17 00:00:00 2001
From: Samuel Padgett <spadgett@redhat.com>
Date: Sun, 21 Jan 2018 10:37:21 -0500
Subject: Bug 1534020 - Only set logging and metrics URLs if console config map
 exists

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1534020
---
 .../tasks/update_console_config.yml                | 77 ++++++++++++----------
 1 file changed, 41 insertions(+), 36 deletions(-)

diff --git a/roles/openshift_web_console/tasks/update_console_config.yml b/roles/openshift_web_console/tasks/update_console_config.yml
index 4d2957977..41da2c16a 100644
--- a/roles/openshift_web_console/tasks/update_console_config.yml
+++ b/roles/openshift_web_console/tasks/update_console_config.yml
@@ -19,43 +19,48 @@
 #         value: "https://{{ openshift_logging_kibana_hostname }}"
 #   when: openshift_web_console_install | default(true) | bool
 
-- name: Read web console config map
+- name: Read the existing web console config map
   oc_configmap:
     namespace: openshift-web-console
     name: webconsole-config
     state: list
-  register: webconsole_config
-
-- name: Make temp directory
-  command: mktemp -d /tmp/console-ansible-XXXXXX
-  register: mktemp_console
-  changed_when: False
-
-- name: Copy web console config to temp file
-  copy:
-    content: "{{webconsole_config.results.results[0].data['webconsole-config.yaml']}}"
-    dest: "{{ mktemp_console.stdout }}/webconsole-config.yaml"
-
-- name: Change web console config properties
-  yedit:
-    src: "{{ mktemp_console.stdout }}/webconsole-config.yaml"
-    edits: "{{console_config_edits}}"
-    separator: '#'
-    state: present
-
-- name: Update web console config map
-  oc_configmap:
-    namespace: openshift-web-console
-    name: webconsole-config
-    state: present
-    from_file:
-      webconsole-config.yaml: "{{ mktemp_console.stdout }}/webconsole-config.yaml"
-
-- name: Remove temp directory
-  file:
-    state: absent
-    name: "{{ mktemp_console.stdout }}"
-  changed_when: False
-
-# TODO: Only rollout if config has changed.
-- include_tasks: rollout_console.yml
+  register: webconsole_config_map
+
+- set_fact:
+    existing_config_map_data: "{{ webconsole_config_map.results.results[0].data | default({}) }}"
+
+- when: existing_config_map_data['webconsole-config.yaml'] is defined
+  block:
+  - name: Make temp directory
+    command: mktemp -d /tmp/console-ansible-XXXXXX
+    register: mktemp_console
+    changed_when: False
+
+  - name: Copy the existing web console config to temp directory
+    copy:
+      content: "{{ existing_config_map_data['webconsole-config.yaml'] }}"
+      dest: "{{ mktemp_console.stdout }}/webconsole-config.yaml"
+
+  - name: Change web console config properties
+    yedit:
+      src: "{{ mktemp_console.stdout }}/webconsole-config.yaml"
+      edits: "{{console_config_edits}}"
+      separator: '#'
+      state: present
+
+  - name: Update web console config map
+    oc_configmap:
+      namespace: openshift-web-console
+      name: webconsole-config
+      state: present
+      from_file:
+        webconsole-config.yaml: "{{ mktemp_console.stdout }}/webconsole-config.yaml"
+
+  - name: Remove temp directory
+    file:
+      state: absent
+      name: "{{ mktemp_console.stdout }}"
+    changed_when: False
+
+  # TODO: Only rollout if config has changed.
+  - include_tasks: rollout_console.yml
-- 
cgit v1.2.3