Esempio n. 1
0
    def action_change_process_state(self):
        resp = dict()
        thread_handler = self.mbean.thread_handlers[self.process_name]
        document = thread_handler.args[1] # of type SchedulerConfigurationEntry

        state = self.request.args.get('state')
        if state is None:
            # request was performed with undefined "state", what means that checkbox was unselected
            # thus - turning off the process
            thread_handler.cancel()
            document.set_process_state(SchedulerConfigurationEntry.STATE_OFF)
            message = 'Stopped RepeatTimer for %s' % document.get_process_name()
        elif not thread_handler.is_alive():
            document.set_process_state(SchedulerConfigurationEntry.STATE_ON)

            thread_handler = RepeatTimer(thread_handler.interval_current,
                thread_handler.callable,
                thread_handler.args,
                thread_handler.kwargs)
            thread_handler.start()

            self.mbean.thread_handlers[self.process_name] = thread_handler
            message = 'Started RepeatTimer for %s, triggering every %d seconds' \
                        % (document.get_process_name(), document.get_interval())
        else:
            message = 'RepeatTimer for %s is already active. Ignoring request.' % document.get_process_name()

        scheduler_configuration_helper.update(self.logger, document)
        self.logger.info(message)
        resp['status'] = message
        return resp
Esempio n. 2
0
    def action_change_interval(self):
        resp = dict()
        new_interval = self.request.args.get('interval')
        if new_interval is not None:
            new_interval = int(new_interval)
            thread_handler = self.mbean.thread_handlers[self.process_name]
            thread_handler.change_interval(new_interval)

            document = thread_handler.args[1] # of type SchedulerConfigurationEntry
            document.set_interval(new_interval)
            scheduler_configuration_helper.update(self.logger, document)

            resp['status'] = 'changed interval for %r to %r' % (self.process_name, new_interval)
        
        return resp