|
@@ -1,7 +1,7 @@
|
|
|
"""
|
|
|
Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
|
|
|
|
|
|
-Date: Thu Feb 9 14:45:08 2017
|
|
|
+Date: Thu Feb 09 16:22:18 2017
|
|
|
|
|
|
Model author: Yentl Van Tendeloo
|
|
|
Model name: MvK Server
|
|
@@ -66,55 +66,60 @@ class MvKController(RuntimeClassBase):
|
|
|
self.states["/init_executor"] = State(2, self)
|
|
|
self.states["/init_executor"].setEnter(self._init_executor_enter)
|
|
|
|
|
|
+ # state /get_mvk
|
|
|
+ self.states["/get_mvk"] = State(3, self)
|
|
|
+ self.states["/get_mvk"].setEnter(self._get_mvk_enter)
|
|
|
+
|
|
|
# state /read_root
|
|
|
- self.states["/read_root"] = State(3, self)
|
|
|
+ self.states["/read_root"] = State(4, self)
|
|
|
self.states["/read_root"].setEnter(self._read_root_enter)
|
|
|
|
|
|
# state /running
|
|
|
- self.states["/running"] = ParallelState(4, self)
|
|
|
+ self.states["/running"] = ParallelState(5, self)
|
|
|
|
|
|
# state /running/wait_for_requests
|
|
|
- self.states["/running/wait_for_requests"] = State(5, self)
|
|
|
+ self.states["/running/wait_for_requests"] = State(6, self)
|
|
|
|
|
|
# state /running/wait_for_requests/wait
|
|
|
- self.states["/running/wait_for_requests/wait"] = State(6, self)
|
|
|
+ self.states["/running/wait_for_requests/wait"] = State(7, self)
|
|
|
|
|
|
# state /running/push
|
|
|
- self.states["/running/push"] = State(7, self)
|
|
|
+ self.states["/running/push"] = State(8, self)
|
|
|
|
|
|
# state /running/push/wait
|
|
|
- self.states["/running/push/wait"] = State(8, self)
|
|
|
+ self.states["/running/push/wait"] = State(9, self)
|
|
|
|
|
|
# state /running/push/process
|
|
|
- self.states["/running/push/process"] = State(9, self)
|
|
|
+ self.states["/running/push/process"] = State(10, self)
|
|
|
|
|
|
# state /running/find_users
|
|
|
- self.states["/running/find_users"] = State(10, self)
|
|
|
+ self.states["/running/find_users"] = State(11, self)
|
|
|
|
|
|
# state /running/find_users/get_all_links
|
|
|
- self.states["/running/find_users/get_all_links"] = State(11, self)
|
|
|
+ self.states["/running/find_users/get_all_links"] = State(12, self)
|
|
|
self.states["/running/find_users/get_all_links"].setEnter(self._running_find_users_get_all_links_enter)
|
|
|
|
|
|
# state /running/find_users/retrieve_users
|
|
|
- self.states["/running/find_users/retrieve_users"] = State(12, self)
|
|
|
+ self.states["/running/find_users/retrieve_users"] = State(13, self)
|
|
|
|
|
|
# state /running/find_users/got_usernames
|
|
|
- self.states["/running/find_users/got_usernames"] = State(13, self)
|
|
|
+ self.states["/running/find_users/got_usernames"] = State(14, self)
|
|
|
|
|
|
# state /running/find_users/process_users
|
|
|
- self.states["/running/find_users/process_users"] = State(14, self)
|
|
|
+ self.states["/running/find_users/process_users"] = State(15, self)
|
|
|
|
|
|
# state /running/find_users/creating_user
|
|
|
- self.states["/running/find_users/creating_user"] = State(15, self)
|
|
|
+ self.states["/running/find_users/creating_user"] = State(16, self)
|
|
|
|
|
|
# state /running/find_users/wait
|
|
|
- self.states["/running/find_users/wait"] = State(16, self)
|
|
|
+ self.states["/running/find_users/wait"] = State(17, self)
|
|
|
self.states["/running/find_users/wait"].setEnter(self._running_find_users_wait_enter)
|
|
|
self.states["/running/find_users/wait"].setExit(self._running_find_users_wait_exit)
|
|
|
|
|
|
# add children
|
|
|
self.states[""].addChild(self.states["/init_server"])
|
|
|
self.states[""].addChild(self.states["/init_executor"])
|
|
|
+ self.states[""].addChild(self.states["/get_mvk"])
|
|
|
self.states[""].addChild(self.states["/read_root"])
|
|
|
self.states[""].addChild(self.states["/running"])
|
|
|
self.states["/running"].addChild(self.states["/running/wait_for_requests"])
|
|
@@ -142,11 +147,17 @@ class MvKController(RuntimeClassBase):
|
|
|
self.states["/init_server"].addTransition(_init_server_0)
|
|
|
|
|
|
# transition /init_executor
|
|
|
- _init_executor_0 = Transition(self, self.states["/init_executor"], [self.states["/read_root"]])
|
|
|
+ _init_executor_0 = Transition(self, self.states["/init_executor"], [self.states["/get_mvk"]])
|
|
|
_init_executor_0.setAction(self._init_executor_0_exec)
|
|
|
_init_executor_0.setTrigger(Event("instance_created", None))
|
|
|
self.states["/init_executor"].addTransition(_init_executor_0)
|
|
|
|
|
|
+ # transition /get_mvk
|
|
|
+ _get_mvk_0 = Transition(self, self.states["/get_mvk"], [self.states["/read_root"]])
|
|
|
+ _get_mvk_0.setAction(self._get_mvk_0_exec)
|
|
|
+ _get_mvk_0.setTrigger(Event("get_mvk_reply", None))
|
|
|
+ self.states["/get_mvk"].addTransition(_get_mvk_0)
|
|
|
+
|
|
|
# transition /read_root
|
|
|
_read_root_0 = Transition(self, self.states["/read_root"], [self.states["/running"]])
|
|
|
_read_root_0.setAction(self._read_root_0_exec)
|
|
@@ -181,6 +192,16 @@ class MvKController(RuntimeClassBase):
|
|
|
_running_push_process_1.setTrigger(None)
|
|
|
_running_push_process_1.setGuard(self._running_push_process_1_guard)
|
|
|
self.states["/running/push/process"].addTransition(_running_push_process_1)
|
|
|
+ _running_push_process_2 = Transition(self, self.states["/running/push/process"], [self.states["/running/push/wait"]])
|
|
|
+ _running_push_process_2.setAction(self._running_push_process_2_exec)
|
|
|
+ _running_push_process_2.setTrigger(None)
|
|
|
+ _running_push_process_2.setGuard(self._running_push_process_2_guard)
|
|
|
+ self.states["/running/push/process"].addTransition(_running_push_process_2)
|
|
|
+ _running_push_process_3 = Transition(self, self.states["/running/push/process"], [self.states["/running/push/wait"]])
|
|
|
+ _running_push_process_3.setAction(self._running_push_process_3_exec)
|
|
|
+ _running_push_process_3.setTrigger(None)
|
|
|
+ _running_push_process_3.setGuard(self._running_push_process_3_guard)
|
|
|
+ self.states["/running/push/process"].addTransition(_running_push_process_3)
|
|
|
|
|
|
# transition /running/find_users/get_all_links
|
|
|
_running_find_users_get_all_links_0 = Transition(self, self.states["/running/find_users/get_all_links"], [self.states["/running/find_users/retrieve_users"]])
|
|
@@ -241,6 +262,9 @@ class MvKController(RuntimeClassBase):
|
|
|
def _init_executor_enter(self):
|
|
|
self.big_step.outputEventOM(Event("create_instance", None, [self, 'executor', 'Executor']))
|
|
|
|
|
|
+ def _get_mvk_enter(self):
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'executor', Event("get_mvk", None, ['parent'])]))
|
|
|
+
|
|
|
def _read_root_enter(self):
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'executor', Event("raw_exec", None, [[['RR', []]], 'parent'])]))
|
|
|
|
|
@@ -261,6 +285,10 @@ class MvKController(RuntimeClassBase):
|
|
|
instancename = parameters[0]
|
|
|
self.big_step.outputEventOM(Event("start_instance", None, [self, instancename]))
|
|
|
|
|
|
+ def _get_mvk_0_exec(self, parameters):
|
|
|
+ mvk = parameters[0]
|
|
|
+ self.mvk = mvk
|
|
|
+
|
|
|
def _read_root_0_exec(self, parameters):
|
|
|
data = parameters[0]
|
|
|
self.root = data[0][0]
|
|
@@ -309,6 +337,20 @@ class MvKController(RuntimeClassBase):
|
|
|
def _running_push_process_1_guard(self, parameters):
|
|
|
return self.input_queue[0][1] == 'get_output'
|
|
|
|
|
|
+ def _running_push_process_2_exec(self, parameters):
|
|
|
+ source, op, args, username = self.input_queue.pop(0)
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.user_statecharts[username], Event("pause", None, [source, args])]))
|
|
|
+
|
|
|
+ def _running_push_process_2_guard(self, parameters):
|
|
|
+ return self.input_queue[0][1] == 'pause'
|
|
|
+
|
|
|
+ def _running_push_process_3_exec(self, parameters):
|
|
|
+ source, op, args, username = self.input_queue.pop(0)
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.user_statecharts[username], Event("resume", None, [source, args])]))
|
|
|
+
|
|
|
+ def _running_push_process_3_guard(self, parameters):
|
|
|
+ return self.input_queue[0][1] == 'resume'
|
|
|
+
|
|
|
def _running_find_users_get_all_links_0_exec(self, parameters):
|
|
|
data = parameters[0]
|
|
|
self.users = data[0][0]
|
|
@@ -332,7 +374,7 @@ class MvKController(RuntimeClassBase):
|
|
|
return not self.add_users and not self.delete_users
|
|
|
|
|
|
def _running_find_users_process_users_1_exec(self, parameters):
|
|
|
- self.big_step.outputEventOM(Event("create_instance", None, [self, 'users', 'UserStatechart', self.add_users[0]]))
|
|
|
+ self.big_step.outputEventOM(Event("create_instance", None, [self, 'users', 'UserStatechart', self.add_users[0], self.mvk]))
|
|
|
|
|
|
def _running_find_users_process_users_1_guard(self, parameters):
|
|
|
return self.add_users and not self.delete_users
|
|
@@ -1079,7 +1121,7 @@ class HTTPClient(RuntimeClassBase):
|
|
|
RuntimeClassBase.initializeStatechart(self)
|
|
|
|
|
|
class UserStatechart(RuntimeClassBase):
|
|
|
- def __init__(self, controller, username):
|
|
|
+ def __init__(self, controller, username, mvk):
|
|
|
RuntimeClassBase.__init__(self, controller)
|
|
|
|
|
|
self.semantics.big_step_maximality = StatechartSemantics.TakeMany
|
|
@@ -1092,10 +1134,11 @@ class UserStatechart(RuntimeClassBase):
|
|
|
self.build_statechart_structure()
|
|
|
|
|
|
# call user defined constructor
|
|
|
- UserStatechart.user_defined_constructor(self, username)
|
|
|
+ UserStatechart.user_defined_constructor(self, username, mvk)
|
|
|
|
|
|
- def user_defined_constructor(self, username):
|
|
|
+ def user_defined_constructor(self, username, mvk):
|
|
|
self.username = username
|
|
|
+ self.mvk = mvk
|
|
|
|
|
|
self.output_queue = []
|
|
|
self.source_execution = None
|
|
@@ -1124,35 +1167,41 @@ class UserStatechart(RuntimeClassBase):
|
|
|
# state /running/execution
|
|
|
self.states["/running/execution"] = State(3, self)
|
|
|
|
|
|
- # state /running/execution/init
|
|
|
- self.states["/running/execution/init"] = State(4, self)
|
|
|
- self.states["/running/execution/init"].setEnter(self._running_execution_init_enter)
|
|
|
+ # state /running/execution/executing
|
|
|
+ self.states["/running/execution/executing"] = State(4, self)
|
|
|
+
|
|
|
+ # state /running/execution/executing/executing
|
|
|
+ self.states["/running/execution/executing/executing"] = State(5, self)
|
|
|
+ self.states["/running/execution/executing/executing"].setEnter(self._running_execution_executing_executing_enter)
|
|
|
|
|
|
- # state /running/execution/timeout
|
|
|
- self.states["/running/execution/timeout"] = State(5, self)
|
|
|
- self.states["/running/execution/timeout"].setEnter(self._running_execution_timeout_enter)
|
|
|
- self.states["/running/execution/timeout"].setExit(self._running_execution_timeout_exit)
|
|
|
+ # state /running/execution/executing/timeout
|
|
|
+ self.states["/running/execution/executing/timeout"] = State(6, self)
|
|
|
+ self.states["/running/execution/executing/timeout"].setEnter(self._running_execution_executing_timeout_enter)
|
|
|
+ self.states["/running/execution/executing/timeout"].setExit(self._running_execution_executing_timeout_exit)
|
|
|
+
|
|
|
+ # state /running/execution/paused
|
|
|
+ self.states["/running/execution/paused"] = State(7, self)
|
|
|
|
|
|
# state /running/set_input
|
|
|
- self.states["/running/set_input"] = State(6, self)
|
|
|
+ self.states["/running/set_input"] = State(8, self)
|
|
|
|
|
|
# state /running/set_input/fetch
|
|
|
- self.states["/running/set_input/fetch"] = State(7, self)
|
|
|
+ self.states["/running/set_input/fetch"] = State(9, self)
|
|
|
|
|
|
# state /running/get_output_queue
|
|
|
- self.states["/running/get_output_queue"] = State(8, self)
|
|
|
+ self.states["/running/get_output_queue"] = State(10, self)
|
|
|
|
|
|
# state /running/get_output_queue/waiting
|
|
|
- self.states["/running/get_output_queue/waiting"] = State(9, self)
|
|
|
+ self.states["/running/get_output_queue/waiting"] = State(11, self)
|
|
|
|
|
|
# state /running/get_output
|
|
|
- self.states["/running/get_output"] = State(10, self)
|
|
|
+ self.states["/running/get_output"] = State(12, self)
|
|
|
|
|
|
# state /running/get_output/try_execute
|
|
|
- self.states["/running/get_output/try_execute"] = State(11, self)
|
|
|
+ self.states["/running/get_output/try_execute"] = State(13, self)
|
|
|
|
|
|
# state /running/get_output/waiting
|
|
|
- self.states["/running/get_output/waiting"] = State(12, self)
|
|
|
+ self.states["/running/get_output/waiting"] = State(14, self)
|
|
|
self.states["/running/get_output/waiting"].setEnter(self._running_get_output_waiting_enter)
|
|
|
self.states["/running/get_output/waiting"].setExit(self._running_get_output_waiting_exit)
|
|
|
|
|
@@ -1163,15 +1212,18 @@ class UserStatechart(RuntimeClassBase):
|
|
|
self.states["/running"].addChild(self.states["/running/set_input"])
|
|
|
self.states["/running"].addChild(self.states["/running/get_output_queue"])
|
|
|
self.states["/running"].addChild(self.states["/running/get_output"])
|
|
|
- self.states["/running/execution"].addChild(self.states["/running/execution/init"])
|
|
|
- self.states["/running/execution"].addChild(self.states["/running/execution/timeout"])
|
|
|
+ self.states["/running/execution"].addChild(self.states["/running/execution/executing"])
|
|
|
+ self.states["/running/execution"].addChild(self.states["/running/execution/paused"])
|
|
|
+ self.states["/running/execution/executing"].addChild(self.states["/running/execution/executing/executing"])
|
|
|
+ self.states["/running/execution/executing"].addChild(self.states["/running/execution/executing/timeout"])
|
|
|
self.states["/running/set_input"].addChild(self.states["/running/set_input/fetch"])
|
|
|
self.states["/running/get_output_queue"].addChild(self.states["/running/get_output_queue/waiting"])
|
|
|
self.states["/running/get_output"].addChild(self.states["/running/get_output/try_execute"])
|
|
|
self.states["/running/get_output"].addChild(self.states["/running/get_output/waiting"])
|
|
|
self.states[""].fixTree()
|
|
|
self.states[""].default_state = self.states["/init"]
|
|
|
- self.states["/running/execution"].default_state = self.states["/running/execution/init"]
|
|
|
+ self.states["/running/execution"].default_state = self.states["/running/execution/executing"]
|
|
|
+ self.states["/running/execution/executing"].default_state = self.states["/running/execution/executing/executing"]
|
|
|
self.states["/running/set_input"].default_state = self.states["/running/set_input/fetch"]
|
|
|
self.states["/running/get_output_queue"].default_state = self.states["/running/get_output_queue/waiting"]
|
|
|
self.states["/running/get_output"].default_state = self.states["/running/get_output/try_execute"]
|
|
@@ -1182,23 +1234,29 @@ class UserStatechart(RuntimeClassBase):
|
|
|
_init_0.setTrigger(Event("set_returnpath", None))
|
|
|
self.states["/init"].addTransition(_init_0)
|
|
|
|
|
|
- # transition /running/execution/init
|
|
|
- _running_execution_init_0 = Transition(self, self.states["/running/execution/init"], [self.states["/running/execution/init"]])
|
|
|
- _running_execution_init_0.setTrigger(Event("executed", None))
|
|
|
- _running_execution_init_0.setGuard(self._running_execution_init_0_guard)
|
|
|
- self.states["/running/execution/init"].addTransition(_running_execution_init_0)
|
|
|
- _running_execution_init_1 = Transition(self, self.states["/running/execution/init"], [self.states["/running/execution/timeout"]])
|
|
|
- _running_execution_init_1.setTrigger(Event("executed", None))
|
|
|
- _running_execution_init_1.setGuard(self._running_execution_init_1_guard)
|
|
|
- self.states["/running/execution/init"].addTransition(_running_execution_init_1)
|
|
|
-
|
|
|
- # transition /running/execution/timeout
|
|
|
- _running_execution_timeout_0 = Transition(self, self.states["/running/execution/timeout"], [self.states["/running/execution/init"]])
|
|
|
- _running_execution_timeout_0.setTrigger(Event("_0after"))
|
|
|
- self.states["/running/execution/timeout"].addTransition(_running_execution_timeout_0)
|
|
|
- _running_execution_timeout_1 = Transition(self, self.states["/running/execution/timeout"], [self.states["/running/execution/init"]])
|
|
|
- _running_execution_timeout_1.setTrigger(Event("set_input_done", None))
|
|
|
- self.states["/running/execution/timeout"].addTransition(_running_execution_timeout_1)
|
|
|
+ # transition /running/execution/executing/executing
|
|
|
+ _running_execution_executing_executing_0 = Transition(self, self.states["/running/execution/executing/executing"], [self.states["/running/execution/executing/executing"]])
|
|
|
+ _running_execution_executing_executing_0.setTrigger(Event("executed", None))
|
|
|
+ _running_execution_executing_executing_0.setGuard(self._running_execution_executing_executing_0_guard)
|
|
|
+ self.states["/running/execution/executing/executing"].addTransition(_running_execution_executing_executing_0)
|
|
|
+ _running_execution_executing_executing_1 = Transition(self, self.states["/running/execution/executing/executing"], [self.states["/running/execution/executing/timeout"]])
|
|
|
+ _running_execution_executing_executing_1.setTrigger(Event("executed", None))
|
|
|
+ _running_execution_executing_executing_1.setGuard(self._running_execution_executing_executing_1_guard)
|
|
|
+ self.states["/running/execution/executing/executing"].addTransition(_running_execution_executing_executing_1)
|
|
|
+
|
|
|
+ # transition /running/execution/executing/timeout
|
|
|
+ _running_execution_executing_timeout_0 = Transition(self, self.states["/running/execution/executing/timeout"], [self.states["/running/execution/executing/executing"]])
|
|
|
+ _running_execution_executing_timeout_0.setTrigger(Event("_0after"))
|
|
|
+ self.states["/running/execution/executing/timeout"].addTransition(_running_execution_executing_timeout_0)
|
|
|
+ _running_execution_executing_timeout_1 = Transition(self, self.states["/running/execution/executing/timeout"], [self.states["/running/execution/executing/executing"]])
|
|
|
+ _running_execution_executing_timeout_1.setTrigger(Event("set_input_done", None))
|
|
|
+ self.states["/running/execution/executing/timeout"].addTransition(_running_execution_executing_timeout_1)
|
|
|
+
|
|
|
+ # transition /running/execution/paused
|
|
|
+ _running_execution_paused_0 = Transition(self, self.states["/running/execution/paused"], [self.states["/running/execution/executing"]])
|
|
|
+ _running_execution_paused_0.setAction(self._running_execution_paused_0_exec)
|
|
|
+ _running_execution_paused_0.setTrigger(Event("resume", None))
|
|
|
+ self.states["/running/execution/paused"].addTransition(_running_execution_paused_0)
|
|
|
|
|
|
# transition /running/set_input/fetch
|
|
|
_running_set_input_fetch_0 = Transition(self, self.states["/running/set_input/fetch"], [self.states["/running/set_input/fetch"]])
|
|
@@ -1238,16 +1296,22 @@ class UserStatechart(RuntimeClassBase):
|
|
|
_running_get_output_waiting_0 = Transition(self, self.states["/running/get_output/waiting"], [self.states["/running/get_output/try_execute"]])
|
|
|
_running_get_output_waiting_0.setTrigger(Event("_1after"))
|
|
|
self.states["/running/get_output/waiting"].addTransition(_running_get_output_waiting_0)
|
|
|
+
|
|
|
+ # transition /running/execution/executing
|
|
|
+ _running_execution_executing_0 = Transition(self, self.states["/running/execution/executing"], [self.states["/running/execution/paused"]])
|
|
|
+ _running_execution_executing_0.setAction(self._running_execution_executing_0_exec)
|
|
|
+ _running_execution_executing_0.setTrigger(Event("pause", None))
|
|
|
+ self.states["/running/execution/executing"].addTransition(_running_execution_executing_0)
|
|
|
|
|
|
- def _running_execution_init_enter(self):
|
|
|
+ def _running_execution_executing_executing_enter(self):
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent/executor', Event("execute", None, [self.returnpath, self.username, 'execute_rule', [], self.request_id])]))
|
|
|
self.outstanding_execution = self.request_id
|
|
|
self.request_id += 1
|
|
|
|
|
|
- def _running_execution_timeout_enter(self):
|
|
|
+ def _running_execution_executing_timeout_enter(self):
|
|
|
self.addTimer(0, 1.0)
|
|
|
|
|
|
- def _running_execution_timeout_exit(self):
|
|
|
+ def _running_execution_executing_timeout_exit(self):
|
|
|
self.removeTimer(0)
|
|
|
|
|
|
def _running_get_output_waiting_enter(self):
|
|
@@ -1256,22 +1320,32 @@ class UserStatechart(RuntimeClassBase):
|
|
|
def _running_get_output_waiting_exit(self):
|
|
|
self.removeTimer(1)
|
|
|
|
|
|
+ def _running_execution_executing_0_exec(self, parameters):
|
|
|
+ source = parameters[0]
|
|
|
+ args = parameters[1]
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent/to_mvi/' + source, Event("HTTP_input", None, [json.dumps({'user': self.username, 'state': 'paused', 'info': self.mvk.debug_info})])]))
|
|
|
+
|
|
|
def _init_0_exec(self, parameters):
|
|
|
returnpath = parameters[0]
|
|
|
self.returnpath = returnpath
|
|
|
|
|
|
- def _running_execution_init_0_guard(self, parameters):
|
|
|
+ def _running_execution_executing_executing_0_guard(self, parameters):
|
|
|
returnvalue = parameters[0]
|
|
|
success = parameters[1]
|
|
|
request_id = parameters[2]
|
|
|
return success and self.outstanding_execution == request_id
|
|
|
|
|
|
- def _running_execution_init_1_guard(self, parameters):
|
|
|
+ def _running_execution_executing_executing_1_guard(self, parameters):
|
|
|
returnvalue = parameters[0]
|
|
|
success = parameters[1]
|
|
|
request_id = parameters[2]
|
|
|
return not success and self.outstanding_execution == request_id
|
|
|
|
|
|
+ def _running_execution_paused_0_exec(self, parameters):
|
|
|
+ source = parameters[0]
|
|
|
+ args = parameters[1]
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent/to_mvi/' + source, Event("HTTP_input", None, [json.dumps({'user': self.username, 'state': 'running'})])]))
|
|
|
+
|
|
|
def _running_set_input_fetch_0_exec(self, parameters):
|
|
|
source = parameters[0]
|
|
|
args = parameters[1]
|
|
@@ -1438,6 +1512,10 @@ class Executor(RuntimeClassBase):
|
|
|
_init_raw_exec_raw_exec_0.setAction(self._init_raw_exec_raw_exec_0_exec)
|
|
|
_init_raw_exec_raw_exec_0.setTrigger(Event("raw_exec", None))
|
|
|
self.states["/init/raw_exec/raw_exec"].addTransition(_init_raw_exec_raw_exec_0)
|
|
|
+ _init_raw_exec_raw_exec_1 = Transition(self, self.states["/init/raw_exec/raw_exec"], [self.states["/init/raw_exec/raw_exec"]])
|
|
|
+ _init_raw_exec_raw_exec_1.setAction(self._init_raw_exec_raw_exec_1_exec)
|
|
|
+ _init_raw_exec_raw_exec_1.setTrigger(Event("get_mvk", None))
|
|
|
+ self.states["/init/raw_exec/raw_exec"].addTransition(_init_raw_exec_raw_exec_1)
|
|
|
|
|
|
# transition /init/queue/queue
|
|
|
_init_queue_queue_0 = Transition(self, self.states["/init/queue/queue"], [self.states["/init/queue/queue"]])
|
|
@@ -1482,6 +1560,10 @@ class Executor(RuntimeClassBase):
|
|
|
reply = [self.mvs_operations[command[0]](*command[1]) for command in operations]
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, source, Event("raw_exec_reply", None, [reply])]))
|
|
|
|
|
|
+ def _init_raw_exec_raw_exec_1_exec(self, parameters):
|
|
|
+ source = parameters[0]
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, source, Event("get_mvk_reply", None, [self.mvk])]))
|
|
|
+
|
|
|
def _init_queue_queue_0_exec(self, parameters):
|
|
|
returnpath = parameters[0]
|
|
|
username = parameters[1]
|
|
@@ -1533,7 +1615,7 @@ class ObjectManager(ObjectManagerBase):
|
|
|
instance.associations = {}
|
|
|
instance.associations["parent"] = Association("MvKController", 1, 1)
|
|
|
elif class_name == "UserStatechart":
|
|
|
- instance = UserStatechart(self.controller, construct_params[0])
|
|
|
+ instance = UserStatechart(self.controller, construct_params[0], construct_params[1])
|
|
|
instance.associations = {}
|
|
|
instance.associations["parent"] = Association("MvKController", 1, 1)
|
|
|
elif class_name == "Executor":
|