Пример #1
0
class BaseMonitor(KittyActorInterface):
    '''
    Base (abstract) monitor class
    '''

    def __init__(self, name, logger=None, victim_alive_check_delay=0.3):
        '''
        :param name: name of the actor
        :param logger: logger for the actor (default: None)
        :param victim_alive_check_delay: delay between checks if alive (default: 0.3)
        '''
        super(BaseMonitor, self).__init__(name, logger, victim_alive_check_delay)
        self.monitor_thread = None

    def setup(self):
        '''
        Make sure the monitor is ready for fuzzing
        '''
        super(BaseMonitor, self).setup()
        self.monitor_thread = LoopFuncThread(self._monitor_func)
        self.monitor_thread.start()

    def teardown(self):
        '''
        cleanup the monitor data and
        '''
        self.monitor_thread.stop()
        self.monitor_thread = None
        super(BaseMonitor, self).teardown()

    def pre_test(self, test_number):
        '''
        Called when a test is started

        :param test_number: current test number
        '''
        if not self._is_alive():
            self.setup()
        super(BaseMonitor, self).pre_test(test_number)

    def _is_alive(self):
        '''
        Check if the monitor is alive
        '''
        if self.monitor_thread is not None:
            if self.monitor_thread.is_alive():
                return True
        return False

    def _monitor_func(self):
        '''
        Called in a loop in a separate thread (self.monitor_thread).
        '''
        self.not_implemented('_monitor_func')
Пример #2
0
class BaseMonitor(KittyActorInterface):
    '''
    Base (abstract) monitor class
    '''
    def __init__(self, name, logger=None, victim_alive_check_delay=0.3):
        '''
        :param name: name of the actor
        :param logger: logger for the actor (default: None)
        :param victim_alive_check_delay: delay between checks if alive (default: 0.3)
        '''
        super(BaseMonitor, self).__init__(name, logger,
                                          victim_alive_check_delay)
        self.monitor_thread = None

    def setup(self):
        '''
        Make sure the monitor is ready for fuzzing
        '''
        super(BaseMonitor, self).setup()
        self.monitor_thread = LoopFuncThread(self._monitor_func)
        self.monitor_thread.start()

    def teardown(self):
        '''
        cleanup the monitor data and
        '''
        self.monitor_thread.stop()
        self.monitor_thread = None
        super(BaseMonitor, self).teardown()

    def pre_test(self, test_number):
        '''
        Called when a test is started

        :param test_number: current test number
        '''
        if not self._is_alive():
            self.setup()
        super(BaseMonitor, self).pre_test(test_number)

    def _is_alive(self):
        '''
        Check if the monitor is alive
        '''
        if self.monitor_thread is not None:
            if self.monitor_thread.is_alive():
                return True
        return False

    def _monitor_func(self):
        '''
        Called in a loop in a separate thread (self.monitor_thread).
        '''
        self.not_implemented('_monitor_func')
Пример #3
0
Файл: base.py Проект: wflk/kitty
class BaseMonitor(KittyObject):
    '''
    Base (abstract) monitor class
    '''
    def __init__(self, name, logger=None):
        '''
        :param name: name of the monitor
        :param logger: logger for the monitor (default: None)
        '''
        super(BaseMonitor, self).__init__(name, logger)
        self.report = Report(name)
        self.monitor_thread = None
        self.test_number = None

    def setup(self):
        '''
        Make sure the monitor is ready for fuzzing
        '''
        self._cleanup()
        self.monitor_thread = LoopFuncThread(self._monitor_func)
        self.monitor_thread.start()

    def teardown(self):
        '''
        cleanup the monitor data and
        '''
        self.monitor_thread.stop()
        self.monitor_thread = None

    def pre_test(self, test_number):
        '''
        Called when a test is started

        :param test_number: current test number
        '''
        if not self._is_alive():
            self.setup()
        self._cleanup()
        self.test_number = test_number
        self.report.add('state', 'STARTED')
        self.report.add('start_time', time.time())
        self.report.add('name', self.name)

    def post_test(self):
        '''
        Called when a test is completed, prepare the report etc.
        '''
        self.report.add('state', 'STOPPED')
        self.report.add('stop_time', time.time())

    def _is_alive(self):
        '''
        Check if victim/monitor alive
        '''
        if self.monitor_thread is not None:
            if self.monitor_thread.is_alive():
                return True
        return False

    def _cleanup(self):
        '''
        perform a monitor cleanup
        '''
        self.report = Report(self.name)

    def get_report(self):
        '''
        :return: the monitor's report
        '''
        return self.report

    def _monitor_func(self):
        '''
        Called in a loop in a separate thread (self.monitor_thread).
        '''
        self.not_implemented('_monitor_func')
Пример #4
0
class BaseMonitor(KittyObject):
    '''
    Base (abstract) monitor class
    '''

    def __init__(self, name, logger=None):
        '''
        :param name: name of the monitor
        :param logger: logger for the monitor (default: None)
        '''
        super(BaseMonitor, self).__init__(name, logger)
        self.report = Report(name)
        self.monitor_thread = None
        self.test_number = None

    def setup(self):
        '''
        Make sure the monitor is ready for fuzzing
        '''
        self._cleanup()
        self.monitor_thread = LoopFuncThread(self._monitor_func)
        self.monitor_thread.start()

    def teardown(self):
        '''
        cleanup the monitor data and
        '''
        self.monitor_thread.stop()
        self.monitor_thread = None

    def pre_test(self, test_number):
        '''
        Called when a test is started

        :param test_number: current test number
        '''
        if not self._is_alive():
            self.setup()
        self._cleanup()
        self.test_number = test_number
        self.report.add('state', 'STARTED')
        self.report.add('start_time', time.time())
        self.report.add('name', self.name)

    def post_test(self):
        '''
        Called when a test is completed, prepare the report etc.
        '''
        self.report.add('state', 'STOPPED')
        self.report.add('stop_time', time.time())

    def _is_alive(self):
        '''
        Check if victim/monitor alive
        '''
        if self.monitor_thread is not None:
            if self.monitor_thread.is_alive():
                return True
        return False

    def _cleanup(self):
        '''
        perform a monitor cleanup
        '''
        self.report = Report(self.name)

    def get_report(self):
        '''
        :return: the monitor's report
        '''
        return self.report

    def _monitor_func(self):
        '''
        Called in a loop in a separate thread (self.monitor_thread).
        '''
        self.not_implemented('_monitor_func')