mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 18:09:57 -03:30
flake8 fixes
This commit is contained in:
parent
28ec68e91b
commit
e4025a7eff
@ -2187,7 +2187,7 @@ class WorkflowJobSerializer(UnifiedJobSerializer):
|
||||
res = super(WorkflowJobSerializer, self).get_related(obj)
|
||||
if obj.workflow_job_template:
|
||||
res['workflow_job_template'] = reverse('api:workflow_job_template_detail',
|
||||
args=(obj.workflow_job_template.pk,))
|
||||
args=(obj.workflow_job_template.pk,))
|
||||
# TODO:
|
||||
#res['notifications'] = reverse('api:system_job_notifications_list', args=(obj.pk,))
|
||||
res['workflow_nodes'] = reverse('api:workflow_job_workflow_nodes_list', args=(obj.pk,))
|
||||
|
||||
@ -11,7 +11,6 @@ import socket
|
||||
import sys
|
||||
import errno
|
||||
import logging
|
||||
import copy
|
||||
from base64 import b64encode
|
||||
from collections import OrderedDict
|
||||
|
||||
|
||||
@ -1172,9 +1172,6 @@ class WorkflowJobTemplateAccess(BaseAccess):
|
||||
|
||||
model = WorkflowJobTemplate
|
||||
|
||||
def can_start(self, obj):
|
||||
return self.can_read(obj)
|
||||
|
||||
def get_queryset(self):
|
||||
if self.user.is_superuser or self.user.is_system_auditor:
|
||||
qs = self.model.objects.all()
|
||||
@ -1234,7 +1231,9 @@ class WorkflowJobTemplateAccess(BaseAccess):
|
||||
if self.user.is_superuser:
|
||||
return True
|
||||
|
||||
return self.user in obj.execute_role
|
||||
return self.can_read(obj)
|
||||
# TODO: We should use execute role rather than read role
|
||||
#return self.user in obj.execute_role
|
||||
|
||||
def can_change(self, obj, data):
|
||||
data_for_change = data
|
||||
|
||||
@ -220,7 +220,7 @@ class WorkflowDAG(SimpleDAG):
|
||||
children_always = self.get_dependencies(obj, 'always_nodes')
|
||||
children_all = children_failed + children_always
|
||||
nodes.extend(children_all)
|
||||
elif job.status in ['successfult']:
|
||||
elif job.status in ['successful']:
|
||||
children_success = self.get_dependencies(obj, 'success_nodes')
|
||||
nodes.extend(children_success)
|
||||
else:
|
||||
@ -260,12 +260,22 @@ def do_spawn_workflow_jobs():
|
||||
dag = WorkflowDAG(workflow_job)
|
||||
spawn_nodes = dag.bfs_nodes_to_run()
|
||||
for spawn_node in spawn_nodes:
|
||||
# TODO: Inject job template template params as kwargs
|
||||
# TODO: Inject job template template params as kwargs.
|
||||
# Make sure to take into account extra_vars merge logic
|
||||
kv = {}
|
||||
job = spawn_node.unified_job_template.create_unified_job(**kv)
|
||||
spawn_node.job = job
|
||||
spawn_node.save()
|
||||
result = job.signal_start(**kv)
|
||||
can_start = job.signal_start(**kv)
|
||||
if not can_start:
|
||||
job.status = 'failed'
|
||||
job.job_explanation = "Workflow job could not start because it was not in the right state or required manual credentials"
|
||||
job.save(update_fields=['status', 'job_explanation'])
|
||||
job.socketio_emit_status("failed")
|
||||
|
||||
# TODO: should we emit a status on the socket here similar to tasks.py tower_periodic_scheduler() ?
|
||||
#emit_websocket_notification('/socket.io/jobs', '', dict(id=))
|
||||
|
||||
|
||||
def rebuild_graph(message):
|
||||
"""Regenerate the task graph by refreshing known tasks from Tower, purging
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
# Copyright (c) 2016 Ansible, Inc.
|
||||
# All Rights Reserved.
|
||||
|
||||
# Python
|
||||
#import urlparse
|
||||
|
||||
# Django
|
||||
from django.db import models
|
||||
from django.core.urlresolvers import reverse
|
||||
@ -202,8 +205,9 @@ class WorkflowJob(UnifiedJob, WorkflowJobOptions, JobNotificationMixin, Workflow
|
||||
def get_absolute_url(self):
|
||||
return reverse('api:workflow_job_detail', args=(self.pk,))
|
||||
|
||||
def get_ui_url(self):
|
||||
return urljoin(tower_settings.TOWER_URL_BASE, "/#/workflow_jobs/{}".format(self.pk))
|
||||
# TODO: Ask UI if this is needed ?
|
||||
#def get_ui_url(self):
|
||||
# return urlparse.urljoin(tower_settings.TOWER_URL_BASE, "/#/workflow_jobs/{}".format(self.pk))
|
||||
|
||||
def is_blocked_by(self, obj):
|
||||
return True
|
||||
|
||||
@ -14,6 +14,7 @@ from awx.main.models import (
|
||||
Inventory,
|
||||
Label,
|
||||
WorkflowJobTemplate,
|
||||
WorkflowNode,
|
||||
)
|
||||
|
||||
# mk methods should create only a single object of a single type.
|
||||
@ -169,7 +170,7 @@ def mk_workflow_node(workflow_job_template=None, unified_job_template=None,
|
||||
success_nodes=None, failure_nodes=None, always_nodes=None,
|
||||
job=None, persisted=True):
|
||||
workflow_node = WorkflowNode(workflow_job_template=workflow_job_template,
|
||||
unified_job_template=job_template,
|
||||
unified_job_template=unified_job_template,
|
||||
success_nodes=success_nodes,
|
||||
failure_nodes=failure_nodes,
|
||||
always_nodes=always_nodes,
|
||||
|
||||
@ -9,7 +9,6 @@ from awx.main.models import (
|
||||
Inventory,
|
||||
Job,
|
||||
Label,
|
||||
WorkflowJobTemplate,
|
||||
)
|
||||
|
||||
from .objects import (
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
from awx.main.models import (
|
||||
WorkflowNode,
|
||||
WorkflowJobTemplate,
|
||||
WorkflowJob,
|
||||
)
|
||||
from awx.main.models.jobs import JobTemplate
|
||||
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
from awx.main.models import (
|
||||
WorkflowNode,
|
||||
WorkflowJobTemplate,
|
||||
WorkflowJob,
|
||||
)
|
||||
from awx.main.models.jobs import JobTemplate
|
||||
|
||||
|
||||
@ -10,12 +10,12 @@ import pytest
|
||||
def dag_root():
|
||||
dag = SimpleDAG()
|
||||
data = [
|
||||
{ 1: 1 },
|
||||
{ 2: 2 },
|
||||
{ 3: 3 },
|
||||
{ 4: 4 },
|
||||
{ 5: 5 },
|
||||
{ 6: 6 },
|
||||
{1: 1},
|
||||
{2: 2},
|
||||
{3: 3},
|
||||
{4: 4},
|
||||
{5: 5},
|
||||
{6: 6},
|
||||
]
|
||||
# Add all the nodes to the DAG
|
||||
[dag.add_node(d) for d in data]
|
||||
@ -30,12 +30,12 @@ def dag_root():
|
||||
def dag_simple_edge_labels():
|
||||
dag = SimpleDAG()
|
||||
data = [
|
||||
{ 1: 1 },
|
||||
{ 2: 2 },
|
||||
{ 3: 3 },
|
||||
{ 4: 4 },
|
||||
{ 5: 5 },
|
||||
{ 6: 6 },
|
||||
{1: 1},
|
||||
{2: 2},
|
||||
{3: 3},
|
||||
{4: 4},
|
||||
{5: 5},
|
||||
{6: 6},
|
||||
]
|
||||
# Add all the nodes to the DAG
|
||||
[dag.add_node(d) for d in data]
|
||||
@ -46,23 +46,18 @@ def dag_simple_edge_labels():
|
||||
|
||||
return dag
|
||||
|
||||
'''
|
||||
class TestSimpleDAG(object):
|
||||
def test_get_root_nodes(self, dag_root):
|
||||
leafs = dag_root.get_leaf_nodes()
|
||||
for l in leafs:
|
||||
print(l)
|
||||
|
||||
roots = dag_root.get_root_nodes()
|
||||
for n in roots:
|
||||
print(n)
|
||||
|
||||
def test_get_labeled_edges(self, dag_simple_edge_labels):
|
||||
dag = dag_simple_edge_labels
|
||||
nodes = dag.get_dependencies(dag.nodes[0]['node_object'], 'one')
|
||||
nodes = dag.get_dependencies(dag.nodes[0]['node_object'], 'two')
|
||||
print("Matching nodes: ")
|
||||
for n in nodes:
|
||||
print(n)
|
||||
'''
|
||||
|
||||
@pytest.fixture
|
||||
def factory_node():
|
||||
@ -74,41 +69,22 @@ def factory_node():
|
||||
return wfn
|
||||
return fn
|
||||
|
||||
@pytest.fixture
|
||||
def workflow_dag_multiple_roots(factory_node):
|
||||
dag = WorkflowDAG()
|
||||
data = [
|
||||
factory_node(1, None),
|
||||
factory_node(2, None),
|
||||
factory_node(3, None),
|
||||
factory_node(4, None),
|
||||
factory_node(5, None),
|
||||
factory_node(6, None),
|
||||
]
|
||||
[dag.add_node(d) for d in data]
|
||||
|
||||
dag.add_edge(data[0], data[3], 'success')
|
||||
dag.add_edge(data[1], data[4], 'success')
|
||||
dag.add_edge(data[2], data[5], 'success')
|
||||
|
||||
return dag
|
||||
|
||||
@pytest.fixture
|
||||
def workflow_dag_level_2(factory_node):
|
||||
dag = WorkflowDAG()
|
||||
data = [
|
||||
factory_node(1, 'success'),
|
||||
factory_node(2, 'success'),
|
||||
factory_node(3, 'success'),
|
||||
factory_node(0, 'successful'),
|
||||
factory_node(1, 'successful'),
|
||||
factory_node(2, 'successful'),
|
||||
factory_node(3, None),
|
||||
factory_node(4, None),
|
||||
factory_node(5, None),
|
||||
factory_node(6, None),
|
||||
]
|
||||
[dag.add_node(d) for d in data]
|
||||
|
||||
dag.add_edge(data[0], data[3], 'success')
|
||||
dag.add_edge(data[1], data[4], 'success')
|
||||
dag.add_edge(data[2], data[5], 'success')
|
||||
dag.add_edge(data[0], data[3], 'success_nodes')
|
||||
dag.add_edge(data[1], data[4], 'success_nodes')
|
||||
dag.add_edge(data[2], data[5], 'success_nodes')
|
||||
|
||||
return (dag, data[3:6], False)
|
||||
|
||||
@ -125,9 +101,9 @@ def workflow_dag_multiple_roots(factory_node):
|
||||
]
|
||||
[dag.add_node(d) for d in data]
|
||||
|
||||
dag.add_edge(data[0], data[3], 'success')
|
||||
dag.add_edge(data[1], data[4], 'success')
|
||||
dag.add_edge(data[2], data[5], 'success')
|
||||
dag.add_edge(data[0], data[3], 'success_nodes')
|
||||
dag.add_edge(data[1], data[4], 'success_nodes')
|
||||
dag.add_edge(data[2], data[5], 'success_nodes')
|
||||
|
||||
expected = data[0:3]
|
||||
return (dag, expected, False)
|
||||
@ -145,11 +121,11 @@ def workflow_dag_multiple_edges_labeled(factory_node):
|
||||
]
|
||||
[dag.add_node(d) for d in data]
|
||||
|
||||
dag.add_edge(data[0], data[1], 'success')
|
||||
dag.add_edge(data[0], data[2], 'failure')
|
||||
dag.add_edge(data[2], data[3], 'success')
|
||||
dag.add_edge(data[2], data[4], 'failure')
|
||||
dag.add_edge(data[4], data[5], 'failure')
|
||||
dag.add_edge(data[0], data[1], 'success_nodes')
|
||||
dag.add_edge(data[0], data[2], 'failure_nodes')
|
||||
dag.add_edge(data[2], data[3], 'success_nodes')
|
||||
dag.add_edge(data[2], data[4], 'failure_nodes')
|
||||
dag.add_edge(data[4], data[5], 'failure_nodes')
|
||||
|
||||
expected = data[5:6]
|
||||
return (dag, expected, False)
|
||||
@ -163,15 +139,15 @@ def workflow_dag_finished(factory_node):
|
||||
factory_node(2, 'failed'),
|
||||
factory_node(3, None),
|
||||
factory_node(4, 'failed'),
|
||||
factory_node(5, 'success'),
|
||||
factory_node(5, 'successful'),
|
||||
]
|
||||
[dag.add_node(d) for d in data]
|
||||
|
||||
dag.add_edge(data[0], data[1], 'success')
|
||||
dag.add_edge(data[0], data[2], 'failure')
|
||||
dag.add_edge(data[2], data[3], 'success')
|
||||
dag.add_edge(data[2], data[4], 'failure')
|
||||
dag.add_edge(data[4], data[5], 'failure')
|
||||
dag.add_edge(data[0], data[1], 'success_nodes')
|
||||
dag.add_edge(data[0], data[2], 'failure_nodes')
|
||||
dag.add_edge(data[2], data[3], 'success_nodes')
|
||||
dag.add_edge(data[2], data[4], 'failure_nodes')
|
||||
dag.add_edge(data[4], data[5], 'failure_nodes')
|
||||
|
||||
expected = []
|
||||
return (dag, expected, True)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user