From 5cf8da61a44bb6a29c9db2bff3b73a03b8a43ebc Mon Sep 17 00:00:00 2001
From: Russell Teague <rteague@redhat.com>
Date: Mon, 13 Feb 2017 10:44:09 -0500
Subject: Modify playbooks to use oc_obj module

---
 roles/openshift_logging/tasks/delete_logging.yaml  |   1 -
 roles/openshift_logging/tasks/start_cluster.yaml   | 104 +++++++++++----------
 roles/openshift_logging/tasks/stop_cluster.yaml    |  97 +++++++++++--------
 roles/openshift_logging/tasks/upgrade_logging.yaml |  25 +++--
 4 files changed, 127 insertions(+), 100 deletions(-)

(limited to 'roles/openshift_logging/tasks')

diff --git a/roles/openshift_logging/tasks/delete_logging.yaml b/roles/openshift_logging/tasks/delete_logging.yaml
index 9621d0d1a..188ea246c 100644
--- a/roles/openshift_logging/tasks/delete_logging.yaml
+++ b/roles/openshift_logging/tasks/delete_logging.yaml
@@ -81,7 +81,6 @@
 # delete our service accounts
 - name: delete service accounts
   oc_serviceaccount:
-    kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
     name: "{{ item }}"
     namespace: "{{ openshift_logging_namespace }}"
     state: absent
diff --git a/roles/openshift_logging/tasks/start_cluster.yaml b/roles/openshift_logging/tasks/start_cluster.yaml
index 69d2b2b6b..3f1bd7ad2 100644
--- a/roles/openshift_logging/tasks/start_cluster.yaml
+++ b/roles/openshift_logging/tasks/start_cluster.yaml
@@ -1,12 +1,14 @@
 ---
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get node -o name
-  register: fluentd_hosts
+- name: Retrieve list of fluentd hosts
+  oc_obj:
+    state: list
+    kind: node
   when: "'--all' in openshift_logging_fluentd_hosts"
-  check_mode: no
-  changed_when: no
+  register: fluentd_hosts
 
-- set_fact: openshift_logging_fluentd_hosts={{ fluentd_hosts.stdout_lines | regex_replace('node/', '') }}
+- name: Set fact openshift_logging_fluentd_hosts
+  set_fact:
+    openshift_logging_fluentd_hosts: "{{ fluentd_hosts.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   when: "'--all' in openshift_logging_fluentd_hosts"
 
 - name: start fluentd
@@ -19,107 +21,113 @@
   loop_control:
     loop_var: fluentd_host
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=es -o name -n {{openshift_logging_namespace}}
+- name: Retrieve elasticsearch
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=es"
+    namespace: "{{openshift_logging_namespace}}"
   register: es_dc
-  check_mode: no
-  changed_when: no
 
 - name: start elasticsearch
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 1
-  with_items: "{{es_dc.stdout_lines}}"
+  with_items: "{{ es_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=kibana -o name -n {{openshift_logging_namespace}}
+- name: Retrieve kibana
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=kibana"
+    namespace: "{{openshift_logging_namespace}}"
   register: kibana_dc
-  check_mode: no
-  changed_when: no
 
 - name: start kibana
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: "{{ openshift_logging_kibana_replica_count | default (1) }}"
-  with_items: "{{kibana_dc.stdout_lines}}"
+  with_items: "{{ kibana_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=curator -o name -n {{openshift_logging_namespace}}
+- name: Retrieve curator
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=curator"
+    namespace: "{{openshift_logging_namespace}}"
   register: curator_dc
-  check_mode: no
-  changed_when: no
 
 - name: start curator
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 1
-  with_items: "{{curator_dc.stdout_lines}}"
+  with_items: "{{ curator_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=es-ops -o name -n {{openshift_logging_namespace}}
+- name: Retrieve elasticsearch-ops
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=es-ops"
+    namespace: "{{openshift_logging_namespace}}"
   register: es_dc
-  check_mode: no
-  changed_when: no
 
 - name: start elasticsearch-ops
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 1
-  with_items: "{{es_dc.stdout_lines}}"
+  with_items: "{{ es_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
   when: openshift_logging_use_ops | bool
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=kibana-ops -o name -n {{openshift_logging_namespace}}
+- name: Retrieve kibana-ops
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=kibana-ops"
+    namespace: "{{openshift_logging_namespace}}"
   register: kibana_dc
-  check_mode: no
-  changed_when: no
 
 - name: start kibana-ops
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: "{{ openshift_logging_kibana_ops_replica_count | default (1) }}"
-  with_items: "{{kibana_dc.stdout_lines}}"
+  with_items: "{{ kibana_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
   when: openshift_logging_use_ops | bool
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=curator-ops -o name -n {{openshift_logging_namespace}}
+- name: Retrieve curator
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=curator-ops"
+    namespace: "{{openshift_logging_namespace}}"
   register: curator_dc
-  check_mode: no
-  changed_when: no
 
 - name: start curator-ops
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 1
-  with_items: "{{curator_dc.stdout_lines}}"
+  with_items: "{{ curator_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
   when: openshift_logging_use_ops | bool
diff --git a/roles/openshift_logging/tasks/stop_cluster.yaml b/roles/openshift_logging/tasks/stop_cluster.yaml
index 7826efabe..ee6c800f2 100644
--- a/roles/openshift_logging/tasks/stop_cluster.yaml
+++ b/roles/openshift_logging/tasks/stop_cluster.yaml
@@ -1,11 +1,14 @@
 ---
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get node -o name
-  register: fluentd_hosts
+- name: Retrieve list of fluentd hosts
+  oc_obj:
+    state: list
+    kind: node
   when: "'--all' in openshift_logging_fluentd_hosts"
