Merge "Removes OC condition in dhcp-all-interfaces"
authorTim Rozet <trozet@redhat.com>
Thu, 12 Jul 2018 16:37:35 +0000 (16:37 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Thu, 12 Jul 2018 16:37:35 +0000 (16:37 +0000)
1  2 
apex/overcloud/deploy.py

diff --combined apex/overcloud/deploy.py
@@@ -144,16 -144,15 +144,16 @@@ def get_docker_sdn_file(ds_opts)
      """
      # FIXME(trozet): We assume right now there is only one docker SDN file
      docker_services = con.VALID_DOCKER_SERVICES
 +    tht_dir = con.THT_DOCKER_ENV_DIR[ds_opts['os_version']]
      sdn_env_list = build_sdn_env_list(ds_opts, SDN_FILE_MAP)
      for sdn_file in sdn_env_list:
          sdn_base = os.path.basename(sdn_file)
          if sdn_base in docker_services:
              if docker_services[sdn_base] is not None:
 -                return os.path.join(con.THT_DOCKER_ENV_DIR,
 +                return os.path.join(tht_dir,
                                      docker_services[sdn_base])
              else:
 -                return os.path.join(con.THT_DOCKER_ENV_DIR, sdn_base)
 +                return os.path.join(tht_dir, sdn_base)
  
  
  def create_deploy_cmd(ds, ns, inv, tmp_dir,
              else:
                  deploy_options.append(os.path.join(con.THT_ENV_DIR, v))
  
 -    if ds_opts['ceph']:
 +    if ds_opts['ceph'] and 'csit' not in env_file:
          prep_storage_env(ds, ns, virtual, tmp_dir)
          deploy_options.append(os.path.join(con.THT_ENV_DIR,
                                             'storage-environment.yaml'))
  
  
  def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
 -               patches=None, upstream=False):
 +               patches=None):
      """
      Locates sdn image and preps for deployment.
      :param ds: deploy settings
      :param root_pw: password to configure for overcloud image
      :param docker_tag: Docker image tag for RDO version (default None)
      :param patches: List of patches to apply to overcloud image
 -    :param upstream: (boolean) Indicates if upstream deployment or not
      :return: None
      """
      # TODO(trozet): Come up with a better way to organize this logic in this
      logging.debug("Temporary overcloud image stored as: {}".format(
          tmp_oc_image))
  
 -    # TODO (trozet): remove this if block after Fraser
 -    if sdn == 'opendaylight' and not upstream:
 -        if ds_opts['odl_version'] != con.DEFAULT_ODL_VERSION:
 -            virt_cmds.extend([
 -                {con.VIRT_RUN_CMD: "yum -y remove opendaylight"},
 -                {con.VIRT_RUN_CMD: "rm -rf /etc/puppet/modules/opendaylight"},
 -                {con.VIRT_RUN_CMD: "cd /etc/puppet/modules && tar xzf "
 -                                   "/root/puppet-opendaylight-"
 -                                   "{}.tar.gz".format(ds_opts['odl_version'])}
 -            ])
 -            if ds_opts['odl_version'] == 'master':
 -                virt_cmds.extend([
 -                    {con.VIRT_RUN_CMD: "rpm -ivh --nodeps /root/{}/*".format(
 -                        ds_opts['odl_version'])}
 -                ])
 -            else:
 -                virt_cmds.extend([
 -                    {con.VIRT_RUN_CMD: "yum -y install /root/{}/*".format(
 -                        ds_opts['odl_version'])}
 -                ])
 -
 -        elif sdn == 'opendaylight' and 'odl_vpp_netvirt' in ds_opts \
 -                and ds_opts['odl_vpp_netvirt']:
 -            virt_cmds.extend([
 -                {con.VIRT_RUN_CMD: "yum -y remove opendaylight"},
 -                {con.VIRT_RUN_CMD: "yum -y install /root/{}/*".format(
 -                    ODL_NETVIRT_VPP_RPM)}
 -            ])
 -    elif sdn == 'opendaylight':
 +    if sdn == 'opendaylight':
          undercloud_admin_ip = ns['networks'][con.ADMIN_NETWORK][
              'installer_vm']['ip']
          oc_builder.inject_opendaylight(
                                             docker_tag=docker_tag))
      # if containers with ceph, and no ceph device we need to use a
      # persistent loop device for Ceph OSDs
 -    if docker_tag and not ds_opts.get('ceph_device', None):
 +    if docker_tag and ds_opts['ceph_device'] == '/dev/loop3':
          tmp_losetup = os.path.join(tmp_dir, 'losetup.service')
          with open(tmp_losetup, 'w') as fh:
              fh.write(LOSETUP_SERVICE)
              {con.VIRT_UPLOAD: "{}:/usr/lib/systemd/system/".format(tmp_losetup)
               },
              {con.VIRT_RUN_CMD: 'truncate /srv/data.img --size 10G'},
 -            {con.VIRT_RUN_CMD: 'mkfs.ext4 -F /srv/data.img'},
              {con.VIRT_RUN_CMD: 'systemctl daemon-reload'},
              {con.VIRT_RUN_CMD: 'systemctl enable losetup.service'},
          ])
+     # TODO(trozet) remove this after LP#173474 is fixed
+     dhcp_unit = '/usr/lib/systemd/system/dhcp-interface@.service'
+     virt_cmds.append(
+         {con.VIRT_RUN_CMD: "crudini --del {} Unit "
+                            "ConditionPathExists".format(dhcp_unit)})
      virt_utils.virt_customize(virt_cmds, tmp_oc_image)
      logging.info("Overcloud image customization complete")
      return patched_containers
@@@ -656,26 -690,28 +661,26 @@@ def prep_storage_env(ds, ns, virtual, t
          ceph_params = {
              'DockerCephDaemonImage': docker_image,
          }
 -        if not ds['global_params']['ha_enabled']:
 -            ceph_params['CephPoolDefaultSize'] = 1
  
 +        # max pgs allowed are calculated as num_mons * 200. Therefore we
 +        # set number of pgs and pools so that the total will be less:
 +        # num_pgs * num_pools * num_osds
 +        ceph_params['CephPoolDefaultSize'] = 2
 +        ceph_params['CephPoolDefaultPgNum'] = 32
          if virtual:
              ceph_params['CephAnsibleExtraConfig'] = {
                  'centos_package_dependencies': [],
                  'ceph_osd_docker_memory_limit': '1g',
                  'ceph_mds_docker_memory_limit': '1g',
              }
 -            ceph_params['CephPoolDefaultPgNum'] = 32
 -        if 'ceph_device' in ds_opts and ds_opts['ceph_device']:
 -            ceph_device = ds_opts['ceph_device']
 -        else:
 -            # TODO(trozet): make this DS default after Fraser
 -            ceph_device = '/dev/loop3'
 -
 +        ceph_device = ds_opts['ceph_device']
          ceph_params['CephAnsibleDisksConfig'] = {
              'devices': [ceph_device],
              'journal_size': 512,
              'osd_scenario': 'collocated'
          }
          utils.edit_tht_env(storage_file, 'parameter_defaults', ceph_params)
 +    # TODO(trozet): remove following block as we only support containers now
      elif 'ceph_device' in ds_opts and ds_opts['ceph_device']:
          with open(storage_file, 'a') as fh:
              fh.write('  ExtraConfig:\n')