def _deserialize_task(self, workflow, s_state): assert isinstance(workflow, Workflow) # task_spec task_spec = workflow.get_task_spec_from_name(s_state['task_spec']) task = Task(workflow, task_spec) # id task.id = s_state['id'] # parent task.parent = workflow.get_task(s_state['parent']) # children task.children = [self._deserialize_task(workflow, c) for c in s_state['children']] # state task._state = s_state['state'] task.triggered = s_state['triggered'] # last_state_change task.last_state_change = s_state['last_state_change'] # attributes task.attributes = s_state['attributes'] # internal_attributes task.internal_attributes = s_state['internal_attributes'] return task
def _deserialize_task(self, workflow, s_state): assert isinstance(workflow, Workflow) # task_spec task_spec = workflow.get_task_spec_from_name(s_state['task_spec']) task = Task(workflow, task_spec) # id task.id = s_state['id'] # parent # as the task_tree might not be complete yet # keep the ids so they can be processed at the end task.parent = s_state['parent'] # children task.children = [ self._deserialize_task(workflow, c) for c in s_state['children'] ] # state task._state = s_state['state'] task.triggered = s_state['triggered'] # last_state_change task.last_state_change = s_state['last_state_change'] # data task.data = s_state['data'] # internal_data #if 'subworkflow' in s_state['internal_data']: # task.internal_data = self._deserialize_dict(s_state['internal_data']) return task
def _deserialize_task(self, workflow, s_state): assert isinstance(workflow, Workflow) # task_spec task_spec = workflow.get_task_spec_from_name(s_state['task_spec']) task = Task(workflow, task_spec) # id task.id = s_state['id'] # parent task.parent = workflow.get_task(s_state['parent']) # children task.children = [ self._deserialize_task(workflow, c) for c in s_state['children'] ] # state task._state = s_state['state'] task.triggered = s_state['triggered'] # last_state_change task.last_state_change = s_state['last_state_change'] # attributes task.attributes = s_state['attributes'] # internal_attributes task.internal_attributes = s_state['internal_attributes'] return task
def _deserialize_task(self, workflow, s_state): assert isinstance(workflow, Workflow) # task_spec task_spec = workflow.get_task_spec_from_name(s_state['task_spec']) task = Task(workflow, task_spec) # id task.id = s_state['id'] # parent # as the task_tree might not be complete yet # keep the ids so they can be processed at the end task.parent = s_state['parent'] # children task.children = [self._deserialize_task(workflow, c) for c in s_state['children']] # state task._state = s_state['state'] task.triggered = s_state['triggered'] # last_state_change task.last_state_change = s_state['last_state_change'] # data task.data = s_state['data'] # internal_data task.internal_data = s_state['internal_data'] return task
def _deserialize_task(self, workflow, s_state): assert isinstance(workflow, Workflow), ("The workflow parameter did " "not receive a Workflow " "object. Instead, it got a " "'%s'" % workflow.__class__) # task_spec task_spec = workflow.get_task_spec_from_name(s_state['task_spec']) if task_spec.name == "Root": # Don't create two roots task = workflow.task_tree else: task = Task(workflow, task_spec) # id task.id = s_state['id'] # parent task.parent = workflow.get_task(s_state['parent']) # We need to add children in before deserializing child tasks so they can # find their parent (Task.Iter uses children to traverse the hierarchy if task.parent and task not in task.parent.children: task.parent.children.append(task) #assert task.parent is not None or task.get_name() == 'Root', ("Task " # "'%s' parent is None" % task.get_name()) # children for c in s_state['children']: self._deserialize_task(workflow, c) # state task._state = s_state['state'] # last_state_change task.last_state_change = s_state['last_state_change'] # attributes task.attributes = s_state['attributes'] # internal_attributes task.internal_attributes = s_state['internal_attributes'] return task