示例#1
0
    root_dir = LinuxCLI().cmd('pwd').strip()
    print 'Setting root dir to: ' + root_dir

    client_impl = None
    if client_impl_type == 'neutron':
        client_impl = create_neutron_client(**client_args)
    elif client_impl_type == 'midonet':
        client_impl = create_midonet_client(**client_args)
    else:
        raise ArgMismatchException('Invalid client API implementation:' + client_impl_type)

    print 'Setting up log manager'
    log_manager = LogManager(root_dir=log_dir)
    console_log = log_manager.add_stdout_logger(name='tsm-run-console',
                                                log_level=logging.DEBUG if debug is True else logging.INFO)
    log_manager.rollover_logs_fresh(file_filter='*.log')

    console_log.debug('Setting up PTM')
    ptm = PhysicalTopologyManager(root_dir=root_dir, log_manager=log_manager)
    ptm.configure_logging(debug=debug)

    console_log.debug('Setting up VTM')
    vtm = VirtualTopologyManager(physical_topology_manager=ptm, client_api_impl=client_impl, log_manager=log_manager)

    console_log.debug('Setting up TSM')
    tsm = TestSystemManager(ptm, vtm, log_manager=log_manager)
    tsm.configure_logging(debug=debug)

    scenario_filters = [TestScenario.get_class(s) for s in scenario_filter_list] \
        if len(scenario_filter_list) != 0 else None
    test_cases = map(TestCase.get_class, tests)
示例#2
0
    def test_rollover(self):

        LinuxCLI().rm('./logs')
        LinuxCLI().rm('./logbak')

        lm = LogManager('./logs')
        lm.set_default_log_level(logging.DEBUG)

        LinuxCLI(priv=False).write_to_file('./logs/test.log', 'data')
        LinuxCLI(priv=False).write_to_file('./logs/test2.log', 'data2')

        # Run fresh rollover function before loggers are defined
        lm.rollover_logs_fresh(date_pattern='%Y', zip_file=False)
        try:
            current_year = str(datetime.datetime.now().year)
            self.assertFalse(LinuxCLI().exists('./logs/test.log'))
            self.assertFalse(LinuxCLI().exists('./logs/test2.log'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak/test.log.' + current_year))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak/test2.log.' + current_year))
            self.assertNotEqual(0, os.path.getsize('./logs/log_bak/test.log.' + current_year))
            self.assertNotEqual(0, os.path.getsize('./logs/log_bak/test2.log.' + current_year))
        finally:
            LinuxCLI().rm('./logs/log_bak')

        l1 = lm.add_file_logger(name='main', file_name='test.log', file_overwrite=True)
        l2 = lm.add_file_logger(name='sub', file_name='test.log', file_overwrite=False)
        l3 = lm.add_file_logger(name='main2', file_name='test2.log', file_overwrite=True)

        self.assertIn(FileLocation('./logs/test.log'), lm.open_log_files)
        self.assertIn(FileLocation('./logs/test2.log'), lm.open_log_files)
        self.assertEqual(2, len(lm.open_log_files))

        # Running rollover before log files have data should be a no-op,
        # So the empty files should remain
        lm.rollover_logs_by_date()
        try:
            self.assertTrue(LinuxCLI().exists('./logs/test.log'))
            self.assertTrue(LinuxCLI().exists('./logs/test2.log'))
            self.assertEqual(0, os.path.getsize('./logs/test.log'))
            self.assertEqual(0, os.path.getsize('./logs/test2.log'))
            self.assertFalse(LinuxCLI().exists('./logs/log_bak'))
        finally:
            LinuxCLI().rm('./logs/log_bak')

        l1.info('test1')
        l2.info('test2')
        l3.info('test3')

        # Now run a standard rollover with no params, default log dir should be created
        # and regular log files should be moved and zipped
        lm.rollover_logs_by_date()
        try:
            self.assertTrue(LinuxCLI().exists('./logs/test.log'))
            self.assertTrue(LinuxCLI().exists('./logs/test2.log'))
            self.assertEqual(0, os.path.getsize('./logs/test.log'))
            self.assertEqual(0, os.path.getsize('./logs/test2.log'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak'))
        finally:
            LinuxCLI().rm('./logs/log_bak')

        l1.info('test1')
        l2.info('test2')
        l3.info('test3')

        self.assertNotEqual(0, os.path.getsize('./logs/test.log'))
        self.assertNotEqual(0, os.path.getsize('./logs/test2.log'))

        # Same as no-params, just with a specified backup dir
        lm.rollover_logs_by_date(backup_dir='./logbak')
        try:
            self.assertTrue(LinuxCLI().exists('./logs/test.log'))
            self.assertTrue(LinuxCLI().exists('./logs/test2.log'))
            self.assertEqual(0, os.path.getsize('./logs/test.log'))
            self.assertEqual(0, os.path.getsize('./logs/test2.log'))
            self.assertTrue(LinuxCLI().exists('./logbak'))
        finally:
            LinuxCLI().rm('./logbak')

        l1.info('test1')
        l2.info('test2')
        l3.info('test3')

        # Now use a specific pattern, making it easy to test for
        # the files' existence
        new_file = lm.rollover_logs_by_date(date_pattern='%Y')
        try:
            current_year = str(datetime.datetime.now().year)
            self.assertTrue(LinuxCLI().exists('./logs/test.log'))
            self.assertTrue(LinuxCLI().exists('./logs/test2.log'))
            self.assertEqual(0, os.path.getsize('./logs/test.log'))
            self.assertEqual(0, os.path.getsize('./logs/test2.log'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak/test.log.' + current_year + '.gz'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak/test2.log.' + current_year + '.gz'))
        finally:
            LinuxCLI().rm('./logs/log_bak')

        l1.info('test1')
        l2.info('test2')
        l3.info('test3')

        new_file = lm.rollover_logs_by_date(date_pattern='%Y', zip_file=False)
        try:
            current_year = str(datetime.datetime.now().year)
            self.assertTrue(LinuxCLI().exists('./logs/test.log'))
            self.assertTrue(LinuxCLI().exists('./logs/test2.log'))
            self.assertEqual(0, os.path.getsize('./logs/test.log'))
            self.assertEqual(0, os.path.getsize('./logs/test2.log'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak'))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak/test.log.' + current_year))
            self.assertTrue(LinuxCLI().exists('./logs/log_bak/test2.log.' + current_year))
        finally:
            LinuxCLI().rm('./logs')