Example #1
0
 def __init__(self):
     XplPlugin.__init__(self, name='scenario')
     self._backend = ScenarioManager(self.log)
     self.add_stop_cb(self.end)
     self.add_stop_cb(self.shutdown)
     self.log.info(
         u"Scenario Frontend and Manager initialized, let's wait for some work."
     )
     self.ready()
Example #2
0
class ScenarioFrontend(XplPlugin):
    """ This class provides an interface to MQ system to allow Scenarii management.
    """

    def __init__(self):
        XplPlugin.__init__(self, name="scenario")
        self._backend = ScenarioManager(self.log)
        self.add_stop_cb(self.end)
        self.add_stop_cb(self.shutdown)
        self.log.info(u"Scenario Frontend and Manager initialized, let's wait for some work.")
        self.ready()

    def on_mdp_request(self, msg):
        """ Do real work with message
        msg.get_action() shoult contain XXXX.YYYYYY
        with XXXX in [test, condition, parameter]
        YYYYY in [list, new, etc ...]
        """
        mapping = {
            "test": {"list": self._backend.list_tests, "new": self._backend.ask_test_instance},
            "scenario": {
                "list": self._backend.list_conditions,
                "new": self._backend.create_scenario,
                "delete": self._backend.delete_scenario,
                "get": self._backend.get_parsed_condition,
                "evaluate": self._backend.eval_condition,
            },
            "parameter": {"list": self._backend.list_parameters},
            "action": {"list": self._backend.list_actions, "new": self._backend.ask_action_instance},
        }
        try:
            if msg.get_data() == {}:
                payload = mapping[msg.get_action().split(".")[0]][msg.get_action().split(".")[1]]()
            else:
                payload = mapping[msg.get_action().split(".")[0]][msg.get_action().split(".")[1]](**msg.get_data())
            self._mdp_reply(msg.get_action(), payload)
        except:
            self.log.error(u"Exception occured during message processing.")
            trace = str(traceback.format_exc())
            self.log.debug(trace)
            self._mdp_reply(msg.get_action(), "error", {"details": trace})

    def _mdp_reply(self, action, payload):
        msg = MQMessage()
        msg.set_action(action)
        msg.add_data("result", payload)
        self.reply(msg.get())

    def end(self):
        """ Shutdown Scenario
        """
        self._backend.shutdown()
Example #3
0
 def __init__(self):
     Plugin.__init__(self, name = 'scenario')
     self._backend = ScenarioManager(self.log)
     self.add_stop_cb(self.end)
     self.add_stop_cb(self.shutdown)
     self.log.info(u"Scenario Frontend and Manager initialized, let's wait for some work.")
     self.ready()
Example #4
0
class ScenarioFrontend(Plugin):
    """ This class provides an interface to MQ system to allow Scenarii management.
    """

    def __init__(self):
        Plugin.__init__(self, name = 'scenario')
        self._backend = ScenarioManager(self.log)
        self.add_stop_cb(self.end)
        self.add_stop_cb(self.shutdown)
        self.log.info(u"Scenario Frontend and Manager initialized, let's wait for some work.")
        self.ready()

    def on_mdp_request(self, msg):
        """ Do real work with message
        msg.get_action() shoult contain XXXX.YYYYYY
        with XXXX in [test, condition, parameter]
        YYYYY in [list, new, etc ...]
        """
        mapping = {'test':
                    {
                        'list': self._backend.list_tests,
                        'new': self._backend.ask_test_instance,
                    },
                    'scenario':
                    {
                        'list': self._backend.list_conditions,
                        'new': self._backend.create_scenario,
                        'delete': self._backend.delete_scenario,
                        'get': self._backend.get_parsed_condition,
                        'evaluate': self._backend.eval_condition
                    },
                    'parameter':
                    {
                        'list': self._backend.list_parameters,
                    },
                    'action':
                    {
                        'list': self._backend.list_actions,
                        'new': self._backend.ask_action_instance
                    }
                }
        try:
            if msg.get_action().split('.')[0] not in mapping.keys():
                self._mdp_reply(msg.get_action(), "error", {"details": "{0} not in {1}".format(msg.get_action().split('.')[0], mapping.keys())})
            else:
                if msg.get_action().split('.')[1] not in mapping[msg.get_action().split('.')[0]].keys():
                    self._mdp_reply(msg.get_action(), "error", {"details": "{0} not in {1}".format(msg.get_action().split('.')[1], mapping[msg.get_action().split('.')[0]].keys())})
                else:
                    if msg.get_data() == {}:
                        payload = mapping[msg.get_action().split('.')[0]][msg.get_action().split('.')[1]]()
                    else:
                        payload = mapping[msg.get_action().split('.')[0]][msg.get_action().split('.')[1]](**msg.get_data())
                    self._mdp_reply(msg.get_action(), payload)
        except:
            self.log.error(u"Exception occured during message processing.")
            trace = str(traceback.format_exc())
            self.log.debug(trace)
            self._mdp_reply(msg.get_action(), "error", {"details": trace})

    def _mdp_reply(self, action, payload):
        msg = MQMessage()
        msg.set_action(action)
        msg.add_data('result', payload)
        self.reply(msg.get())

    def end(self):
        """ Shutdown Scenario
        """
        self._backend.shutdown()
Example #5
0
class ScenarioFrontend(XplPlugin):
    """ This class provides an interface to MQ system to allow Scenarii management.
    """
    def __init__(self):
        XplPlugin.__init__(self, name='scenario')
        self._backend = ScenarioManager(self.log)
        self.add_stop_cb(self.end)
        self.add_stop_cb(self.shutdown)
        self.log.info(
            u"Scenario Frontend and Manager initialized, let's wait for some work."
        )
        self.ready()

    def on_mdp_request(self, msg):
        """ Do real work with message
        msg.get_action() shoult contain XXXX.YYYYYY
        with XXXX in [test, condition, parameter]
        YYYYY in [list, new, etc ...]
        """
        mapping = {
            'test': {
                'list': self._backend.list_tests,
                'new': self._backend.ask_test_instance,
            },
            'scenario': {
                'list': self._backend.list_conditions,
                'new': self._backend.create_scenario,
                'delete': self._backend.delete_scenario,
                'get': self._backend.get_parsed_condition,
                'evaluate': self._backend.eval_condition
            },
            'parameter': {
                'list': self._backend.list_parameters,
            },
            'action': {
                'list': self._backend.list_actions,
                'new': self._backend.ask_action_instance
            }
        }
        try:
            if msg.get_data() == {}:
                payload = mapping[msg.get_action().split('.')[0]][
                    msg.get_action().split('.')[1]]()
            else:
                payload = mapping[msg.get_action().split('.')[0]][
                    msg.get_action().split('.')[1]](**msg.get_data())
            self._mdp_reply(msg.get_action(), payload)
        except:
            self.log.error(u"Exception occured during message processing.")
            trace = str(traceback.format_exc())
            self.log.debug(trace)
            self._mdp_reply(msg.get_action(), "error", {"details": trace})

    def _mdp_reply(self, action, payload):
        msg = MQMessage()
        msg.set_action(action)
        msg.add_data('result', payload)
        self.reply(msg.get())

    def end(self):
        """ Shutdown Scenario
        """
        self._backend.shutdown()