-  changed_when: no
+  register: fluentd_hosts
 
-- set_fact: openshift_logging_fluentd_hosts={{ fluentd_hosts.stdout_lines | regex_replace('node/', '') }}
+- name: Set fact openshift_logging_fluentd_hosts
+  set_fact:
+    openshift_logging_fluentd_hosts: "{{ fluentd_hosts.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   when: "'--all' in openshift_logging_fluentd_hosts"
 
 - name: stop fluentd
@@ -18,101 +21,113 @@
   loop_control:
     loop_var: fluentd_host
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=es -o name -n {{openshift_logging_namespace}}
+- name: Retrieve elasticsearch
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=es"
+    namespace: "{{openshift_logging_namespace}}"
   register: es_dc
-  changed_when: no
 
 - name: stop elasticsearch
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 0
-  with_items: "{{es_dc.stdout_lines}}"
+  with_items: "{{ es_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=kibana -o name -n {{openshift_logging_namespace}}
+- name: Retrieve kibana
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=kibana"
+    namespace: "{{openshift_logging_namespace}}"
   register: kibana_dc
-  changed_when: no
 
 - name: stop kibana
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 0
-  with_items: "{{kibana_dc.stdout_lines}}"
+  with_items: "{{ kibana_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=curator -o name -n {{openshift_logging_namespace}}
+- name: Retrieve curator
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=curator"
+    namespace: "{{openshift_logging_namespace}}"
   register: curator_dc
-  changed_when: no
 
 - name: stop curator
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 0
-  with_items: "{{curator_dc.stdout_lines}}"
+  with_items: "{{ curator_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=es-ops -o name -n {{openshift_logging_namespace}}
+- name: Retrieve elasticsearch-ops
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=es-ops"
+    namespace: "{{openshift_logging_namespace}}"
   register: es_dc
-  changed_when: no
 
 - name: stop elasticsearch-ops
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 0
-  with_items: "{{es_dc.stdout_lines}}"
+  with_items: "{{ es_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
   when: openshift_logging_use_ops | bool
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=kibana-ops -o name -n {{openshift_logging_namespace}}
+- name: Retrieve kibana-ops
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=kibana-ops"
+    namespace: "{{openshift_logging_namespace}}"
   register: kibana_dc
-  changed_when: no
 
 - name: stop kibana-ops
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 0
-  with_items: "{{kibana_dc.stdout_lines}}"
+  with_items: "{{ kibana_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
   when: openshift_logging_use_ops | bool
 
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=curator-ops -o name -n {{openshift_logging_namespace}}
+- name: Retrieve curator
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=curator-ops"
+    namespace: "{{openshift_logging_namespace}}"
   register: curator_dc
-  changed_when: no
 
 - name: stop curator-ops
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
-    kubeconfig: "{{mktemp.stdout}}/admin.kubeconfig"
     replicas: 0
-  with_items: "{{curator_dc.stdout_lines}}"
+  with_items: "{{ curator_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
   when: openshift_logging_use_ops | bool
diff --git a/roles/openshift_logging/tasks/upgrade_logging.yaml b/roles/openshift_logging/tasks/upgrade_logging.yaml
index 0dc31932c..0421cdf58 100644
--- a/roles/openshift_logging/tasks/upgrade_logging.yaml
+++ b/roles/openshift_logging/tasks/upgrade_logging.yaml
@@ -8,29 +8,34 @@
     start_cluster: False
 
 # start ES so that we can run migrate script
-- command: >
-    {{openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get dc -l component=es -o name -n {{openshift_logging_namespace}}
+- name: Retrieve elasticsearch
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=es"
+    namespace: "{{openshift_logging_namespace}}"
   register: es_dc
-  check_mode: no
 
 - name: start elasticsearch
   oc_scale:
     kind: dc
-    name: "{{object.split('/')[1]}}"
+    name: "{{ object }}"
     namespace: "{{openshift_logging_namespace}}"
     replicas: 1
-  with_items: "{{es_dc.stdout_lines}}"
+  with_items: "{{ es_dc.results.results[0]['items'] | map(attribute='metadata.name') | list }}"
   loop_control:
     loop_var: object
 
-- command: >
-    {{ openshift.common.client_binary}} --config={{mktemp.stdout}}/admin.kubeconfig get pods -n {{openshift_logging_namespace}} -l component=es -o jsonpath='{.items[?(@.status.phase == "Running")].metadata.name}'
+- name: Wait for pods to stop
+  oc_obj:
+    state: list
+    kind: dc
+    selector: "component=es"
+    namespace: "{{openshift_logging_namespace}}"
   register: running_pod
-  until: running_pod.stdout != ''
+  until: running_pod.results.results.items[?(@.status.phase == "Running")].metadata.name != ''
   retries: 30
   delay: 10
-  changed_when: no
-  check_mode: no
 
 - name: Run upgrade script
   script: es_migration.sh {{openshift.common.config_base}}/logging/ca.crt {{openshift.common.config_base}}/logging/system.admin.key {{openshift.common.config_base}}/logging/system.admin.crt {{openshift_logging_es_host}} {{openshift_logging_es_port}} {{openshift_logging_namespace}}
-- 
cgit v1.2.3