X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=deploy%2Fdeploy.py;h=8064af9932b01c7c9157fa559ba75ea5d0bddefe;hb=dc7f16e0fa9545021b2673e18eff421221ba06c0;hp=492c7596a7f51b0290279867b5890949b0be95e3;hpb=bc4bf0ec3621dac7aa96935e48fadff0c8f03464;p=fuel.git diff --git a/deploy/deploy.py b/deploy/deploy.py index 492c7596a..8064af993 100755 --- a/deploy/deploy.py +++ b/deploy/deploy.py @@ -30,6 +30,7 @@ from common import ( err, warn, check_file_exists, + check_dir_exists, create_dir_if_not_exists, delete, check_if_root, @@ -61,7 +62,7 @@ class AutoDeploy(object): def __init__(self, no_fuel, fuel_only, no_health_check, cleanup_only, cleanup, storage_dir, pxe_bridge, iso_file, dea_file, dha_file, fuel_plugins_dir, fuel_plugins_conf_dir, - no_plugins, deploy_timeout): + no_plugins, deploy_timeout, no_deploy_environment, deploy_log): self.no_fuel = no_fuel self.fuel_only = fuel_only self.no_health_check = no_health_check @@ -76,6 +77,8 @@ class AutoDeploy(object): self.fuel_plugins_conf_dir = fuel_plugins_conf_dir self.no_plugins = no_plugins self.deploy_timeout = deploy_timeout + self.no_deploy_environment = no_deploy_environment + self.deploy_log = deploy_log self.dea = (DeploymentEnvironmentAdapter(dea_file) if not cleanup_only else None) self.dha = DeploymentHardwareAdapter(dha_file) @@ -164,6 +167,8 @@ class AutoDeploy(object): '-x "lost+found:" -V %s -o %s .' % (iso_linux_bin, iso_label, new_iso)) + delete(tmp_new_dir) + def update_fuel_isolinux(self, file): with io.open(file) as f: data = f.read() @@ -198,7 +203,8 @@ class AutoDeploy(object): dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'], self.fuel_username, self.fuel_password, self.dea_file, self.fuel_plugins_conf_dir, - WORK_DIR, self.no_health_check, self.deploy_timeout) + WORK_DIR, self.no_health_check, self.deploy_timeout, + self.no_deploy_environment, self.deploy_log) return dep.deploy() def setup_execution_environment(self): @@ -239,7 +245,13 @@ class AutoDeploy(object): # Exit status return 0 + def check_bridge(pxe_bridge, dha_path): + # Assume that bridges on remote nodes exists, we could ssh but + # the remote user might not have a login shell. + if os.environ.get('LIBVIRT_DEFAULT_URI'): + return + with io.open(dha_path) as yaml_file: dha_struct = yaml.load(yaml_file) if dha_struct['adapter'] != 'libvirt': @@ -319,33 +331,45 @@ def parse_arguments(): parser.add_argument('-dt', dest='deploy_timeout', action='store', default=240, help='Deployment timeout (in minutes) ' '[default: 240]') + parser.add_argument('-nde', dest='no_deploy_environment', + action='store_true', default=False, + help=('Do not launch environment deployment')) + parser.add_argument('-log', dest='deploy_log', + action='store', default='../ci/.', + help=('Path and name of the deployment log archive')) args = parser.parse_args() log(args) check_file_exists(args.dha_file) + check_dir_exists(os.path.dirname(args.deploy_log)) + if not args.cleanup_only: check_file_exists(args.dea_file) check_fuel_plugins_dir(args.fuel_plugins_dir) + iso_abs_path = os.path.abspath(args.iso_file) if not args.no_fuel and not args.cleanup_only: - log('Using OPNFV ISO file: %s' % args.iso_file) - check_file_exists(args.iso_file) + log('Using OPNFV ISO file: %s' % iso_abs_path) + check_file_exists(iso_abs_path) log('Using image directory: %s' % args.storage_dir) create_dir_if_not_exists(args.storage_dir) check_bridge(args.pxe_bridge, args.dha_file) + kwargs = {'no_fuel': args.no_fuel, 'fuel_only': args.fuel_only, 'no_health_check': args.no_health_check, 'cleanup_only': args.cleanup_only, 'cleanup': args.cleanup, 'storage_dir': args.storage_dir, 'pxe_bridge': args.pxe_bridge, - 'iso_file': args.iso_file, 'dea_file': args.dea_file, + 'iso_file': iso_abs_path, 'dea_file': args.dea_file, 'dha_file': args.dha_file, 'fuel_plugins_dir': args.fuel_plugins_dir, 'fuel_plugins_conf_dir': args.fuel_plugins_conf_dir, 'no_plugins': args.no_plugins, - 'deploy_timeout': args.deploy_timeout} + 'deploy_timeout': args.deploy_timeout, + 'no_deploy_environment': args.no_deploy_environment, + 'deploy_log': args.deploy_log} return kwargs