From 34d35e84e249bb6b0d419b7db92986b309cb9572 Mon Sep 17 00:00:00 2001
From: Steve Milner <smilner@redhat.com>
Date: Wed, 8 Feb 2017 10:30:20 -0500
Subject: oc route commands now using the oc_route module

---
 roles/cockpit-ui/meta/main.yml                   |   2 +
 roles/cockpit-ui/tasks/main.yml                  | 142 +++++++++--------------
 roles/openshift_hosted/tasks/registry/secure.yml |  16 +--
 3 files changed, 67 insertions(+), 93 deletions(-)

diff --git a/roles/cockpit-ui/meta/main.yml b/roles/cockpit-ui/meta/main.yml
index 6ad2e324a..4d619fff6 100644
--- a/roles/cockpit-ui/meta/main.yml
+++ b/roles/cockpit-ui/meta/main.yml
@@ -11,3 +11,5 @@ galaxy_info:
     - 7
   categories:
   - cloud
+dependencies:
+- role: lib_openshift
diff --git a/roles/cockpit-ui/tasks/main.yml b/roles/cockpit-ui/tasks/main.yml
index f2ef4f161..8bd68787a 100644
--- a/roles/cockpit-ui/tasks/main.yml
+++ b/roles/cockpit-ui/tasks/main.yml
@@ -1,86 +1,58 @@
 ---
