summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Bielawa <tbielawa@redhat.com>2016-11-01 10:18:35 -0700
committerTim Bielawa <tbielawa@redhat.com>2016-11-02 09:13:50 -0700
commit3ce7d25475886fc708254ee1884285e3b15ed6d3 (patch)
tree0ee5a48061a64912155e677e09a044db9d312744
parentf232cfd42b3824ee64ce32f78c19616164a6b13a (diff)
downloadopenshift-3ce7d25475886fc708254ee1884285e3b15ed6d3.tar.gz
openshift-3ce7d25475886fc708254ee1884285e3b15ed6d3.tar.bz2
openshift-3ce7d25475886fc708254ee1884285e3b15ed6d3.tar.xz
openshift-3ce7d25475886fc708254ee1884285e3b15ed6d3.zip
Fix HA environments incorrectly detecting mixed installed environments
* Load balancers are now excluded from the mixed environment check * https://bugzilla.redhat.com/show_bug.cgi?id=1390064
-rw-r--r--utils/src/ooinstall/cli_installer.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/utils/src/ooinstall/cli_installer.py b/utils/src/ooinstall/cli_installer.py
index a253a1f03..32da3f663 100644
--- a/utils/src/ooinstall/cli_installer.py
+++ b/utils/src/ooinstall/cli_installer.py
@@ -675,8 +675,10 @@ def get_installed_hosts(hosts, callback_facts):
for host in [h for h in hosts if h.is_master() or h.is_node()]:
if host.connect_to in callback_facts.keys():
if is_installed_host(host, callback_facts):
+ INSTALLER_LOG.debug("%s is already installed", str(host))
installed_hosts.append(host)
else:
+ INSTALLER_LOG.debug("%s is not installed", str(host))
uninstalled_hosts.append(host)
return installed_hosts, uninstalled_hosts
@@ -709,6 +711,17 @@ def get_hosts_to_run_on(oo_cfg, callback_facts, unattended, force):
installed_hosts, uninstalled_hosts = get_installed_hosts(oo_cfg.deployment.hosts,
callback_facts)
nodes = [host for host in oo_cfg.deployment.hosts if host.is_node()]
+ not_balancers = [host for host in oo_cfg.deployment.hosts if not host.is_master_lb()]
+
+ in_hosts = [str(h) for h in installed_hosts]
+ un_hosts = [str(h) for h in uninstalled_hosts]
+ all_hosts = [str(h) for h in oo_cfg.deployment.hosts]
+ no_bals = [str(h) for h in not_balancers]
+
+ INSTALLER_LOG.debug("installed hosts: %s", ", ".join(in_hosts))
+ INSTALLER_LOG.debug("uninstalled hosts: %s", ", ".join(un_hosts))
+ INSTALLER_LOG.debug("deployment hosts: %s", ", ".join(all_hosts))
+ INSTALLER_LOG.debug("not balancers: %s", ", ".join(no_bals))
# Case (1): All uninstalled hosts
if len(uninstalled_hosts) == len(nodes):
@@ -716,7 +729,7 @@ def get_hosts_to_run_on(oo_cfg, callback_facts, unattended, force):
hosts_to_run_on = list(oo_cfg.deployment.hosts)
else:
# Case (2): All installed hosts
- if len(installed_hosts) == len(list(oo_cfg.deployment.hosts)):
+ if len(installed_hosts) == len(not_balancers):
message = """
All specified hosts in specified environment are installed.
"""
@@ -727,6 +740,16 @@ A mix of installed and uninstalled hosts have been detected in your environment.
Please make sure your environment was installed successfully before adding new nodes.
"""
+ # Still inside the case 2/3 else condition
+ mixed_msg = """
+\tInstalled hosts:
+\t\t{inst_hosts}
+
+\tUninstalled hosts:
+\t\t{uninst_hosts}""".format(inst_hosts=", ".join(in_hosts), uninst_hosts=", ".join(un_hosts))
+ click.echo(mixed_msg)
+
+ # Out of the case 2/3 if/else
click.echo(message)
if not unattended: