diff options
| author | Matt Woodson <mwoodson@gmail.com> | 2016-01-18 15:08:03 -0500 | 
|---|---|---|
| committer | Matt Woodson <mwoodson@gmail.com> | 2016-01-18 15:08:03 -0500 | 
| commit | 3bed4d0c4bda1b6332ec547502663d09e98b89d1 (patch) | |
| tree | f64e0d0c7e9bc06a76d727050047053cf1a30a6a /utils/src/ooinstall | |
| parent | 0bbfef4e1951db1f19135e532f78fe12cab6d4fc (diff) | |
| parent | ee3aec770b6b1a2b0212b432a920e3d846e56044 (diff) | |
| download | openshift-3bed4d0c4bda1b6332ec547502663d09e98b89d1.tar.gz openshift-3bed4d0c4bda1b6332ec547502663d09e98b89d1.tar.bz2 openshift-3bed4d0c4bda1b6332ec547502663d09e98b89d1.tar.xz openshift-3bed4d0c4bda1b6332ec547502663d09e98b89d1.zip | |
Merge pull request #1214 from openshift/master
Merge master into prod
Diffstat (limited to 'utils/src/ooinstall')
| -rw-r--r-- | utils/src/ooinstall/cli_installer.py | 27 | ||||
| -rw-r--r-- | utils/src/ooinstall/oo_config.py | 4 | ||||
| -rw-r--r-- | utils/src/ooinstall/openshift_ansible.py | 15 | 
3 files changed, 30 insertions, 16 deletions
| diff --git a/utils/src/ooinstall/cli_installer.py b/utils/src/ooinstall/cli_installer.py index c86ba2f4f..1aacf3a4b 100644 --- a/utils/src/ooinstall/cli_installer.py +++ b/utils/src/ooinstall/cli_installer.py @@ -33,9 +33,7 @@ def is_valid_hostname(hostname):  def validate_prompt_hostname(hostname):      if '' == hostname or is_valid_hostname(hostname):          return hostname -    raise click.BadParameter('"{}" appears to be an invalid hostname. ' \ -                             'Please double-check this value i' \ -                             'and re-enter it.'.format(hostname)) +    raise click.BadParameter('Invalid hostname. Please double-check this value and re-enter it.')  def get_ansible_ssh_user():      click.clear() @@ -72,7 +70,7 @@ def delete_hosts(hosts):                  click.echo("\"{}\" doesn't coorespond to any valid input.".format(del_idx))      return hosts, None -def collect_hosts(oo_cfg, masters_set=False, print_summary=True): +def collect_hosts(oo_cfg, existing_env=False, masters_set=False, print_summary=True):      """          Collect host information from user. This will later be filled in using          ansible. @@ -129,15 +127,18 @@ http://docs.openshift.com/enterprise/latest/architecture/infrastructure_componen                      masters_set = True          host_props['node'] = True -        #TODO: Reenable this option once container installs are out of tech preview -        #rpm_or_container = click.prompt('Will this host be RPM or Container based (rpm/container)?', -        #                                type=click.Choice(['rpm', 'container']), -        #                                default='rpm') -        #if rpm_or_container == 'container': -        #    host_props['containerized'] = True -        #else: -        #    host_props['containerized'] = False          host_props['containerized'] = False +        if oo_cfg.settings['variant_version'] != '3.0': +            rpm_or_container = click.prompt('Will this host be RPM or Container based (rpm/container)?', +                                            type=click.Choice(['rpm', 'container']), +                                            default='rpm') +            if rpm_or_container == 'container': +                host_props['containerized'] = True + +        if existing_env: +            host_props['new_host'] = True +        else: +            host_props['new_host'] = False          host = Host(**host_props) @@ -507,7 +508,7 @@ def collect_new_nodes(oo_cfg):  Add new nodes here      """      click.echo(message) -    return collect_hosts(oo_cfg, masters_set=True, print_summary=False) +    return collect_hosts(oo_cfg, existing_env=True, masters_set=True, print_summary=False)  def get_installed_hosts(hosts, callback_facts):      installed_hosts = [] diff --git a/utils/src/ooinstall/oo_config.py b/utils/src/ooinstall/oo_config.py index 031b82bc1..33ab27567 100644 --- a/utils/src/ooinstall/oo_config.py +++ b/utils/src/ooinstall/oo_config.py @@ -38,6 +38,7 @@ class Host(object):          self.public_hostname = kwargs.get('public_hostname', None)          self.connect_to = kwargs.get('connect_to', None)          self.preconfigured = kwargs.get('preconfigured', None) +        self.new_host = kwargs.get('new_host', None)          # Should this host run as an OpenShift master:          self.master = kwargs.get('master', False) @@ -68,7 +69,8 @@ class Host(object):          """ Used when exporting to yaml. """          d = {}          for prop in ['ip', 'hostname', 'public_ip', 'public_hostname', -                     'master', 'node', 'master_lb', 'containerized', 'connect_to', 'preconfigured']: +                     'master', 'node', 'master_lb', 'containerized', +                     'connect_to', 'preconfigured', 'new_host']:              # If the property is defined (not None or False), export it:              if getattr(self, prop):                  d[prop] = getattr(self, prop) diff --git a/utils/src/ooinstall/openshift_ansible.py b/utils/src/ooinstall/openshift_ansible.py index fd2cd7fbd..c0d115fdc 100644 --- a/utils/src/ooinstall/openshift_ansible.py +++ b/utils/src/ooinstall/openshift_ansible.py @@ -19,13 +19,15 @@ def generate_inventory(hosts):      global CFG      masters = [host for host in hosts if host.master]      nodes = [host for host in hosts if host.node] +    new_nodes = [host for host in hosts if host.node and host.new_host]      proxy = determine_proxy_configuration(hosts)      multiple_masters = len(masters) > 1 +    scaleup = len(new_nodes) > 0      base_inventory_path = CFG.settings['ansible_inventory_path']      base_inventory = open(base_inventory_path, 'w') -    write_inventory_children(base_inventory, multiple_masters, proxy) +    write_inventory_children(base_inventory, multiple_masters, proxy, scaleup)      write_inventory_vars(base_inventory, multiple_masters, proxy) @@ -71,6 +73,11 @@ def generate_inventory(hosts):          base_inventory.write('\n[lb]\n')          write_host(proxy, base_inventory) +    if scaleup: +        base_inventory.write('\n[new_nodes]\n') +        for node in new_nodes: +            write_host(node, base_inventory) +      base_inventory.close()      return base_inventory_path @@ -84,12 +91,14 @@ def determine_proxy_configuration(hosts):      return None -def write_inventory_children(base_inventory, multiple_masters, proxy): +def write_inventory_children(base_inventory, multiple_masters, proxy, scaleup):      global CFG      base_inventory.write('\n[OSEv3:children]\n')      base_inventory.write('masters\n')      base_inventory.write('nodes\n') +    if scaleup: +        base_inventory.write('new_nodes\n')      if multiple_masters:          base_inventory.write('etcd\n')      if not getattr(proxy, 'preconfigured', True): @@ -119,6 +128,8 @@ def write_host(host, inventory, schedulable=None):          facts += ' openshift_hostname={}'.format(host.hostname)      if host.public_hostname:          facts += ' openshift_public_hostname={}'.format(host.public_hostname) +    if host.containerized: +        facts += ' containerized={}'.format(host.containerized)      # TODO: For not write_host is handles both master and nodes.      # Technically only nodes will ever need this. | 