-- name: Create temp directory for kubeconfig
-  command: mktemp -d /tmp/openshift-ansible-XXXXXX
-  register: mktemp
-  changed_when: False
-
-- set_fact:
-    openshift_hosted_kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
-
-- name: Copy the admin client config(s)
-  command: >
-    cp {{ openshift_master_config_dir }}/admin.kubeconfig {{ openshift_hosted_kubeconfig }}
-  changed_when: False
-
-- name: Determine if docker-registry service exists
-  command: >
-    {{ openshift.common.client_binary }} get svc/docker-registry
-    --config={{ openshift_hosted_kubeconfig }}
-    -n default
-  register: check_docker_registry_exists
-  failed_when: false
-  changed_when: false
-
-- name: Create passthrough route for docker-registry
-  command: >
-    {{ openshift.common.client_binary }} create route passthrough
-    --service docker-registry
-    --config={{ openshift_hosted_kubeconfig }}
-    -n default
-  register: create_docker_registry_route
-  changed_when: "'already exists' not in create_docker_registry_route.stderr"
-  failed_when: "'already exists' not in create_docker_registry_route.stderr and create_docker_registry_route.rc != 0"
-  when: check_docker_registry_exists.rc == 0
-
-- name: Create passthrough route for registry-console
-  command: >
-    {{ openshift.common.client_binary }} create route passthrough
-    --service registry-console
-    --port registry-console
-    --config={{ openshift_hosted_kubeconfig }}
-    -n default
-  register: create_registry_console_route
-  changed_when: "'already exists' not in create_registry_console_route.stderr"
-  failed_when: "'already exists' not in create_registry_console_route.stderr and create_registry_console_route.rc != 0"
-  when: check_docker_registry_exists.rc == 0
-
-- name: Retrieve docker-registry route
-  command: >
-    {{ openshift.common.client_binary }} get route docker-registry
-    -o jsonpath='{.spec.host}'
-    --config={{ openshift_hosted_kubeconfig }}
-    -n default
-  register: docker_registry_route
-  changed_when: false
-  when: check_docker_registry_exists.rc == 0
-
-- name: Retrieve cockpit kube url
-  command: >
-    {{ openshift.common.client_binary }} get route registry-console
-    -o jsonpath='https://{.spec.host}'
-    -n default
-  register: registry_console_cockpit_kube_url
-  changed_when: false
-  when: check_docker_registry_exists.rc == 0
-
-# TODO: Need to fix the origin and enterprise templates so that they both respect IMAGE_PREFIX
-- name: Deploy registry-console
-  command: >
-    {{ openshift.common.client_binary }} new-app --template=registry-console
-    {% if openshift_cockpit_deployer_prefix is defined  %}-p IMAGE_PREFIX="{{ openshift_cockpit_deployer_prefix }}"{% endif %}
-    {% if openshift_cockpit_deployer_version is defined  %}-p IMAGE_VERSION="{{ openshift_cockpit_deployer_version }}"{% endif %}
-    -p OPENSHIFT_OAUTH_PROVIDER_URL="{{ openshift.master.public_api_url }}"
-    -p REGISTRY_HOST="{{ docker_registry_route.stdout }}"
-    -p COCKPIT_KUBE_URL="{{ registry_console_cockpit_kube_url.stdout }}"
-    --config={{ openshift_hosted_kubeconfig }}
-    -n default
-  register: deploy_registry_console
-  changed_when: "'already exists' not in deploy_registry_console.stderr"
-  failed_when: "'already exists' not in deploy_registry_console.stderr and deploy_registry_console.rc != 0"
-  when: check_docker_registry_exists.rc == 0
-
-- name: Delete temp directory
-  file:
-    name: "{{ mktemp.stdout }}"
-    state: absent
-  changed_when: False
+- block:
+  - name: Create passthrough route for docker-registry
+    oc_route:
+      kubeconfig: "{{ openshift_master_config_dir }}/admin.kubeconfig"
+      name: docker-registry
+      namespace: default
+      service_name: docker-registry
+      state: present
+      tls_termination: passthrough
+    register: docker_registry_route
+
+  - name: Create passthrough route for registry-console
+    oc_route:
+      kubeconfig: "{{ openshift_master_config_dir }}/admin.kubeconfig"
+      name: registry-console
+      namespace: default
+      service_name: registry-console
+      state: present
+      tls_termination: passthrough
+    register: registry_console_cockpit_kube
+
+  # XXX: Required for items still using command
+  - name: Create temp directory for kubeconfig
+    command: mktemp -d /tmp/openshift-ansible-XXXXXX
+    register: mktemp
+    changed_when: False
+
+  - set_fact:
+      openshift_hosted_kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
+
+  - name: Copy the admin client config(s)
+    command: >
+      cp {{ openshift_master_config_dir }}/admin.kubeconfig {{ openshift_hosted_kubeconfig }}
+    changed_when: False
+
+  # TODO: Need to fix the origin and enterprise templates so that they both respect IMAGE_PREFIX
+  - name: Deploy registry-console
+    command: >
+      {{ openshift.common.client_binary }} new-app --template=registry-console
+      {% if openshift_cockpit_deployer_prefix is defined  %}-p IMAGE_PREFIX="{{ openshift_cockpit_deployer_prefix }}"{% endif %}
+      {% if openshift_cockpit_deployer_version is defined  %}-p IMAGE_VERSION="{{ openshift_cockpit_deployer_version }}"{% endif %}
+      -p OPENSHIFT_OAUTH_PROVIDER_URL="{{ openshift.master.public_api_url }}"
+      -p REGISTRY_HOST="{{ docker_registry_route.results.results[0].spec.host }}"
+      -p COCKPIT_KUBE_URL="https://{{ registry_console_cockpit_kube.results.results[0].spec.host }}"
+      --config={{ openshift_hosted_kubeconfig }}
+      -n default
+    register: deploy_registry_console
+    changed_when: "'already exists' not in deploy_registry_console.stderr"
+    failed_when: "'already exists' not in deploy_registry_console.stderr and deploy_registry_console.rc != 0"
+
+  - name: Delete temp directory
+    file:
+      name: "{{ mktemp.stdout }}"
+      state: absent
+    changed_when: False
+    # XXX: End required for items still using command
+  run_once: true
diff --git a/roles/openshift_hosted/tasks/registry/secure.yml b/roles/openshift_hosted/tasks/registry/secure.yml
index 216a40874..fc3248eb9 100644
--- a/roles/openshift_hosted/tasks/registry/secure.yml
+++ b/roles/openshift_hosted/tasks/registry/secure.yml
@@ -1,13 +1,13 @@
 ---
 - name: Create passthrough route for docker-registry
-  command: >
-    {{ openshift.common.client_binary }} create route passthrough
-    --service docker-registry
-    --config={{ openshift_hosted_kubeconfig }}
-    -n default
-  register: create_docker_registry_route
-  changed_when: "'already exists' not in create_docker_registry_route.stderr"
-  failed_when: "'already exists' not in create_docker_registry_route.stderr and create_docker_registry_route.rc != 0"
+  oc_route:
+    kubeconfig: "{{ openshift_hosted_kubeconfig }}"
+    name: docker-registry
+    namespace: default
+    service_name: docker-registry
+    state: present
+    tls_termination: passthrough
+  run_once: true
 
 - name: Determine if registry certificate must be created
   stat:
-- 
cgit v1.2.3