def parse(self): ''' parse cli arguments from packager ''' parser = argparse.ArgumentParser(add_help=False, parents=[self.parser]) cfg_file_defaults = self.parse_cfg_file(self.cfg_file) parser.set_defaults(**self.defaults) parser.set_defaults(**cfg_file_defaults['config']) ns_cliargs = parser.parse_args(self.unparsed_args) # Create log file ns_cliargs.logfile = self.defaults['logfile'].format( storedir=ns_cliargs.store_dir, id=ns_cliargs.build_id) if not os.path.isdir(os.path.dirname(ns_cliargs.logfile)): os.makedirs(os.path.dirname(ns_cliargs.logfile)) logging.config.fileConfig(self.defaults['log_config'], defaults={ 'loglevel': self.defaults['loglevel'], 'logfile': ns_cliargs.logfile }) # update sku in package files ns_cliargs.base_package_file = [base_file.format(skuname=ns_cliargs.sku) for \ base_file in Utils.get_as_list(ns_cliargs.base_package_file)] ns_cliargs.base_package_file = self.get_files_by_pattern( ns_cliargs.base_package_file, True) ns_cliargs.depends_package_file = [deps_file.format(skuname=ns_cliargs.sku) for \ deps_file in Utils.get_as_list(ns_cliargs.depends_package_file)] ns_cliargs.depends_package_file = self.get_files_by_pattern( ns_cliargs.depends_package_file, True) ns_cliargs.contrail_package_file = [cont_file.format(skuname=ns_cliargs.sku) for \ cont_file in Utils.get_as_list(ns_cliargs.contrail_package_file)] ns_cliargs.contrail_package_file = self.get_files_by_pattern( ns_cliargs.contrail_package_file, True) # validate file and dir exists self.is_dir_exists(ns_cliargs.cache_base_dir) if ns_cliargs.absolute_package_dir is not None: self.is_dir_exists(ns_cliargs.absolute_package_dir) if ns_cliargs.contrail_package_dir is not None: self.is_dir_exists(ns_cliargs.contrail_package_dir) self.is_file_exists(ns_cliargs.base_package_file) self.is_file_exists(ns_cliargs.depends_package_file) self.is_file_exists(ns_cliargs.contrail_package_file) # convert namespace as a dict self.cliargs = dict(ns_cliargs._get_kwargs())
def parse(self): ''' parse cli arguments from packager ''' parser = argparse.ArgumentParser(add_help=False, parents=[self.parser]) cfg_file_defaults = self.parse_cfg_file(self.cfg_file) parser.set_defaults(**self.defaults) parser.set_defaults(**cfg_file_defaults['config']) ns_cliargs = parser.parse_args(self.unparsed_args) # Create log file ns_cliargs.logfile = self.defaults['logfile'].format(storedir=ns_cliargs.store_dir, id=ns_cliargs.build_id) if not os.path.isdir(os.path.dirname(ns_cliargs.logfile)): os.makedirs(os.path.dirname(ns_cliargs.logfile)) logging.config.fileConfig(self.defaults['log_config'], defaults={'loglevel': self.defaults['loglevel'], 'logfile': ns_cliargs.logfile}) # update sku in package files ns_cliargs.base_package_file = [base_file.format(skuname=ns_cliargs.sku) for \ base_file in Utils.get_as_list(ns_cliargs.base_package_file)] ns_cliargs.base_package_file = self.get_files_by_pattern(ns_cliargs.base_package_file, True) ns_cliargs.depends_package_file = [deps_file.format(skuname=ns_cliargs.sku) for \ deps_file in Utils.get_as_list(ns_cliargs.depends_package_file)] ns_cliargs.depends_package_file = self.get_files_by_pattern(ns_cliargs.depends_package_file, True) ns_cliargs.contrail_package_file = [cont_file.format(skuname=ns_cliargs.sku) for \ cont_file in Utils.get_as_list(ns_cliargs.contrail_package_file)] ns_cliargs.contrail_package_file = self.get_files_by_pattern(ns_cliargs.contrail_package_file, True) # validate file and dir exists self.is_dir_exists(ns_cliargs.cache_base_dir) if ns_cliargs.absolute_package_dir is not None: self.is_dir_exists(ns_cliargs.absolute_package_dir) if ns_cliargs.contrail_package_dir is not None: self.is_dir_exists(ns_cliargs.contrail_package_dir) self.is_file_exists(ns_cliargs.base_package_file) self.is_file_exists(ns_cliargs.depends_package_file) self.is_file_exists(ns_cliargs.contrail_package_file) # convert namespace as a dict self.cliargs = dict(ns_cliargs._get_kwargs())
def parse(self): ''' parse cli arguments from packager ''' parser = argparse.ArgumentParser(add_help=False, parents=[self.parser]) cfg_file_defaults = self.parse_cfg_file(self.cfg_file) parser.set_defaults(**self.defaults) parser.set_defaults(**cfg_file_defaults['config']) ns_cliargs = parser.parse_args(self.unparsed_args) # Create log file - if logfile is specified via CLI or config file, # the .format() will have no effect ns_cliargs.logfile = ns_cliargs.logfile.format(storedir=ns_cliargs.store_dir, id=ns_cliargs.build_id) if not os.path.isdir(os.path.dirname(ns_cliargs.logfile)): os.makedirs(os.path.dirname(ns_cliargs.logfile)) logging.config.fileConfig(ns_cliargs.log_config, defaults={'loglevel': ns_cliargs.loglevel, 'logfile' : ns_cliargs.logfile}) # If the console log level is set to debug, we will also # echo output of all commands run via Utils.exec_cmd() ns_cliargs.debug = ns_cliargs.loglevel == "DEBUG" # set default branch if ns_cliargs.branch is None: output = os.popen('cat %s/controller/src/base/version.info' % ns_cliargs.git_local_repo) ns_cliargs.branch = output.read().strip() # update sku in package files ns_cliargs.base_package_file = [base_file.format(skuname=ns_cliargs.sku, dist_dir=ns_cliargs.os_version) for \ base_file in Utils.get_as_list(ns_cliargs.base_package_file)] ns_cliargs.base_package_file = self.get_files_by_pattern(ns_cliargs.base_package_file, False) ns_cliargs.depends_package_file = [deps_file.format(skuname=ns_cliargs.sku, dist_dir=ns_cliargs.os_version) for \ deps_file in Utils.get_as_list(ns_cliargs.depends_package_file)] ns_cliargs.depends_package_file = self.get_files_by_pattern(ns_cliargs.depends_package_file, True) ns_cliargs.contrail_package_file = [cont_file.format(skuname=ns_cliargs.sku, dist_dir=ns_cliargs.os_version) for \ cont_file in Utils.get_as_list(ns_cliargs.contrail_package_file)] ns_cliargs.contrail_package_file = self.get_files_by_pattern(ns_cliargs.contrail_package_file, True) # validate file and dir exists self.is_dir_exists(ns_cliargs.cache_base_dir) if ns_cliargs.absolute_package_dir is not None: self.is_dir_exists(ns_cliargs.absolute_package_dir) if ns_cliargs.contrail_package_dir is not None: self.is_dir_exists(ns_cliargs.contrail_package_dir) self.is_file_exists(ns_cliargs.base_package_file) self.is_file_exists(ns_cliargs.depends_package_file) self.is_file_exists(ns_cliargs.contrail_package_file) # convert namespace as a dict self.cliargs = dict(ns_cliargs._get_kwargs()) if self.cliargs['populate_defaults']: log.info('Arguments from config file') log.info(self.cliargs['config']) self.banner(self.get_config_file_args()) log.info('Populated Arguments: ') new_args = dict([('--%s' % key.replace('_', '-'), value) for key, value in self.cliargs.items()]) new_args['--build-id'] = '%s (random number)' % new_args['--build-id'] new_args['--logfile'] = '%s (based on build-id and timestamp)' % new_args['--logfile'] self.banner(new_args) sys.exit(0)
def parse(self): ''' parse cli arguments from packager ''' parser = argparse.ArgumentParser(add_help=False, parents=[self.parser]) cfg_file_defaults = self.parse_cfg_file(self.cfg_file) parser.set_defaults(**self.defaults) parser.set_defaults(**cfg_file_defaults['config']) ns_cliargs = parser.parse_args(self.unparsed_args) # Create log file ns_cliargs.logfile = self.defaults['logfile'].format( storedir=ns_cliargs.store_dir, id=ns_cliargs.build_id) if not os.path.isdir(os.path.dirname(ns_cliargs.logfile)): os.makedirs(os.path.dirname(ns_cliargs.logfile)) logging.config.fileConfig(self.defaults['log_config'], defaults={ 'loglevel': self.defaults['loglevel'], 'logfile': ns_cliargs.logfile }) # set default branch if ns_cliargs.branch is None: output = os.popen('cat %s/controller/src/base/version.info' % ns_cliargs.git_local_repo) ns_cliargs.branch = output.read().strip() # update sku in package files ns_cliargs.base_package_file = [base_file.format(skuname=ns_cliargs.sku, dist_dir=ns_cliargs.os_version) for \ base_file in Utils.get_as_list(ns_cliargs.base_package_file)] ns_cliargs.base_package_file = self.get_files_by_pattern( ns_cliargs.base_package_file, False) ns_cliargs.depends_package_file = [deps_file.format(skuname=ns_cliargs.sku, dist_dir=ns_cliargs.os_version) for \ deps_file in Utils.get_as_list(ns_cliargs.depends_package_file)] ns_cliargs.depends_package_file = self.get_files_by_pattern( ns_cliargs.depends_package_file, True) ns_cliargs.contrail_package_file = [cont_file.format(skuname=ns_cliargs.sku, dist_dir=ns_cliargs.os_version) for \ cont_file in Utils.get_as_list(ns_cliargs.contrail_package_file)] ns_cliargs.contrail_package_file = self.get_files_by_pattern( ns_cliargs.contrail_package_file, True) # validate file and dir exists self.is_dir_exists(ns_cliargs.cache_base_dir) if ns_cliargs.absolute_package_dir is not None: self.is_dir_exists(ns_cliargs.absolute_package_dir) if ns_cliargs.contrail_package_dir is not None: self.is_dir_exists(ns_cliargs.contrail_package_dir) self.is_file_exists(ns_cliargs.base_package_file) self.is_file_exists(ns_cliargs.depends_package_file) self.is_file_exists(ns_cliargs.contrail_package_file) # convert namespace as a dict self.cliargs = dict(ns_cliargs._get_kwargs()) if self.cliargs['populate_defaults']: log.info('Arguments from config file') log.info(self.cliargs['config']) self.banner(self.get_config_file_args()) log.info('Populated Arguments: ') new_args = dict([('--%s' % key.replace('_', '-'), value) for key, value in self.cliargs.items()]) new_args[ '--build-id'] = '%s (random number)' % new_args['--build-id'] new_args[ '--logfile'] = '%s (based on build-id and timestamp)' % new_args[ '--logfile'] self.banner(new_args) sys.exit(0)