コード例 #1
0
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])
コード例 #2
0
ファイル: fixtures.py プロジェクト: traytonwhite/awx
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