summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Munilla <smunilla@redhat.com>2016-02-19 09:41:17 -0500
committerSamuel Munilla <smunilla@redhat.com>2016-02-19 14:27:06 -0500
commit4a9d7a7c5f75f2bc4099bc7bd06a1d53709ce6af (patch)
treebec5acb63b7892facb237bb14d977335230ed5e2
parentcf4817f81267d5e1fddabf9ffa4e6c71b336b97f (diff)
downloadopenshift-4a9d7a7c5f75f2bc4099bc7bd06a1d53709ce6af.tar.gz
openshift-4a9d7a7c5f75f2bc4099bc7bd06a1d53709ce6af.tar.bz2
openshift-4a9d7a7c5f75f2bc4099bc7bd06a1d53709ce6af.tar.xz
openshift-4a9d7a7c5f75f2bc4099bc7bd06a1d53709ce6af.zip
a-o-i: Redo logic for detecting master_lb
After much research and debugging, it turns out the facts for nativeha hosts were much less consistent than I hoped. With this newfound knowledge, I've implemented this method. In short, you check with the first master to see what it thinks the master_lb is, then you include that host as "installed".
-rw-r--r--utils/src/ooinstall/cli_installer.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/utils/src/ooinstall/cli_installer.py b/utils/src/ooinstall/cli_installer.py
index a62bfe134..f09f90288 100644
--- a/utils/src/ooinstall/cli_installer.py
+++ b/utils/src/ooinstall/cli_installer.py
@@ -528,18 +528,27 @@ Add new nodes here
def get_installed_hosts(hosts, callback_facts):
installed_hosts = []
+
+ # count nativeha lb as an installed host
+ try:
+ first_master = next(host for host in hosts if host.master)
+ lb_hostname = callback_facts[first_master.connect_to]['master'].get('cluster_hostname', '')
+ lb_host = next(host for host in hosts if host.connect_to == lb_hostname)
+ installed_hosts.append(lb_host)
+ except KeyError:
+ pass
+
+
for host in hosts:
- if host.connect_to in callback_facts.keys() and (
- ('common' in callback_facts[host.connect_to].keys() and
- callback_facts[host.connect_to]['common'].get('version', '') and
- callback_facts[host.connect_to]['common'].get('version', '') != 'None') \
- or
- ('master' in callback_facts[host.connect_to].keys() and
- callback_facts[host.connect_to]['master'].get('cluster_hostname', '') == host.connect_to)
- ):
+ if host.connect_to in callback_facts.keys() and is_installed_host(host, callback_facts):
installed_hosts.append(host)
return installed_hosts
+def is_installed_host(host, callback_facts):
+ return 'common' in callback_facts[host.connect_to].keys() and \
+ callback_facts[host.connect_to]['common'].get('version', '') and \
+ callback_facts[host.connect_to]['common'].get('version', '') != 'None'
+
# pylint: disable=too-many-branches
# This pylint error will be corrected shortly in separate PR.
def get_hosts_to_run_on(oo_cfg, callback_facts, unattended, force, verbose):