From 755a48c4ebf1061ce19892e5378fba769027bfc1 Mon Sep 17 00:00:00 2001
From: Devan Goodwin <dgoodwin@redhat.com>
Date: Fri, 10 Jun 2016 10:21:19 -0300
Subject: Fix version unset bug, and set common ver fact on containerized
 nodes.

---
 roles/openshift_facts/library/openshift_facts.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

(limited to 'roles/openshift_facts/library')

diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py
index 856dcbdb8..9d7705af7 100755
--- a/roles/openshift_facts/library/openshift_facts.py
+++ b/roles/openshift_facts/library/openshift_facts.py
@@ -1139,11 +1139,21 @@ def get_openshift_version(facts):
         _, output, _ = module.run_command(['/usr/local/bin/openshift', 'version'])
         version = parse_openshift_version(output)
     elif 'node' in facts and 'common' in facts and 'is_containerized' in facts['common']:
-        _, output, _ = module.run_command(['docker', 'run', '--rm', facts['common']['cli_image'], 'version'])
-        version = parse_openshift_version(output)
+        version = get_containerized_node_openshift_version(facts)
 
     return version
 
+def get_containerized_node_openshift_version(facts):
+    node_svc = "%s-node" % facts['common']['service_type']
+    rc, _, _ = module.run_command(['systemctl', 'is-active', node_svc])
+    if rc > 0:
+        # Node service not running or doesn't exist:
+        return None
+    # Node service running, exec in and get the version:
+    _, output, _ = module.run_command(['docker', 'exec', '-ti', node_svc, 'openshift', 'version'])
+    return parse_openshift_version(output)
+
+
 def parse_openshift_version(output):
     """ Apply provider facts to supplied facts dict
 
-- 
cgit v1.2.3