Browse Source

New system to fetch taskname: task_manager generates them automatically

Yentl Van Tendeloo 7 years ago
parent
commit
e64fbaf1ae
3 changed files with 165 additions and 228 deletions
  1. 10 2
      bootstrap/task_manager.alc
  2. 21 38
      wrappers/classes/modelverse.xml
  3. 134 188
      wrappers/modelverse_SCCD.py

+ 10 - 2
bootstrap/task_manager.alc

@@ -2,6 +2,7 @@ include "io.alh"
 include "primitives.alh"
 include "metamodels.alh"
 include "core_algorithm.alh"
+include "random.alh"
 
 Void function task_management():
 	String taskname
@@ -13,10 +14,16 @@ Void function task_management():
 	// Initialize the basic formalisms before allowing new users
 	initialize_MMs()
 	initialize_core()
+	taskname = "task_manager"
 	
 	while (True):
-		taskname = input()
-		if (bool_not(dict_in(read_root(), taskname))):
+		if (other_has_output("task_manager")):
+			sleep(0.05)
+		else:
+			// Task is gone, so make sure that we create a new one already
+			while (dict_in(read_root(), taskname)):
+				taskname = cast_string(random_string(20))
+
 			task_root = create_node()
 			task_frame = create_node()
 			output_value = create_node()
@@ -35,4 +42,5 @@ Void function task_management():
 
 			//Add this only at the end, as otherwise the task will already be detected
 			dict_add_fast(read_root(), taskname, task_root)
+			output(taskname)
 	return!

+ 21 - 38
wrappers/classes/modelverse.xml

@@ -154,37 +154,32 @@
                         </script>
                     </transition>
 
-                    <transition event="request_raw" target=".">
-                        <parameter name="value"/>
-                        <parameter name="taskname"/>
-                        <parameter name="http_client"/>
-                        <raise event="HTTP_input" target="self.http_clients[http_client]">
-                            <parameter expr='urlencode({"op": "set_input", "value": json.dumps(value), "taskname": taskname})'/>
-                            <parameter expr='"parent"'/>
-                        </raise>
-                    </transition>
-
                     <transition event="HTTP_output" cond="not self.finish_output_thread" target=".">
                         <parameter name="data"/>
+                        <script>
+                            if self.taskname == "task_manager":
+                                self.controller.taskname = self.taskname = json.loads(data)
+                            else:
+                                self.responses.append(json.loads(data))
+                        </script>
                         <raise event="HTTP_input" target="self.http_clients[1]">
                             <parameter expr='urlencode({"op": "get_output", "taskname": self.taskname})'/>
                             <parameter expr='"parent"'/>
                         </raise>
-                        <script>
-                            self.responses.append(json.loads(data))
-                            #print("Got data at %s: %s" % (self.controller.taskname, str(json.loads(data))))
-                        </script>
                     </transition>
 
                     <transition event="HTTP_output" cond="self.finish_output_thread" target="../finished">
                         <parameter name="data"/>
+                        <script>
+                            if self.taskname == "task_manager":
+                                self.controller.taskname = self.taskname = json.loads(data)
+                            else:
+                                self.responses.append(json.loads(data))
+                        </script>
                         <raise event="HTTP_input" target="self.http_clients[1]">
                             <parameter expr='urlencode({"op": "get_output", "taskname": self.taskname})'/>
                             <parameter expr='"parent"'/>
                         </raise>
-                        <script>
-                            self.responses.append(json.loads(data))
-                        </script>
                     </transition>
                 </state>
 
@@ -202,12 +197,12 @@
                             self.i = 0
                             taskname = self.controller.taskname
                             if taskname is None:
-                                taskname = str(uuid.uuid4())
                                 self.skip_init = False
+                                self.taskname = "task_manager"
                             else:
                                 self.skip_init = True
-                            
-                            self.controller.taskname = self.taskname = taskname
+
+                            self.controller.taskname = self.taskname
                         </script>
                     </onentry>
 
@@ -219,13 +214,7 @@
                             </raise>
                         </transition>
 
-                        <transition cond="self.i == 2" target="../../wait_for_action/connected">
-                            <!-- Start polling for output -->
-                            <raise event="HTTP_input" target="self.http_clients[1]">
-                                <parameter expr='urlencode({"op": "get_output", "taskname": self.taskname})'/>
-                                <parameter expr='"parent"'/>
-                            </raise>
-
+                        <transition cond="self.i == 2 and self.taskname != 'task_manager'" target="../../wait_for_action/connected">
                             <!-- Sent out completion -->
                             <raise event="result">
                                 <parameter expr="[]"/>
@@ -234,20 +223,18 @@
                     </state>
 
                     <state id="waiting_http_client">
-                        <transition event="http_client_ready" cond="self.skip_init" target="../connect_http_client">
+                        <transition event="http_client_ready" cond="self.skip_init or self.i == 0" target="../connect_http_client">
                             <script>
                                 self.i += 1
                             </script>
                         </transition>
 
-                        <transition event="http_client_ready" cond="not self.skip_init" target="../wait_for_taskname_ack">
+                        <transition event="http_client_ready" cond="(not self.skip_init) and self.i == 1" target="../connect_http_client">
                             <!-- Request the task to be created -->
-                            <raise event="request_raw">
-                                <parameter expr="self.taskname"/>
-                                <parameter expr="'task_manager'"/>
-                                <parameter expr="self.i"/>
+                            <raise event="HTTP_input" target="self.http_clients[1]">
+                                <parameter expr='urlencode({"op": "get_output", "taskname": self.taskname})'/>
+                                <parameter expr='"parent"'/>
                             </raise>
-
                             <script>
                                 self.i += 1
                             </script>
@@ -260,10 +247,6 @@
                             </raise>
                         </transition>
                     </state>
-
-                    <state id="wait_for_taskname_ack">
-                        <transition cond="self.expect_response('OK', pop=True)" target="../connect_http_client"/>
-                    </state>
                 </state>
 
                 <state id="operations" initial="model_list">

+ 134 - 188
wrappers/modelverse_SCCD.py

@@ -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:   Tue Jun  5 16:47:02 2018
+Date:   Wed Jun  6 11:45:45 2018
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -160,414 +160,407 @@ class Modelverse(RuntimeClassBase):
         # state /initialized/behaviour/init/waiting_http_client
         self.states["/initialized/behaviour/init/waiting_http_client"] = State(10, "/initialized/behaviour/init/waiting_http_client", self)
         
-        # state /initialized/behaviour/init/wait_for_taskname_ack
-        self.states["/initialized/behaviour/init/wait_for_taskname_ack"] = State(11, "/initialized/behaviour/init/wait_for_taskname_ack", self)
-        
         # state /initialized/behaviour/operations
-        self.states["/initialized/behaviour/operations"] = State(12, "/initialized/behaviour/operations", self)
+        self.states["/initialized/behaviour/operations"] = State(11, "/initialized/behaviour/operations", self)
         
         # state /initialized/behaviour/operations/history
-        self.states["/initialized/behaviour/operations/history"] = DeepHistoryState(13, "/initialized/behaviour/operations/history", self)
+        self.states["/initialized/behaviour/operations/history"] = DeepHistoryState(12, "/initialized/behaviour/operations/history", self)
         
         # state /initialized/behaviour/operations/login
-        self.states["/initialized/behaviour/operations/login"] = State(14, "/initialized/behaviour/operations/login", self)
+        self.states["/initialized/behaviour/operations/login"] = State(13, "/initialized/behaviour/operations/login", self)
         
         # state /initialized/behaviour/operations/login/wait_prompt_1
