def generate_workflow_job_template_nodes(workflow_job_template, persisted, **kwargs): workflow_job_template_nodes = kwargs.get('workflow_job_template_nodes', []) if len(workflow_job_template_nodes) > 0 and not persisted: raise RuntimeError( 'workflow job template nodes cannot be used when persisted=False') new_nodes = [] for i, node in enumerate(workflow_job_template_nodes): new_node = WorkflowJobTemplateNode( workflow_job_template=workflow_job_template, unified_job_template=node['unified_job_template'], id=i) if persisted: new_node.save() new_nodes.append(new_node) node_types = ['success_nodes', 'failure_nodes', 'always_nodes'] for node_type in node_types: for i, new_node in enumerate(new_nodes): if node_type not in workflow_job_template_nodes[i]: continue for related_index in workflow_job_template_nodes[i][node_type]: getattr(new_node, node_type).add(new_nodes[related_index])
def mk_workflow_job_template_node( workflow_job_template=None, unified_job_template=None, success_nodes=None, failure_nodes=None, always_nodes=None, persisted=True ): workflow_node = WorkflowJobTemplateNode( workflow_job_template=workflow_job_template, unified_job_template=unified_job_template, success_nodes=success_nodes, failure_nodes=failure_nodes, always_nodes=always_nodes, ) if persisted: workflow_node.save() return workflow_node