示例#1
0
 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