Merge "Fixes stale undercloud delorean repos"
authorFeng Pan <fpan@redhat.com>
Fri, 16 Feb 2018 21:27:59 +0000 (21:27 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Fri, 16 Feb 2018 21:27:59 +0000 (21:27 +0000)
1  2 
apex/deploy.py
apex/undercloud/undercloud.py

diff --combined apex/deploy.py
@@@ -382,7 -382,8 +382,8 @@@ def main()
                                         args.deploy_dir,
                                         root_pw=root_pw,
                                         external_network=uc_external,
-                                        image_name=os.path.basename(uc_image))
+                                        image_name=os.path.basename(uc_image),
+                                        os_version=os_version)
          undercloud.start()
  
          # Generate nic templates
          if not upstream:
              oc_deploy.prep_env(deploy_settings, net_settings, inventory,
                                 opnfv_env, net_env_target, APEX_TEMP_DIR)
 -            oc_deploy.prep_image(deploy_settings, sdn_image, APEX_TEMP_DIR,
 -                                 root_pw=root_pw)
 +            oc_deploy.prep_image(deploy_settings, net_settings, sdn_image,
 +                                 APEX_TEMP_DIR, root_pw=root_pw)
          else:
              shutil.copyfile(sdn_image, os.path.join(APEX_TEMP_DIR,
                                                      'overcloud-full.qcow2'))
          deploy_vars['overcloudrc'] = 'source /home/stack/overcloudrc'
          deploy_vars['upstream'] = upstream
          deploy_vars['os_version'] = os_version
 +        deploy_vars['http_proxy'] = net_settings.get('http_proxy', '')
 +        deploy_vars['https_proxy'] = net_settings.get('https_proxy', '')
          for dns_server in net_settings['dns_servers']:
              deploy_vars['dns_server_args'] += " --dns-nameserver {}".format(
                  dns_server)
@@@ -31,8 -31,10 +31,10 @@@ class Undercloud
      """
      def __init__(self, image_path, template_path,
                   root_pw=None, external_network=False,
-                  image_name='undercloud.qcow2'):
+                  image_name='undercloud.qcow2',
+                  os_version=constants.DEFAULT_OS_VERSION):
          self.ip = None
+         self.os_version = os_version
          self.root_pw = root_pw
          self.external_net = external_network
          self.volume = os.path.join(constants.LIBVIRT_VOLUME_PATH,
@@@ -73,6 -75,7 +75,7 @@@
                                     template_dir=self.template_path)
          self.setup_volumes()
          self.inject_auth()
+         self._update_delorean_repo()
  
      def _set_ip(self):
          ip_out = self.vm.interfaceAddresses(
              "enabled": ns_external['enabled']
          }
  
 +        config['http_proxy'] = ns.get('http_proxy', '')
 +        config['https_proxy'] = ns.get('https_proxy', '')
 +
          return config
+     def _update_delorean_repo(self):
+         if utils.internet_connectivity():
+             logging.info('Updating delorean repo on Undercloud')
+             delorean_repo = (
+                 "https://trunk.rdoproject.org/centos7-{}"
+                 "/current-tripleo/delorean.repo".format(self.os_version))
+             cmd = ("curl -L -f -o "
+                    "/etc/yum.repos.d/deloran.repo {}".format(delorean_repo))
+             try:
+                 virt_utils.virt_customize({constants.VIRT_RUN_CMD: cmd},
+                                           self.volume)
+             except Exception:
+                 logging.warning("Failed to download and update delorean repo "
+                                 "for Undercloud")