- overcloud_deploy.prep_env(deploy_settings, net_settings, opnfv_env,
- net_env_target, APEX_TEMP_DIR)
- overcloud_deploy.create_deploy_cmd(deploy_settings, net_settings,
- inventory, APEX_TEMP_DIR,
- args.virtual, args.env_file)
- deploy_playbook = os.path.join(args.lib_dir, ansible_path,
+ if not upstream:
+ # TODO(trozet): Invoke with containers after Fraser migration
+ oc_deploy.prep_env(deploy_settings, net_settings, inventory,
+ opnfv_env, net_env_target, APEX_TEMP_DIR)
+ else:
+ shutil.copyfile(
+ opnfv_env,
+ os.path.join(APEX_TEMP_DIR, os.path.basename(opnfv_env))
+ )
+ patched_containers = oc_deploy.prep_image(
+ deploy_settings, net_settings, sdn_image, APEX_TEMP_DIR,
+ root_pw=root_pw, docker_tag=tag, patches=patches['overcloud'],
+ upstream=upstream)
+
+ oc_deploy.create_deploy_cmd(deploy_settings, net_settings, inventory,
+ APEX_TEMP_DIR, args.virtual,
+ os.path.basename(opnfv_env),
+ net_data=net_data)
+ # Prepare undercloud with containers
+ docker_playbook = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
+ 'prepare_overcloud_containers.yml')
+ if ds_opts['containers']:
+ ceph_version = constants.CEPH_VERSION_MAP[ds_opts['os_version']]
+ ceph_docker_image = "ceph/daemon:tag-build-master-" \
+ "{}-centos-7".format(ceph_version)
+ logging.info("Preparing Undercloud with Docker containers")
+ if patched_containers:
+ oc_builder.archive_docker_patches(APEX_TEMP_DIR)
+ container_vars = dict()
+ container_vars['apex_temp_dir'] = APEX_TEMP_DIR
+ container_vars['patched_docker_services'] = list(
+ patched_containers)
+ container_vars['container_tag'] = constants.DOCKER_TAG
+ container_vars['stackrc'] = 'source /home/stack/stackrc'
+ container_vars['upstream'] = upstream
+ container_vars['sdn'] = ds_opts['sdn_controller']
+ container_vars['undercloud_ip'] = undercloud_admin_ip
+ container_vars['os_version'] = os_version
+ container_vars['ceph_docker_image'] = ceph_docker_image
+ container_vars['sdn_env_file'] = \
+ oc_deploy.get_docker_sdn_file(ds_opts)
+ try:
+ utils.run_ansible(container_vars, docker_playbook,
+ host=undercloud.ip, user='stack',
+ tmp_dir=APEX_TEMP_DIR)
+ logging.info("Container preparation complete")
+ except Exception:
+ logging.error("Unable to complete container prep on "
+ "Undercloud")
+ os.remove(os.path.join(APEX_TEMP_DIR, 'overcloud-full.qcow2'))
+ raise
+
+ deploy_playbook = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,