diff options
author | Samuel Munilla <smunilla@redhat.com> | 2016-02-19 09:41:17 -0500 |
---|---|---|
committer | Samuel Munilla <smunilla@redhat.com> | 2016-02-19 14:27:06 -0500 |
commit | 4a9d7a7c5f75f2bc4099bc7bd06a1d53709ce6af (patch) | |
tree | bec5acb63b7892facb237bb14d977335230ed5e2 | |
parent | cf4817f81267d5e1fddabf9ffa4e6c71b336b97f (diff) | |
download | openshift-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.py | 25 |
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): |