-        self.states["/initialized/behaviour/operations/login/wait_prompt_1"] = State(15, "/initialized/behaviour/operations/login/wait_prompt_1", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_1"] = State(14, "/initialized/behaviour/operations/login/wait_prompt_1", self)
         
         # state /initialized/behaviour/operations/login/wait_prompt_2
-        self.states["/initialized/behaviour/operations/login/wait_prompt_2"] = State(16, "/initialized/behaviour/operations/login/wait_prompt_2", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_2"] = State(15, "/initialized/behaviour/operations/login/wait_prompt_2", self)
         
         # state /initialized/behaviour/operations/login/wait_prompt_existing
-        self.states["/initialized/behaviour/operations/login/wait_prompt_existing"] = State(17, "/initialized/behaviour/operations/login/wait_prompt_existing", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_existing"] = State(16, "/initialized/behaviour/operations/login/wait_prompt_existing", self)
         
         # state /initialized/behaviour/operations/login/login_ok
-        self.states["/initialized/behaviour/operations/login/login_ok"] = State(18, "/initialized/behaviour/operations/login/login_ok", self)
+        self.states["/initialized/behaviour/operations/login/login_ok"] = State(17, "/initialized/behaviour/operations/login/login_ok", self)
         
         # state /initialized/behaviour/operations/model_list
-        self.states["/initialized/behaviour/operations/model_list"] = State(19, "/initialized/behaviour/operations/model_list", self)
+        self.states["/initialized/behaviour/operations/model_list"] = State(18, "/initialized/behaviour/operations/model_list", self)
         self.states["/initialized/behaviour/operations/model_list"].setEnter(self._initialized_behaviour_operations_model_list_enter)
         
         # state /initialized/behaviour/operations/model_add
-        self.states["/initialized/behaviour/operations/model_add"] = State(20, "/initialized/behaviour/operations/model_add", self)
+        self.states["/initialized/behaviour/operations/model_add"] = State(19, "/initialized/behaviour/operations/model_add", self)
         
         # state /initialized/behaviour/operations/model_add/send_metadata
-        self.states["/initialized/behaviour/operations/model_add/send_metadata"] = State(21, "/initialized/behaviour/operations/model_add/send_metadata", self)
+        self.states["/initialized/behaviour/operations/model_add/send_metadata"] = State(20, "/initialized/behaviour/operations/model_add/send_metadata", self)
         self.states["/initialized/behaviour/operations/model_add/send_metadata"].setEnter(self._initialized_behaviour_operations_model_add_send_metadata_enter)
         
         # state /initialized/behaviour/operations/model_move
-        self.states["/initialized/behaviour/operations/model_move"] = State(22, "/initialized/behaviour/operations/model_move", self)
+        self.states["/initialized/behaviour/operations/model_move"] = State(21, "/initialized/behaviour/operations/model_move", self)
         self.states["/initialized/behaviour/operations/model_move"].setEnter(self._initialized_behaviour_operations_model_move_enter)
         
         # state /initialized/behaviour/operations/model_delete
-        self.states["/initialized/behaviour/operations/model_delete"] = State(23, "/initialized/behaviour/operations/model_delete", self)
+        self.states["/initialized/behaviour/operations/model_delete"] = State(22, "/initialized/behaviour/operations/model_delete", self)
         self.states["/initialized/behaviour/operations/model_delete"].setEnter(self._initialized_behaviour_operations_model_delete_enter)
         
         # state /initialized/behaviour/operations/AL_text
-        self.states["/initialized/behaviour/operations/AL_text"] = State(24, "/initialized/behaviour/operations/AL_text", self)
+        self.states["/initialized/behaviour/operations/AL_text"] = State(23, "/initialized/behaviour/operations/AL_text", self)
         self.states["/initialized/behaviour/operations/AL_text"].setEnter(self._initialized_behaviour_operations_AL_text_enter)
         
         # state /initialized/behaviour/operations/model_list_full
-        self.states["/initialized/behaviour/operations/model_list_full"] = State(25, "/initialized/behaviour/operations/model_list_full", self)
+        self.states["/initialized/behaviour/operations/model_list_full"] = State(24, "/initialized/behaviour/operations/model_list_full", self)
         self.states["/initialized/behaviour/operations/model_list_full"].setEnter(self._initialized_behaviour_operations_model_list_full_enter)
         
         # state /initialized/behaviour/operations/verify
-        self.states["/initialized/behaviour/operations/verify"] = State(26, "/initialized/behaviour/operations/verify", self)
+        self.states["/initialized/behaviour/operations/verify"] = State(25, "/initialized/behaviour/operations/verify", self)
         self.states["/initialized/behaviour/operations/verify"].setEnter(self._initialized_behaviour_operations_verify_enter)
         
         # state /initialized/behaviour/operations/verify/waiting
-        self.states["/initialized/behaviour/operations/verify/waiting"] = State(27, "/initialized/behaviour/operations/verify/waiting", self)
+        self.states["/initialized/behaviour/operations/verify/waiting"] = State(26, "/initialized/behaviour/operations/verify/waiting", self)
         
         # state /initialized/behaviour/operations/alter_context
-        self.states["/initialized/behaviour/operations/alter_context"] = State(28, "/initialized/behaviour/operations/alter_context", self)
+        self.states["/initialized/behaviour/operations/alter_context"] = State(27, "/initialized/behaviour/operations/alter_context", self)
         
         # state /initialized/behaviour/operations/model_overwrite
-        self.states["/initialized/behaviour/operations/model_overwrite"] = State(29, "/initialized/behaviour/operations/model_overwrite", self)
+        self.states["/initialized/behaviour/operations/model_overwrite"] = State(28, "/initialized/behaviour/operations/model_overwrite", self)
         
         # state /initialized/behaviour/operations/model_overwrite/init
-        self.states["/initialized/behaviour/operations/model_overwrite/init"] = State(30, "/initialized/behaviour/operations/model_overwrite/init", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/init"] = State(29, "/initialized/behaviour/operations/model_overwrite/init", self)
         
         # state /initialized/behaviour/operations/model_overwrite/search
-        self.states["/initialized/behaviour/operations/model_overwrite/search"] = State(31, "/initialized/behaviour/operations/model_overwrite/search", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/search"] = State(30, "/initialized/behaviour/operations/model_overwrite/search", self)
         self.states["/initialized/behaviour/operations/model_overwrite/search"].setEnter(self._initialized_behaviour_operations_model_overwrite_search_enter)
         
         # state /initialized/behaviour/operations/model_overwrite/send_metadata
-        self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"] = State(32, "/initialized/behaviour/operations/model_overwrite/send_metadata", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"] = State(31, "/initialized/behaviour/operations/model_overwrite/send_metadata", self)
         self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"].setEnter(self._initialized_behaviour_operations_model_overwrite_send_metadata_enter)
         
         # state /initialized/behaviour/operations/model_overwrite/send_model
-        self.states["/initialized/behaviour/operations/model_overwrite/send_model"] = State(33, "/initialized/behaviour/operations/model_overwrite/send_model", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_model"] = State(32, "/initialized/behaviour/operations/model_overwrite/send_model", self)
         self.states["/initialized/behaviour/operations/model_overwrite/send_model"].setEnter(self._initialized_behaviour_operations_model_overwrite_send_model_enter)
         
         # state /initialized/behaviour/operations/disconnect
-        self.states["/initialized/behaviour/operations/disconnect"] = State(34, "/initialized/behaviour/operations/disconnect", self)
+        self.states["/initialized/behaviour/operations/disconnect"] = State(33, "/initialized/behaviour/operations/disconnect", self)
         self.states["/initialized/behaviour/operations/disconnect"].setEnter(self._initialized_behaviour_operations_disconnect_enter)
         
         # state /initialized/behaviour/operations/user_logout
-        self.states["/initialized/behaviour/operations/user_logout"] = State(35, "/initialized/behaviour/operations/user_logout", self)
+        self.states["/initialized/behaviour/operations/user_logout"] = State(34, "/initialized/behaviour/operations/user_logout", self)
         self.states["/initialized/behaviour/operations/user_logout"].setEnter(self._initialized_behaviour_operations_user_logout_enter)
         
         # state /initialized/behaviour/operations/user_delete
-        self.states["/initialized/behaviour/operations/user_delete"] = State(36, "/initialized/behaviour/operations/user_delete", self)
+        self.states["/initialized/behaviour/operations/user_delete"] = State(35, "/initialized/behaviour/operations/user_delete", self)
         self.states["/initialized/behaviour/operations/user_delete"].setEnter(self._initialized_behaviour_operations_user_delete_enter)
         
         # state /initialized/behaviour/operations/model_render
-        self.states["/initialized/behaviour/operations/model_render"] = State(37, "/initialized/behaviour/operations/model_render", self)
+        self.states["/initialized/behaviour/operations/model_render"] = State(36, "/initialized/behaviour/operations/model_render", self)
         self.states["/initialized/behaviour/operations/model_render"].setEnter(self._initialized_behaviour_operations_model_render_enter)
         
         # state /initialized/behaviour/operations/model_rendered
-        self.states["/initialized/behaviour/operations/model_rendered"] = State(38, "/initialized/behaviour/operations/model_rendered", self)
+        self.states["/initialized/behaviour/operations/model_rendered"] = State(37, "/initialized/behaviour/operations/model_rendered", self)
         self.states["/initialized/behaviour/operations/model_rendered"].setEnter(self._initialized_behaviour_operations_model_rendered_enter)
         
         # state /initialized/behaviour/operations/transformation_between
-        self.states["/initialized/behaviour/operations/transformation_between"] = State(39, "/initialized/behaviour/operations/transformation_between", self)
+        self.states["/initialized/behaviour/operations/transformation_between"] = State(38, "/initialized/behaviour/operations/transformation_between", self)
         self.states["/initialized/behaviour/operations/transformation_between"].setEnter(self._initialized_behaviour_operations_transformation_between_enter)
         
         # state /initialized/behaviour/operations/transformation_signature
-        self.states["/initialized/behaviour/operations/transformation_signature"] = State(40, "/initialized/behaviour/operations/transformation_signature", self)
+        self.states["/initialized/behaviour/operations/transformation_signature"] = State(39, "/initialized/behaviour/operations/transformation_signature", self)
         self.states["/initialized/behaviour/operations/transformation_signature"].setEnter(self._initialized_behaviour_operations_transformation_signature_enter)
         
         # state /initialized/behaviour/operations/process_signature
-        self.states["/initialized/behaviour/operations/process_signature"] = State(41, "/initialized/behaviour/operations/process_signature", self)
+        self.states["/initialized/behaviour/operations/process_signature"] = State(40, "/initialized/behaviour/operations/process_signature", self)
         self.states["/initialized/behaviour/operations/process_signature"].setEnter(self._initialized_behaviour_operations_process_signature_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted
-        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(42, "/initialized/behaviour/operations/store_on_scripted", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(41, "/initialized/behaviour/operations/store_on_scripted", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add"] = State(43, "/initialized/behaviour/operations/store_on_scripted/transformation_add", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add"] = State(42, "/initialized/behaviour/operations/store_on_scripted/transformation_add", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata"] = State(44, "/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata"] = State(43, "/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user"] = State(44, "/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_execute", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_send_operation_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting"] = State(49, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(50, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(49, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/init
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"] = State(51, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"] = State(50, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"].setEnter(self._initialized_behaviour_operations_store_on_scripted_process_execute_init_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/executing
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(52, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(51, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/history
-        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(53, "/initialized/behaviour/operations/store_on_scripted/history", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(52, "/initialized/behaviour/operations/store_on_scripted/history", self)
         
         # state /initialized/behaviour/operations/permission_modify
-        self.states["/initialized/behaviour/operations/permission_modify"] = State(54, "/initialized/behaviour/operations/permission_modify", self)
+        self.states["/initialized/behaviour/operations/permission_modify"] = State(53, "/initialized/behaviour/operations/permission_modify", self)
         self.states["/initialized/behaviour/operations/permission_modify"].setEnter(self._initialized_behaviour_operations_permission_modify_enter)
         
         # state /initialized/behaviour/operations/permission_owner
-        self.states["/initialized/behaviour/operations/permission_owner"] = State(55, "/initialized/behaviour/operations/permission_owner", self)
+        self.states["/initialized/behaviour/operations/permission_owner"] = State(54, "/initialized/behaviour/operations/permission_owner", self)
         self.states["/initialized/behaviour/operations/permission_owner"].setEnter(self._initialized_behaviour_operations_permission_owner_enter)
         
         # state /initialized/behaviour/operations/permission_group
-        self.states["/initialized/behaviour/operations/permission_group"] = State(56, "/initialized/behaviour/operations/permission_group", self)
+        self.states["/initialized/behaviour/operations/permission_group"] = State(55, "/initialized/behaviour/operations/permission_group", self)
         self.states["/initialized/behaviour/operations/permission_group"].setEnter(self._initialized_behaviour_operations_permission_group_enter)
         
         # state /initialized/behaviour/operations/group_create
-        self.states["/initialized/behaviour/operations/group_create"] = State(57, "/initialized/behaviour/operations/group_create", self)
+        self.states["/initialized/behaviour/operations/group_create"] = State(56, "/initialized/behaviour/operations/group_create", self)
         self.states["/initialized/behaviour/operations/group_create"].setEnter(self._initialized_behaviour_operations_group_create_enter)
         
         # state /initialized/behaviour/operations/group_delete
-        self.states["/initialized/behaviour/operations/group_delete"] = State(58, "/initialized/behaviour/operations/group_delete", self)
+        self.states["/initialized/behaviour/operations/group_delete"] = State(57, "/initialized/behaviour/operations/group_delete", self)
         self.states["/initialized/behaviour/operations/group_delete"].setEnter(self._initialized_behaviour_operations_group_delete_enter)
         
         # state /initialized/behaviour/operations/group_owner_add
-        self.states["/initialized/behaviour/operations/group_owner_add"] = State(59, "/initialized/behaviour/operations/group_owner_add", self)
+        self.states["/initialized/behaviour/operations/group_owner_add"] = State(58, "/initialized/behaviour/operations/group_owner_add", self)
         self.states["/initialized/behaviour/operations/group_owner_add"].setEnter(self._initialized_behaviour_operations_group_owner_add_enter)
         
         # state /initialized/behaviour/operations/group_owner_delete
-        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(60, "/initialized/behaviour/operations/group_owner_delete", self)
+        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(59, "/initialized/behaviour/operations/group_owner_delete", self)
         self.states["/initialized/behaviour/operations/group_owner_delete"].setEnter(self._initialized_behaviour_operations_group_owner_delete_enter)
         
         # state /initialized/behaviour/operations/group_join
-        self.states["/initialized/behaviour/operations/group_join"] = State(61, "/initialized/behaviour/operations/group_join", self)
+        self.states["/initialized/behaviour/operations/group_join"] = State(60, "/initialized/behaviour/operations/group_join", self)
         self.states["/initialized/behaviour/operations/group_join"].setEnter(self._initialized_behaviour_operations_group_join_enter)
         
         # state /initialized/behaviour/operations/group_kick
-        self.states["/initialized/behaviour/operations/group_kick"] = State(62, "/initialized/behaviour/operations/group_kick", self)
+        self.states["/initialized/behaviour/operations/group_kick"] = State(61, "/initialized/behaviour/operations/group_kick", self)
         self.states["/initialized/behaviour/operations/group_kick"].setEnter(self._initialized_behaviour_operations_group_kick_enter)
         
         # state /initialized/behaviour/operations/group_list
-        self.states["/initialized/behaviour/operations/group_list"] = State(63, "/initialized/behaviour/operations/group_list", self)
+        self.states["/initialized/behaviour/operations/group_list"] = State(62, "/initialized/behaviour/operations/group_list", self)
         self.states["/initialized/behaviour/operations/group_list"].setEnter(self._initialized_behaviour_operations_group_list_enter)
         
         # state /initialized/behaviour/operations/admin_promote
-        self.states["/initialized/behaviour/operations/admin_promote"] = State(64, "/initialized/behaviour/operations/admin_promote", self)
+        self.states["/initialized/behaviour/operations/admin_promote"] = State(63, "/initialized/behaviour/operations/admin_promote", self)
         self.states["/initialized/behaviour/operations/admin_promote"].setEnter(self._initialized_behaviour_operations_admin_promote_enter)
         
         # state /initialized/behaviour/operations/admin_demote
-        self.states["/initialized/behaviour/operations/admin_demote"] = State(65, "/initialized/behaviour/operations/admin_demote", self)
+        self.states["/initialized/behaviour/operations/admin_demote"] = State(64, "/initialized/behaviour/operations/admin_demote", self)
         self.states["/initialized/behaviour/operations/admin_demote"].setEnter(self._initialized_behaviour_operations_admin_demote_enter)
         
         # state /initialized/behaviour/operations/conformance_delete
-        self.states["/initialized/behaviour/operations/conformance_delete"] = State(66, "/initialized/behaviour/operations/conformance_delete", self)
+        self.states["/initialized/behaviour/operations/conformance_delete"] = State(65, "/initialized/behaviour/operations/conformance_delete", self)
         self.states["/initialized/behaviour/operations/conformance_delete"].setEnter(self._initialized_behaviour_operations_conformance_delete_enter)
         
         # state /initialized/behaviour/operations/conformance_add
-        self.states["/initialized/behaviour/operations/conformance_add"] = State(67, "/initialized/behaviour/operations/conformance_add", self)
+        self.states["/initialized/behaviour/operations/conformance_add"] = State(66, "/initialized/behaviour/operations/conformance_add", self)
         self.states["/initialized/behaviour/operations/conformance_add"].setEnter(self._initialized_behaviour_operations_conformance_add_enter)
         
         # state /initialized/behaviour/operations/folder_create
-        self.states["/initialized/behaviour/operations/folder_create"] = State(68, "/initialized/behaviour/operations/folder_create", self)
+        self.states["/initialized/behaviour/operations/folder_create"] = State(67, "/initialized/behaviour/operations/folder_create", self)
         self.states["/initialized/behaviour/operations/folder_create"].setEnter(self._initialized_behaviour_operations_folder_create_enter)
         
         # state /initialized/behaviour/operations/model_types
-        self.states["/initialized/behaviour/operations/model_types"] = State(69, "/initialized/behaviour/operations/model_types", self)
+        self.states["/initialized/behaviour/operations/model_types"] = State(68, "/initialized/behaviour/operations/model_types", self)
         self.states["/initialized/behaviour/operations/model_types"].setEnter(self._initialized_behaviour_operations_model_types_enter)
         
         # state /initialized/behaviour/operations/element_list
-        self.states["/initialized/behaviour/operations/element_list"] = State(70, "/initialized/behaviour/operations/element_list", self)
+        self.states["/initialized/behaviour/operations/element_list"] = State(69, "/initialized/behaviour/operations/element_list", self)
         self.states["/initialized/behaviour/operations/element_list"].setEnter(self._initialized_behaviour_operations_element_list_enter)
         
         # state /initialized/behaviour/operations/element_list_nice
-        self.states["/initialized/behaviour/operations/element_list_nice"] = State(71, "/initialized/behaviour/operations/element_list_nice", self)
+        self.states["/initialized/behaviour/operations/element_list_nice"] = State(70, "/initialized/behaviour/operations/element_list_nice", self)
         self.states["/initialized/behaviour/operations/element_list_nice"].setEnter(self._initialized_behaviour_operations_element_list_nice_enter)
         
         # state /initialized/behaviour/operations/types
-        self.states["/initialized/behaviour/operations/types"] = State(72, "/initialized/behaviour/operations/types", self)
+        self.states["/initialized/behaviour/operations/types"] = State(71, "/initialized/behaviour/operations/types", self)
         self.states["/initialized/behaviour/operations/types"].setEnter(self._initialized_behaviour_operations_types_enter)
         
         # state /initialized/behaviour/operations/types_full
-        self.states["/initialized/behaviour/operations/types_full"] = State(73, "/initialized/behaviour/operations/types_full", self)
+        self.states["/initialized/behaviour/operations/types_full"] = State(72, "/initialized/behaviour/operations/types_full", self)
         self.states["/initialized/behaviour/operations/types_full"].setEnter(self._initialized_behaviour_operations_types_full_enter)
         
         # state /initialized/behaviour/operations/read_info
-        self.states["/initialized/behaviour/operations/read_info"] = State(74, "/initialized/behaviour/operations/read_info", self)
+        self.states["/initialized/behaviour/operations/read_info"] = State(73, "/initialized/behaviour/operations/read_info", self)
         self.states["/initialized/behaviour/operations/read_info"].setEnter(self._initialized_behaviour_operations_read_info_enter)
         
         # state /initialized/behaviour/operations/read_attrs
-        self.states["/initialized/behaviour/operations/read_attrs"] = State(75, "/initialized/behaviour/operations/read_attrs", self)
+        self.states["/initialized/behaviour/operations/read_attrs"] = State(74, "/initialized/behaviour/operations/read_attrs", self)
         self.states["/initialized/behaviour/operations/read_attrs"].setEnter(self._initialized_behaviour_operations_read_attrs_enter)
         
         # state /initialized/behaviour/operations/read_defined_attrs
-        self.states["/initialized/behaviour/operations/read_defined_attrs"] = State(76, "/initialized/behaviour/operations/read_defined_attrs", self)
+        self.states["/initialized/behaviour/operations/read_defined_attrs"] = State(75, "/initialized/behaviour/operations/read_defined_attrs", self)
         self.states["/initialized/behaviour/operations/read_defined_attrs"].setEnter(self._initialized_behaviour_operations_read_defined_attrs_enter)
         
         # state /initialized/behaviour/operations/instantiate
-        self.states["/initialized/behaviour/operations/instantiate"] = State(77, "/initialized/behaviour/operations/instantiate", self)
+        self.states["/initialized/behaviour/operations/instantiate"] = State(76, "/initialized/behaviour/operations/instantiate", self)
         
         # state /initialized/behaviour/operations/instantiate/decide_node_or_edge
-        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(78, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
+        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(77, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
         
         # state /initialized/behaviour/operations/instantiate/created
-        self.states["/initialized/behaviour/operations/instantiate/created"] = State(79, "/initialized/behaviour/operations/instantiate/created", self)
+        self.states["/initialized/behaviour/operations/instantiate/created"] = State(78, "/initialized/behaviour/operations/instantiate/created", self)
         
         # state /initialized/behaviour/operations/delete_element
-        self.states["/initialized/behaviour/operations/delete_element"] = State(80, "/initialized/behaviour/operations/delete_element", self)
+        self.states["/initialized/behaviour/operations/delete_element"] = State(79, "/initialized/behaviour/operations/delete_element", self)
         self.states["/initialized/behaviour/operations/delete_element"].setEnter(self._initialized_behaviour_operations_delete_element_enter)
         
         # state /initialized/behaviour/operations/attr_assign
-        self.states["/initialized/behaviour/operations/attr_assign"] = State(81, "/initialized/behaviour/operations/attr_assign", self)
+        self.states["/initialized/behaviour/operations/attr_assign"] = State(80, "/initialized/behaviour/operations/attr_assign", self)
         self.states["/initialized/behaviour/operations/attr_assign"].setEnter(self._initialized_behaviour_operations_attr_assign_enter)
         
         # state /initialized/behaviour/operations/attr_assign_code
-        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(82, "/initialized/behaviour/operations/attr_assign_code", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(81, "/initialized/behaviour/operations/attr_assign_code", self)
         self.states["/initialized/behaviour/operations/attr_assign_code"].setEnter(self._initialized_behaviour_operations_attr_assign_code_enter)
         
         # state /initialized/behaviour/operations/attr_assign_code/sent
-        self.states["/initialized/behaviour/operations/attr_assign_code/sent"] = State(83, "/initialized/behaviour/operations/attr_assign_code/sent", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code/sent"] = State(82, "/initialized/behaviour/operations/attr_assign_code/sent", self)
         
         # state /initialized/behaviour/operations/attr_delete
-        self.states["/initialized/behaviour/operations/attr_delete"] = State(84, "/initialized/behaviour/operations/attr_delete", self)
+        self.states["/initialized/behaviour/operations/attr_delete"] = State(83, "/initialized/behaviour/operations/attr_delete", self)
         self.states["/initialized/behaviour/operations/attr_delete"].setEnter(self._initialized_behaviour_operations_attr_delete_enter)
         
         # state /initialized/behaviour/operations/attr_type
-        self.states["/initialized/behaviour/operations/attr_type"] = State(85, "/initialized/behaviour/operations/attr_type", self)
+        self.states["/initialized/behaviour/operations/attr_type"] = State(84, "/initialized/behaviour/operations/attr_type", self)
         self.states["/initialized/behaviour/operations/attr_type"].setEnter(self._initialized_behaviour_operations_attr_type_enter)
         
         # state /initialized/behaviour/operations/attr_name
-        self.states["/initialized/behaviour/operations/attr_name"] = State(86, "/initialized/behaviour/operations/attr_name", self)
+        self.states["/initialized/behaviour/operations/attr_name"] = State(85, "/initialized/behaviour/operations/attr_name", self)
         self.states["/initialized/behaviour/operations/attr_name"].setEnter(self._initialized_behaviour_operations_attr_name_enter)
         
         # state /initialized/behaviour/operations/attr_optional
-        self.states["/initialized/behaviour/operations/attr_optional"] = State(87, "/initialized/behaviour/operations/attr_optional", self)
+        self.states["/initialized/behaviour/operations/attr_optional"] = State(86, "/initialized/behaviour/operations/attr_optional", self)
         self.states["/initialized/behaviour/operations/attr_optional"].setEnter(self._initialized_behaviour_operations_attr_optional_enter)
         
         # state /initialized/behaviour/operations/read_outgoing
-        self.states["/initialized/behaviour/operations/read_outgoing"] = State(88, "/initialized/behaviour/operations/read_outgoing", self)
+        self.states["/initialized/behaviour/operations/read_outgoing"] = State(87, "/initialized/behaviour/operations/read_outgoing", self)
         self.states["/initialized/behaviour/operations/read_outgoing"].setEnter(self._initialized_behaviour_operations_read_outgoing_enter)
         
         # state /initialized/behaviour/operations/read_incoming
-        self.states["/initialized/behaviour/operations/read_incoming"] = State(89, "/initialized/behaviour/operations/read_incoming", self)
+        self.states["/initialized/behaviour/operations/read_incoming"] = State(88, "/initialized/behaviour/operations/read_incoming", self)
         self.states["/initialized/behaviour/operations/read_incoming"].setEnter(self._initialized_behaviour_operations_read_incoming_enter)
         
         # state /initialized/behaviour/operations/read_association_source
-        self.states["/initialized/behaviour/operations/read_association_source"] = State(90, "/initialized/behaviour/operations/read_association_source", self)
+        self.states["/initialized/behaviour/operations/read_association_source"] = State(89, "/initialized/behaviour/operations/read_association_source", self)
         self.states["/initialized/behaviour/operations/read_association_source"].setEnter(self._initialized_behaviour_operations_read_association_source_enter)
         
         # state /initialized/behaviour/operations/read_association_destination
-        self.states["/initialized/behaviour/operations/read_association_destination"] = State(91, "/initialized/behaviour/operations/read_association_destination", self)
+        self.states["/initialized/behaviour/operations/read_association_destination"] = State(90, "/initialized/behaviour/operations/read_association_destination", self)
         self.states["/initialized/behaviour/operations/read_association_destination"].setEnter(self._initialized_behaviour_operations_read_association_destination_enter)
         
         # state /initialized/behaviour/operations/connections_between
-        self.states["/initialized/behaviour/operations/connections_between"] = State(92, "/initialized/behaviour/operations/connections_between", self)
+        self.states["/initialized/behaviour/operations/connections_between"] = State(91, "/initialized/behaviour/operations/connections_between", self)
         self.states["/initialized/behaviour/operations/connections_between"].setEnter(self._initialized_behaviour_operations_connections_between_enter)
         
         # state /initialized/behaviour/operations/define_attribute
-        self.states["/initialized/behaviour/operations/define_attribute"] = State(93, "/initialized/behaviour/operations/define_attribute", self)
+        self.states["/initialized/behaviour/operations/define_attribute"] = State(92, "/initialized/behaviour/operations/define_attribute", self)
         self.states["/initialized/behaviour/operations/define_attribute"].setEnter(self._initialized_behaviour_operations_define_attribute_enter)
         
         # state /initialized/behaviour/operations/undefine_attribute
-        self.states["/initialized/behaviour/operations/undefine_attribute"] = State(94, "/initialized/behaviour/operations/undefine_attribute", self)
+        self.states["/initialized/behaviour/operations/undefine_attribute"] = State(93, "/initialized/behaviour/operations/undefine_attribute", self)
         self.states["/initialized/behaviour/operations/undefine_attribute"].setEnter(self._initialized_behaviour_operations_undefine_attribute_enter)
         
         # state /initialized/behaviour/operations/all_instances
-        self.states["/initialized/behaviour/operations/all_instances"] = State(95, "/initialized/behaviour/operations/all_instances", self)
+        self.states["/initialized/behaviour/operations/all_instances"] = State(94, "/initialized/behaviour/operations/all_instances", self)
         self.states["/initialized/behaviour/operations/all_instances"].setEnter(self._initialized_behaviour_operations_all_instances_enter)
         
         # state /initialized/behaviour/operations/exit_save
-        self.states["/initialized/behaviour/operations/exit_save"] = State(96, "/initialized/behaviour/operations/exit_save", self)
+        self.states["/initialized/behaviour/operations/exit_save"] = State(95, "/initialized/behaviour/operations/exit_save", self)
         self.states["/initialized/behaviour/operations/exit_save"].setEnter(self._initialized_behaviour_operations_exit_save_enter)
         
         # state /initialized/behaviour/operations/service_register
-        self.states["/initialized/behaviour/operations/service_register"] = State(97, "/initialized/behaviour/operations/service_register", self)
+        self.states["/initialized/behaviour/operations/service_register"] = State(96, "/initialized/behaviour/operations/service_register", self)
         self.states["/initialized/behaviour/operations/service_register"].setEnter(self._initialized_behaviour_operations_service_register_enter)
         
         # state /initialized/behaviour/operations/service_stop
-        self.states["/initialized/behaviour/operations/service_stop"] = State(98, "/initialized/behaviour/operations/service_stop", self)
+        self.states["/initialized/behaviour/operations/service_stop"] = State(97, "/initialized/behaviour/operations/service_stop", self)
         self.states["/initialized/behaviour/operations/service_stop"].setEnter(self._initialized_behaviour_operations_service_stop_enter)
         
         # state /initialized/behaviour/wait_for_action
-        self.states["/initialized/behaviour/wait_for_action"] = State(99, "/initialized/behaviour/wait_for_action", self)
+        self.states["/initialized/behaviour/wait_for_action"] = State(98, "/initialized/behaviour/wait_for_action", self)
         
         # state /initialized/behaviour/wait_for_action/disconnected
-        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(100, "/initialized/behaviour/wait_for_action/disconnected", self)
+        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(99, "/initialized/behaviour/wait_for_action/disconnected", self)
         
         # state /initialized/behaviour/wait_for_action/connected
-        self.states["/initialized/behaviour/wait_for_action/connected"] = State(101, "/initialized/behaviour/wait_for_action/connected", self)
+        self.states["/initialized/behaviour/wait_for_action/connected"] = State(100, "/initialized/behaviour/wait_for_action/connected", self)
         
         # state /initialized/behaviour/wait_for_action/activity
-        self.states["/initialized/behaviour/wait_for_action/activity"] = State(102, "/initialized/behaviour/wait_for_action/activity", self)
+        self.states["/initialized/behaviour/wait_for_action/activity"] = State(101, "/initialized/behaviour/wait_for_action/activity", self)
         
         # state /initialized/behaviour/wait_for_action/activity/SC
-        self.states["/initialized/behaviour/wait_for_action/activity/SC"] = State(103, "/initialized/behaviour/wait_for_action/activity/SC", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/SC"] = State(102, "/initialized/behaviour/wait_for_action/activity/SC", self)
         self.states["/initialized/behaviour/wait_for_action/activity/SC"].setEnter(self._initialized_behaviour_wait_for_action_activity_SC_enter)
         
         # state /initialized/behaviour/wait_for_action/activity/SC/forwarding
-        self.states["/initialized/behaviour/wait_for_action/activity/SC/forwarding"] = State(104, "/initialized/behaviour/wait_for_action/activity/SC/forwarding", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/SC/forwarding"] = State(103, "/initialized/behaviour/wait_for_action/activity/SC/forwarding", self)
         
         # state /initialized/behaviour/wait_for_action/activity/OP
-        self.states["/initialized/behaviour/wait_for_action/activity/OP"] = State(105, "/initialized/behaviour/wait_for_action/activity/OP", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/OP"] = State(104, "/initialized/behaviour/wait_for_action/activity/OP", self)
         self.states["/initialized/behaviour/wait_for_action/activity/OP"].setEnter(self._initialized_behaviour_wait_for_action_activity_OP_enter)
         
         # state /initialized/behaviour/wait_for_action/activity/OP/forwarding
-        self.states["/initialized/behaviour/wait_for_action/activity/OP/forwarding"] = State(106, "/initialized/behaviour/wait_for_action/activity/OP/forwarding", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/OP/forwarding"] = State(105, "/initialized/behaviour/wait_for_action/activity/OP/forwarding", self)
         
         # state /initialized/behaviour/wait_for_action/megamodelling
-        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(107, "/initialized/behaviour/wait_for_action/megamodelling", self)
+        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(106, "/initialized/behaviour/wait_for_action/megamodelling", self)
         
         # state /initialized/behaviour/wait_for_action/service
-        self.states["/initialized/behaviour/wait_for_action/service"] = State(108, "/initialized/behaviour/wait_for_action/service", self)
+        self.states["/initialized/behaviour/wait_for_action/service"] = State(107, "/initialized/behaviour/wait_for_action/service", self)
         
         # state /initialized/behaviour/wait_for_action/modelling
-        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(109, "/initialized/behaviour/wait_for_action/modelling", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(108, "/initialized/behaviour/wait_for_action/modelling", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(110, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(109, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized/manual
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(111, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(110, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized/scripted
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(112, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(111, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
         
         # state /initialized/behaviour/wait_for_action/finished
-        self.states["/initialized/behaviour/wait_for_action/finished"] = State(113, "/initialized/behaviour/wait_for_action/finished", self)
+        self.states["/initialized/behaviour/wait_for_action/finished"] = State(112, "/initialized/behaviour/wait_for_action/finished", self)
         
         # state /initialized/behaviour/wait_for_action/history
-        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(114, "/initialized/behaviour/wait_for_action/history", self)
+        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(113, "/initialized/behaviour/wait_for_action/history", self)
         
         # state /initialized/behaviour/going_manual
-        self.states["/initialized/behaviour/going_manual"] = State(115, "/initialized/behaviour/going_manual", self)
+        self.states["/initialized/behaviour/going_manual"] = State(114, "/initialized/behaviour/going_manual", self)
         
         # state /initialized/behaviour/going_manual/init
-        self.states["/initialized/behaviour/going_manual/init"] = State(116, "/initialized/behaviour/going_manual/init", self)
+        self.states["/initialized/behaviour/going_manual/init"] = State(115, "/initialized/behaviour/going_manual/init", self)
         self.states["/initialized/behaviour/going_manual/init"].setEnter(self._initialized_behaviour_going_manual_init_enter)
         
         # state /initialized/behaviour/going_manual/search
-        self.states["/initialized/behaviour/going_manual/search"] = State(117, "/initialized/behaviour/going_manual/search", self)
+        self.states["/initialized/behaviour/going_manual/search"] = State(116, "/initialized/behaviour/going_manual/search", self)
         self.states["/initialized/behaviour/going_manual/search"].setEnter(self._initialized_behaviour_going_manual_search_enter)
         
         # state /initialized/behaviour/going_manual/OK
-        self.states["/initialized/behaviour/going_manual/OK"] = State(118, "/initialized/behaviour/going_manual/OK", self)
+        self.states["/initialized/behaviour/going_manual/OK"] = State(117, "/initialized/behaviour/going_manual/OK", self)
         self.states["/initialized/behaviour/going_manual/OK"].setEnter(self._initialized_behaviour_going_manual_OK_enter)
         
         # state /initialized/behaviour/going_scripted
-        self.states["/initialized/behaviour/going_scripted"] = State(119, "/initialized/behaviour/going_scripted", self)
+        self.states["/initialized/behaviour/going_scripted"] = State(118, "/initialized/behaviour/going_scripted", self)
         self.states["/initialized/behaviour/going_scripted"].setEnter(self._initialized_behaviour_going_scripted_enter)
         
         # state /initialized/behaviour/leaving_manual
-        self.states["/initialized/behaviour/leaving_manual"] = State(120, "/initialized/behaviour/leaving_manual", self)
+        self.states["/initialized/behaviour/leaving_manual"] = State(119, "/initialized/behaviour/leaving_manual", self)
         self.states["/initialized/behaviour/leaving_manual"].setEnter(self._initialized_behaviour_leaving_manual_enter)
         
-        # state /initialized/behaviour/leaving_manual_drop
-        self.states["/initialized/behaviour/leaving_manual_drop"] = State(121, "/initialized/behaviour/leaving_manual_drop", self)
-        self.states["/initialized/behaviour/leaving_manual_drop"].setEnter(self._initialized_behaviour_leaving_manual_drop_enter)
-        
         # state /initialized/queue
-        self.states["/initialized/queue"] = State(122, "/initialized/queue", self)
+        self.states["/initialized/queue"] = State(120, "/initialized/queue", self)
         
         # state /initialized/queue/queue
-        self.states["/initialized/queue/queue"] = State(123, "/initialized/queue/queue", self)
+        self.states["/initialized/queue/queue"] = State(121, "/initialized/queue/queue", self)
         
         # add children
         self.states[""].addChild(self.states["/init"])
@@ -584,10 +577,8 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/going_manual"])
         self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/going_scripted"])
         self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/leaving_manual"])
-        self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/leaving_manual_drop"])
         self.states["/initialized/behaviour/init"].addChild(self.states["/initialized/behaviour/init/connect_http_client"])
         self.states["/initialized/behaviour/init"].addChild(self.states["/initialized/behaviour/init/waiting_http_client"])
-        self.states["/initialized/behaviour/init"].addChild(self.states["/initialized/behaviour/init/wait_for_taskname_ack"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/history"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/login"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_list"])
@@ -746,18 +737,14 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/http_mapper/init"].addTransition(_initialized_http_mapper_init_1)
         _initialized_http_mapper_init_2 = Transition(self, self.states["/initialized/http_mapper/init"], [self.states["/initialized/http_mapper/init"]])
         _initialized_http_mapper_init_2.setAction(self._initialized_http_mapper_init_2_exec)
-        _initialized_http_mapper_init_2.setTrigger(Event("request_raw", None))
+        _initialized_http_mapper_init_2.setTrigger(Event("HTTP_output", None))
+        _initialized_http_mapper_init_2.setGuard(self._initialized_http_mapper_init_2_guard)
         self.states["/initialized/http_mapper/init"].addTransition(_initialized_http_mapper_init_2)
-        _initialized_http_mapper_init_3 = Transition(self, self.states["/initialized/http_mapper/init"], [self.states["/initialized/http_mapper/init"]])
+        _initialized_http_mapper_init_3 = Transition(self, self.states["/initialized/http_mapper/init"], [self.states["/initialized/http_mapper/finished"]])
         _initialized_http_mapper_init_3.setAction(self._initialized_http_mapper_init_3_exec)
         _initialized_http_mapper_init_3.setTrigger(Event("HTTP_output", None))
         _initialized_http_mapper_init_3.setGuard(self._initialized_http_mapper_init_3_guard)
         self.states["/initialized/http_mapper/init"].addTransition(_initialized_http_mapper_init_3)
-        _initialized_http_mapper_init_4 = Transition(self, self.states["/initialized/http_mapper/init"], [self.states["/initialized/http_mapper/finished"]])
-        _initialized_http_mapper_init_4.setAction(self._initialized_http_mapper_init_4_exec)
-        _initialized_http_mapper_init_4.setTrigger(Event("HTTP_output", None))
-        _initialized_http_mapper_init_4.setGuard(self._initialized_http_mapper_init_4_guard)
-        self.states["/initialized/http_mapper/init"].addTransition(_initialized_http_mapper_init_4)
         
         # transition /initialized/behaviour/init/connect_http_client
         _initialized_behaviour_init_connect_http_client_0 = Transition(self, self.states["/initialized/behaviour/init/connect_http_client"], [self.states["/initialized/behaviour/init/waiting_http_client"]])
@@ -777,7 +764,7 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_init_waiting_http_client_0.setTrigger(Event("http_client_ready", None))
         _initialized_behaviour_init_waiting_http_client_0.setGuard(self._initialized_behaviour_init_waiting_http_client_0_guard)
         self.states["/initialized/behaviour/init/waiting_http_client"].addTransition(_initialized_behaviour_init_waiting_http_client_0)
-        _initialized_behaviour_init_waiting_http_client_1 = Transition(self, self.states["/initialized/behaviour/init/waiting_http_client"], [self.states["/initialized/behaviour/init/wait_for_taskname_ack"]])
+        _initialized_behaviour_init_waiting_http_client_1 = Transition(self, self.states["/initialized/behaviour/init/waiting_http_client"], [self.states["/initialized/behaviour/init/connect_http_client"]])
         _initialized_behaviour_init_waiting_http_client_1.setAction(self._initialized_behaviour_init_waiting_http_client_1_exec)
         _initialized_behaviour_init_waiting_http_client_1.setTrigger(Event("http_client_ready", None))
         _initialized_behaviour_init_waiting_http_client_1.setGuard(self._initialized_behaviour_init_waiting_http_client_1_guard)
@@ -787,12 +774,6 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_init_waiting_http_client_2.setTrigger(Event("http_client_timeout", None))
         self.states["/initialized/behaviour/init/waiting_http_client"].addTransition(_initialized_behaviour_init_waiting_http_client_2)
         
-        # transition /initialized/behaviour/init/wait_for_taskname_ack
-        _initialized_behaviour_init_wait_for_taskname_ack_0 = Transition(self, self.states["/initialized/behaviour/init/wait_for_taskname_ack"], [self.states["/initialized/behaviour/init/connect_http_client"]])
-        _initialized_behaviour_init_wait_for_taskname_ack_0.setTrigger(None)
-        _initialized_behaviour_init_wait_for_taskname_ack_0.setGuard(self._initialized_behaviour_init_wait_for_taskname_ack_0_guard)
-        self.states["/initialized/behaviour/init/wait_for_taskname_ack"].addTransition(_initialized_behaviour_init_wait_for_taskname_ack_0)
-        
         # transition /initialized/behaviour/operations/login/wait_prompt_1
         _initialized_behaviour_operations_login_wait_prompt_1_0 = Transition(self, self.states["/initialized/behaviour/operations/login/wait_prompt_1"], [self.states["/initialized/behaviour/operations/login/wait_prompt_2"]])
         _initialized_behaviour_operations_login_wait_prompt_1_0.setAction(self._initialized_behaviour_operations_login_wait_prompt_1_0_exec)
@@ -1644,14 +1625,10 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_wait_for_action_modelling_recognized_manual_0.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_manual_0.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_manual_0_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_manual_0)
-        _initialized_behaviour_wait_for_action_modelling_recognized_manual_1 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"], [self.states["/initialized/behaviour/leaving_manual_drop"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_manual_1 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"], [self.states["/initialized/behaviour/leaving_manual"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_manual_1.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_manual_1.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_manual_1_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_manual_1)
-        _initialized_behaviour_wait_for_action_modelling_recognized_manual_2 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"], [self.states["/initialized/behaviour/leaving_manual"]])
-        _initialized_behaviour_wait_for_action_modelling_recognized_manual_2.setTrigger(None)
-        _initialized_behaviour_wait_for_action_modelling_recognized_manual_2.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_manual_2_guard)
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_manual_2)
         
         # transition /initialized/behaviour/wait_for_action/modelling/recognized/scripted
         _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"], [self.states["/initialized/behaviour/operations/store_on_scripted/history"]])
@@ -1659,11 +1636,6 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_scripted_0_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_scripted_0)
-        _initialized_behaviour_wait_for_action_modelling_recognized_scripted_1 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"], [self.states["/initialized/behaviour/operations/store_on_scripted/history"]])
-        _initialized_behaviour_wait_for_action_modelling_recognized_scripted_1.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_scripted_1_exec)
-        _initialized_behaviour_wait_for_action_modelling_recognized_scripted_1.setTrigger(None)
-        _initialized_behaviour_wait_for_action_modelling_recognized_scripted_1.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_scripted_1_guard)
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_scripted_1)
         
         # transition /initialized/behaviour/going_manual/init
         _initialized_behaviour_going_manual_init_0 = Transition(self, self.states["/initialized/behaviour/going_manual/init"], [self.states["/initialized/behaviour/going_manual/OK"]])
@@ -1704,12 +1676,6 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_leaving_manual_0.setGuard(self._initialized_behaviour_leaving_manual_0_guard)
         self.states["/initialized/behaviour/leaving_manual"].addTransition(_initialized_behaviour_leaving_manual_0)
         
-        # transition /initialized/behaviour/leaving_manual_drop
-        _initialized_behaviour_leaving_manual_drop_0 = Transition(self, self.states["/initialized/behaviour/leaving_manual_drop"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
-        _initialized_behaviour_leaving_manual_drop_0.setTrigger(None)
-        _initialized_behaviour_leaving_manual_drop_0.setGuard(self._initialized_behaviour_leaving_manual_drop_0_guard)
-        self.states["/initialized/behaviour/leaving_manual_drop"].addTransition(_initialized_behaviour_leaving_manual_drop_0)
-        
         # transition /initialized/queue/queue
         _initialized_queue_queue_0 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
         _initialized_queue_queue_0.setAction(self._initialized_queue_queue_0_exec)
@@ -1969,12 +1935,12 @@ class Modelverse(RuntimeClassBase):
         self.i = 0
         taskname = self.controller.taskname
         if taskname is None:
-            taskname = str(uuid.uuid4())
             self.skip_init = False
+            self.taskname = "task_manager"
         else:
             self.skip_init = True
         
-        self.controller.taskname = self.taskname = taskname
+        self.controller.taskname = self.taskname
     
     def _initialized_behaviour_operations_verify_enter(self):
         self.raiseInternalEvent(Event("request", None, [['verify', self.parameters[0], self.parameters[1]]]))
@@ -2190,9 +2156,6 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_leaving_manual_enter(self):
         self.raiseInternalEvent(Event("request", None, ['exit']))
     
-    def _initialized_behaviour_leaving_manual_drop_enter(self):
-        self.raiseInternalEvent(Event("request", None, ['drop']))
-    
     def _initialized_behaviour_operations_0_exec(self, parameters):
         self.raiseInternalEvent(Event("exception", None, ['CompilationError', self.split_response(self.responses.pop(0))[0]]))
     
@@ -2479,27 +2442,26 @@ class Modelverse(RuntimeClassBase):
         return not isinstance(value, type([]))
     
     def _initialized_http_mapper_init_2_exec(self, parameters):
-        value = parameters[0]
-        taskname = parameters[1]
-        http_client = parameters[2]
-        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[http_client], Event("HTTP_input", None, [urlencode({"op": "set_input", "value": json.dumps(value), "taskname": taskname}), "parent"])]))
-    
-    def _initialized_http_mapper_init_3_exec(self, parameters):
         data = parameters[0]
+        if self.taskname == "task_manager":
+            self.controller.taskname = self.taskname = json.loads(data)
+        else:
+            self.responses.append(json.loads(data))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[1], Event("HTTP_input", None, [urlencode({"op": "get_output", "taskname": self.taskname}), "parent"])]))
-        self.responses.append(json.loads(data))
-        #print("Got data at %s: %s" % (self.controller.taskname, str(json.loads(data))))
     
-    def _initialized_http_mapper_init_3_guard(self, parameters):
+    def _initialized_http_mapper_init_2_guard(self, parameters):
         data = parameters[0]
         return not self.finish_output_thread
     
-    def _initialized_http_mapper_init_4_exec(self, parameters):
+    def _initialized_http_mapper_init_3_exec(self, parameters):
         data = parameters[0]
+        if self.taskname == "task_manager":
+            self.controller.taskname = self.taskname = json.loads(data)
+        else:
+            self.responses.append(json.loads(data))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[1], Event("HTTP_input", None, [urlencode({"op": "get_output", "taskname": self.taskname}), "parent"])]))
-        self.responses.append(json.loads(data))
     
-    def _initialized_http_mapper_init_4_guard(self, parameters):
+    def _initialized_http_mapper_init_3_guard(self, parameters):
         data = parameters[0]
         return self.finish_output_thread
     
@@ -2510,31 +2472,27 @@ class Modelverse(RuntimeClassBase):
         return self.i < 2
     
     def _initialized_behaviour_init_connect_http_client_1_exec(self, parameters):
-        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[1], Event("HTTP_input", None, [urlencode({"op": "get_output", "taskname": self.taskname}), "parent"])]))
         self.raiseInternalEvent(Event("result", None, [[]]))
     
     def _initialized_behaviour_init_connect_http_client_1_guard(self, parameters):
-        return self.i == 2
+        return self.i == 2 and self.taskname != 'task_manager'
     
     def _initialized_behaviour_init_waiting_http_client_0_exec(self, parameters):
         self.i += 1
     
     def _initialized_behaviour_init_waiting_http_client_0_guard(self, parameters):
-        return self.skip_init
+        return self.skip_init or self.i == 0
     
     def _initialized_behaviour_init_waiting_http_client_1_exec(self, parameters):
-        self.raiseInternalEvent(Event("request_raw", None, [self.taskname, 'task_manager', self.i]))
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[1], Event("HTTP_input", None, [urlencode({"op": "get_output", "taskname": self.taskname}), "parent"])]))
         self.i += 1
     
     def _initialized_behaviour_init_waiting_http_client_1_guard(self, parameters):
-        return not self.skip_init
+        return (not self.skip_init) and self.i == 1
     
     def _initialized_behaviour_init_waiting_http_client_2_exec(self, parameters):
         self.raiseInternalEvent(Event("exception", None, ['NetworkException', 'Connection timeout']))
     
-    def _initialized_behaviour_init_wait_for_taskname_ack_0_guard(self, parameters):
-        return self.expect_response('OK', pop=True)
-    
     def _initialized_behaviour_operations_login_wait_prompt_1_0_exec(self, parameters):
         self.raiseInternalEvent(Event("request", None, [self.parameters[0]]))
     
@@ -3387,9 +3345,6 @@ class Modelverse(RuntimeClassBase):
         return self.expect_action('exit')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_manual_1_guard(self, parameters):
-        return self.expect_action('drop')
-    
-    def _initialized_behaviour_wait_for_action_modelling_recognized_manual_2_guard(self, parameters):
         return self.actions and self.actions[0]['parameters'][0] != self.current_model
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0_exec(self, parameters):
@@ -3398,12 +3353,6 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0_guard(self, parameters):
         return self.expect_action('exit')
     
-    def _initialized_behaviour_wait_for_action_modelling_recognized_scripted_1_exec(self, parameters):
-        self.raiseInternalEvent(Event("request", None, ['drop']))
-    
-    def _initialized_behaviour_wait_for_action_modelling_recognized_scripted_1_guard(self, parameters):
-        return self.expect_action('drop')
-    
     def _initialized_behaviour_going_manual_init_0_guard(self, parameters):
         return self.current_model in self.registered_metamodel
     
@@ -3430,9 +3379,6 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_leaving_manual_0_guard(self, parameters):
         return self.expect_response('Success', pop=True)
     
-    def _initialized_behaviour_leaving_manual_drop_0_guard(self, parameters):
-        return self.expect_response('Success', pop=True)
-    
     def _initialized_queue_queue_0_exec(self, parameters):
         action_name = parameters[0]
         ID = parameters[1]