فهرست منبع

Improved installation summary.

Displays each host and the roles it will play based on the current
configuration. As the configuration grows the summary will adapt to indicate
embedded vs separte etcd, scheduled vs unscheduled nodes, etc.
Devan Goodwin 9 سال پیش
والد
کامیت
d7ff5b10a3
1فایلهای تغییر یافته به همراه45 افزوده شده و 12 حذف شده
  1. 45 12
      utils/src/ooinstall/cli_installer.py

+ 45 - 12
utils/src/ooinstall/cli_installer.py

@@ -144,7 +144,7 @@ http://docs.openshift.com/enterprise/latest/architecture/infrastructure_componen
         hosts.append(host)
 
         if print_summary:
-            print_host_summary(hosts)
+            print_installation_summary(hosts)
 
         # If we have one master, this is enough for an all-in-one deployment,
         # thus we can start asking if you wish to proceed. Otherwise we assume
@@ -158,18 +158,26 @@ http://docs.openshift.com/enterprise/latest/architecture/infrastructure_componen
     return hosts
 
 
-def print_host_summary(hosts):
+def print_installation_summary(hosts):
+    """
+    Displays a summary of all hosts configured thus far, and what role each
+    will play.
+
+    Shows total nodes/masters, hints for performing/modifying the deployment
+    with additional setup, warnings for invalid or sub-optimal configurations.
+    """
+    click.clear()
+    click.echo('*** Installation Summary ***\n')
+    click.echo('Hosts:')
+    for host in hosts:
+        print_host_summary(hosts, host)
+
     masters = [host for host in hosts if host.master]
     nodes = [host for host in hosts if host.node]
+    dedicated_nodes = [host for host in hosts if host.node and not host.master]
     click.echo('')
-    click.echo('OpenShift Masters: %s' % len(masters))
-    for host in masters:
-        click.echo('  %s' % host.connect_to)
-    click.echo('OpenShift Nodes: %s' % len(nodes))
-    for host in nodes:
-        click.echo('  %s' % host.connect_to)
-
-    click.echo("")
+    click.echo('Total OpenShift Masters: %s' % len(masters))
+    click.echo('Total OpenShift Nodes: %s' % len(nodes))
 
     if len(masters) == 1:
         ha_hint_message = """
@@ -195,7 +203,6 @@ Node."""
         min_ha_nodes_message = """
 WARNING: A minimum of 3 dedicated Nodes are recommended for an HA
 deployment."""
-        dedicated_nodes = [host for host in hosts if host.node and not host.master]
         if len(dedicated_nodes) == 0:
             click.echo(dedicated_nodes_message)
         elif len(dedicated_nodes) < 3:
@@ -204,6 +211,32 @@ deployment."""
     click.echo('')
 
 
+def print_host_summary(all_hosts, host):
+    description_tokens = []
+    masters = [ahost for ahost in all_hosts if ahost.master]
+    nodes = [ahost for ahost in all_hosts if ahost.node]
+    click.echo("- %s" % host.connect_to)
+    if host.master:
+        click.echo("  - OpenShift Master")
+    if host.node:
+        if not host.master:
+            click.echo("  - OpenShift Node (Dedicated)")
+        elif host.master and len(masters) == len(nodes):
+            click.echo("  - OpenShift Node")
+        else:
+            click.echo("  - OpenShift Node (Unscheduled)")
+    if host.master_lb:
+        if host.preconfigured:
+            click.echo("  - Load Balancer (Preconfigured)")
+        else:
+            click.echo("  - Load Balancer (HAProxy)")
+    if host.master:
+        if len(masters) > 1:
+            click.echo("  - Etcd Member")
+        else:
+            click.echo("  - Etcd (Embedded)")
+
+
 def collect_master_lb(hosts):
     """
     Get a valid load balancer from the user and append it to the list of
@@ -723,7 +756,7 @@ def install(ctx, force):
     check_hosts_config(oo_cfg, ctx.obj['unattended'])
 
     click.echo('Gathering information from hosts...')
-    print_host_summary(oo_cfg.hosts)
+    print_installation_summary(oo_cfg.hosts)
     callback_facts, error = openshift_ansible.default_facts(oo_cfg.hosts,
         verbose)
     if error: