Пример #1
0
    def __init__(self, args=None, standalone=False):
        """
        Creates an instance of Job class.

        :param args: an instance of :class:`argparse.Namespace`.
        :param standalone: do not create any content and present the job log
                           on the output.
        """
        self.args = args
        self.standalone = standalone
        if args is not None:
            self.unique_id = args.unique_job_id or job_id.create_unique_job_id(
            )
        else:
            self.unique_id = job_id.create_unique_job_id()
        self.view = output.View(app_args=self.args)
        self.logdir = None
        if self.args is not None:
            raw_log_level = args.job_log_level
            mapping = {
                'info': logging.INFO,
                'debug': logging.DEBUG,
                'warning': logging.WARNING,
                'error': logging.ERROR,
                'critical': logging.CRITICAL
            }
            if raw_log_level is not None and raw_log_level in mapping:
                self.loglevel = mapping[raw_log_level]
            else:
                self.loglevel = logging.DEBUG
            if multiplexer.MULTIPLEX_CAPABLE:
                self.multiplex_files = args.multiplex_files
            self.show_job_log = args.show_job_log
            self.silent = args.silent
        else:
            self.loglevel = logging.DEBUG
            self.multiplex_files = None
            self.show_job_log = False
            self.silent = False

        if standalone:
            self.show_job_log = True
            if self.args is not None:
                setattr(self.args, 'show_job_log', True)

        if self.show_job_log:
            if not self.silent:
                test_logger = logging.getLogger('avocado.test')
                output.add_console_handler(test_logger)
                test_logger.setLevel(self.loglevel)
        self.test_dir = data_dir.get_test_dir()
        self.test_index = 1
        self.status = "RUNNING"
        self.result_proxy = result.TestResultProxy()
        self.sysinfo = None
Пример #2
0
Файл: job.py Проект: ypu/avocado
    def __init__(self, args=None):
        """
        Creates an instance of Job class.

        :param args: an instance of :class:`argparse.Namespace`.
        """
        if args is None:
            args = argparse.Namespace()
        self.args = args
        self.standalone = getattr(self.args, 'standalone', False)
        unique_id = getattr(self.args, 'unique_job_id', None)
        if unique_id is None:
            unique_id = job_id.create_unique_job_id()
        self.unique_id = unique_id
        self.view = output.View(app_args=self.args)
        self.logdir = None
        raw_log_level = settings.get_value('job.output',
                                           'loglevel',
                                           default='debug')
        mapping = {
            'info': logging.INFO,
            'debug': logging.DEBUG,
            'warning': logging.WARNING,
            'error': logging.ERROR,
            'critical': logging.CRITICAL
        }
        if raw_log_level in mapping:
            self.loglevel = mapping[raw_log_level]
        else:
            self.loglevel = logging.DEBUG
        self.show_job_log = getattr(self.args, 'show_job_log', False)
        self.silent = getattr(self.args, 'silent', False)

        if self.standalone:
            self.show_job_log = True
            if self.args is not None:
                setattr(self.args, 'show_job_log', True)

        if self.show_job_log:
            if not self.silent:
                output.add_console_handler(_TEST_LOGGER)
                _TEST_LOGGER.setLevel(self.loglevel)

        self.test_dir = data_dir.get_test_dir()
        self.test_index = 1
        self.status = "RUNNING"
        self.result_proxy = result.TestResultProxy()
        self.sysinfo = None
Пример #3
0
    def __init__(self, args=None):
        """
        Creates an instance of Job class.

        :param args: an instance of :class:`argparse.Namespace`.
        """
        self.args = args
        if args is not None:
            self.unique_id = args.unique_job_id or job_id.create_unique_job_id()
        else:
            self.unique_id = job_id.create_unique_job_id()
        self.logdir = data_dir.get_job_logs_dir(self.args, self.unique_id)
        self.logfile = os.path.join(self.logdir, "job.log")
        self.idfile = os.path.join(self.logdir, "id")

        with open(self.idfile, 'w') as id_file_obj:
            id_file_obj.write("%s\n" % self.unique_id)

        if self.args is not None:
            raw_log_level = args.job_log_level
            mapping = {'info': logging.INFO,
                       'debug': logging.DEBUG,
                       'warning': logging.WARNING,
                       'error': logging.ERROR,
                       'critical': logging.CRITICAL}
            if raw_log_level is not None and raw_log_level in mapping:
                self.loglevel = mapping[raw_log_level]
            else:
                self.loglevel = logging.DEBUG
            self.multiplex_files = args.multiplex_files
            self.show_job_log = args.show_job_log
            self.silent = args.silent
        else:
            self.loglevel = logging.DEBUG
            self.multiplex_files = None
            self.show_job_log = False
            self.silent = False
        if self.show_job_log:
            if not self.silent:
                test_logger = logging.getLogger('avocado.test')
                output.add_console_handler(test_logger)
                test_logger.setLevel(self.loglevel)
        self.test_dir = data_dir.get_test_dir()
        self.test_index = 1
        self.status = "RUNNING"
        self.result_proxy = result.TestResultProxy()
        self.view = output.View(app_args=self.args)
Пример #4
0
    def __init__(self, args=None):
        """
        Creates an instance of Job class.

        :param args: an instance of :class:`argparse.Namespace`.
        """
        if args is None:
            args = argparse.Namespace()
        self.args = args
        self.standalone = getattr(self.args, 'standalone', False)
        unique_id = getattr(self.args, 'unique_job_id', None)
        if unique_id is None:
            unique_id = job_id.create_unique_job_id()
        self.unique_id = unique_id
        self.view = output.View(app_args=self.args)
        self.logdir = None
        raw_log_level = settings.get_value('job.output', 'loglevel',
                                           default='debug')
        mapping = {'info': logging.INFO,
                   'debug': logging.DEBUG,
                   'warning': logging.WARNING,
                   'error': logging.ERROR,
                   'critical': logging.CRITICAL}
        if raw_log_level in mapping:
            self.loglevel = mapping[raw_log_level]
        else:
            self.loglevel = logging.DEBUG
        self.show_job_log = getattr(self.args, 'show_job_log', False)
        self.silent = getattr(self.args, 'silent', False)

        if self.standalone:
            self.show_job_log = True
            if self.args is not None:
                setattr(self.args, 'show_job_log', True)

        if self.show_job_log:
            if not self.silent:
                output.add_console_handler(_TEST_LOGGER)
                _TEST_LOGGER.setLevel(self.loglevel)

        self.test_dir = data_dir.get_test_dir()
        self.test_index = 1
        self.status = "RUNNING"
        self.result_proxy = result.TestResultProxy()
        self.sysinfo = None
        self.timeout = getattr(self.args, 'job_timeout', 0)
Пример #5
0
def collect_sysinfo(args):
    """
    Collect sysinfo to a base directory.

    :param args: :class:`argparse.Namespace` object with command line params.
    """
    output.add_console_handler(log)

    basedir = args.sysinfodir
    if not basedir:
        cwd = os.getcwd()
        timestamp = time.strftime('%Y-%m-%d-%H.%M.%S')
        basedir = os.path.join(cwd, 'sysinfo-%s' % timestamp)

    sysinfo_logger = SysInfo(basedir=basedir, log_packages=True)
    sysinfo_logger.start_job_hook()
    log.info("Logged system information to %s", basedir)
Пример #6
0
def collect_sysinfo(args):
    """
    Collect sysinfo to a base directory.

    :param args: :class:`argparse.Namespace` object with command line params.
    """
    output.add_console_handler(log)

    basedir = args.sysinfodir
    if not basedir:
        cwd = os.getcwd()
        timestamp = time.strftime('%Y-%m-%d-%H.%M.%S')
        basedir = os.path.join(cwd, 'sysinfo-%s' % timestamp)

    sysinfo_logger = SysInfo(basedir=basedir, log_packages=True)
    sysinfo_logger.start_job_hook()
    log.info("Logged system information to %s", basedir)