def create_workflow(self): """ Creates and sets workflow, tasks. """ try: template = WorkflowTemplate.objects.get( pk=self.workflowtemplate_id) if template is None: self.log.warning("Workflow template '%s' does not exist.") return False template_tasks = WorkflowTemplateTask.objects.filter( workflow_template=template.id) if template_tasks.exists() == False: self.log.warning("Workflow template '%s' has not any task." % template.code) return False # Adde field tcreated to workflow self.workflow = Workflow(scenario=self.scenario_id, code=template.code, template=template, tcreated=datetime.datetime.today(), priority=self.workflowpriority) self.workflow.save() # TODO define default body # self.log.debug("Created workflow '%s' for scenario '%s'." % ( # template.code, self.scenario_id)) self.bulk_tasks = [] for template_task in template_tasks: task = WorkflowTask( workflow=self.workflow, code=template_task.code, tcreated=datetime.datetime.today(), parent_code=template_task.parent_code, max_failures=template_task.max_failures, max_duration_minutes=template_task.max_duration_minutes) task.save() self.bulk_tasks.append(task) return True except Exception as ex: self.log.error("{0}".format(ex)) return False