Пример #1
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
                                  })

        # 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())
Пример #2
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})

        # 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)
Пример #4
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)