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 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), ("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