removed JobEventSerializer additions, consolidated migrations, swapped job_events and jobs channel updates

This commit is contained in:
Wayne Witzel III
2016-11-17 17:03:41 -05:00
parent 62d0b9fc98
commit cd084f5c60
6 changed files with 12 additions and 61 deletions

View File

@@ -2476,8 +2476,6 @@ class JobEventSerializer(BaseSerializer):
try: try:
d['job']['job_template_id'] = obj.job.job_template.id d['job']['job_template_id'] = obj.job.job_template.id
d['job']['job_template_name'] = obj.job.job_template.name d['job']['job_template_name'] = obj.job.job_template.name
d['job']['spawned_by_workflow'] = obj.job.spawned_by_workflow
d['job']['workflow_job_id'] = obj.job.workflow_job_id
except (KeyError, AttributeError): except (KeyError, AttributeError):
pass pass
return d return d

View File

@@ -15,6 +15,11 @@ class Migration(migrations.Migration):
] ]
operations = [ operations = [
migrations.AlterField(
model_name='unifiedjob',
name='launch_type',
field=models.CharField(default=b'manual', max_length=20, editable=False, choices=[(b'manual', 'Manual'), (b'relaunch', 'Relaunch'), (b'callback', 'Callback'), (b'scheduled', 'Scheduled'), (b'dependency', 'Dependency'), (b'workflow', 'Workflow')]),
),
migrations.CreateModel( migrations.CreateModel(
name='WorkflowJob', name='WorkflowJob',
fields=[ fields=[
@@ -34,7 +39,7 @@ class Migration(migrations.Migration):
('modified', models.DateTimeField(default=None, editable=False)), ('modified', models.DateTimeField(default=None, editable=False)),
('always_nodes', models.ManyToManyField(related_name='workflowjobnodes_always', to='main.WorkflowJobNode', blank=True)), ('always_nodes', models.ManyToManyField(related_name='workflowjobnodes_always', to='main.WorkflowJobNode', blank=True)),
('failure_nodes', models.ManyToManyField(related_name='workflowjobnodes_failure', to='main.WorkflowJobNode', blank=True)), ('failure_nodes', models.ManyToManyField(related_name='workflowjobnodes_failure', to='main.WorkflowJobNode', blank=True)),
('job', models.ForeignKey(related_name='unified_job_nodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJob', null=True)), ('job', models.OneToOneField(related_name='unified_job_node', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJob', null=True)),
('success_nodes', models.ManyToManyField(related_name='workflowjobnodes_success', to='main.WorkflowJobNode', blank=True)), ('success_nodes', models.ManyToManyField(related_name='workflowjobnodes_success', to='main.WorkflowJobNode', blank=True)),
], ],
options={ options={

View File

@@ -1,25 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main', '0050_v310_JSONField_changes'),
]
operations = [
migrations.AlterField(
model_name='unifiedjob',
name='launch_type',
field=models.CharField(default=b'manual', max_length=20, editable=False, choices=[(b'manual', 'Manual'), (b'relaunch', 'Relaunch'), (b'callback', 'Callback'), (b'scheduled', 'Scheduled'), (b'dependency', 'Dependency'), (b'workflow', 'Workflow')]),
),
migrations.AlterField(
model_name='workflowjobnode',
name='job',
field=models.OneToOneField(related_name='unified_job_node', null=True, on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJob'),
),
]

View File

@@ -792,7 +792,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
def websocket_emit_data(self): def websocket_emit_data(self):
''' Return extra data that should be included when submitting data to the browser over the websocket connection ''' ''' Return extra data that should be included when submitting data to the browser over the websocket connection '''
return {} return {'workflow_job_id': self.workflow_job_id}
def websocket_emit_status(self, status): def websocket_emit_status(self, status):
status_data = dict(unified_job_id=self.id, status=status) status_data = dict(unified_job_id=self.id, status=status)
@@ -800,6 +800,11 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
status_data['group_name'] = 'jobs' status_data['group_name'] = 'jobs'
emit_channel_notification('jobs-status_changed', status_data) emit_channel_notification('jobs-status_changed', status_data)
if self.spawned_by_workflow:
event_serialized['group_name'] = "workflow_events"
emit_channel_notification('workflow_events-' + str(self.workflow_job_id), status_data)
def notification_data(self): def notification_data(self):
return dict(id=self.id, return dict(id=self.id,
name=self.name, name=self.name,

View File

@@ -45,10 +45,6 @@ def emit_job_event_detail(sender, **kwargs):
event_serialized["group_name"] = "job_events" event_serialized["group_name"] = "job_events"
emit_channel_notification('job_events-' + str(instance.job.id), event_serialized) emit_channel_notification('job_events-' + str(instance.job.id), event_serialized)
if instance.job.spawned_by_workflow:
event_serialized['group_name'] = "workflow_events"
emit_channel_notification('workflow_events-' + str(instance.job.workflow_job_id), event_serialized)
def emit_ad_hoc_command_event_detail(sender, **kwargs): def emit_ad_hoc_command_event_detail(sender, **kwargs):
instance = kwargs['instance'] instance = kwargs['instance']

View File

@@ -1,28 +0,0 @@
import pytest
import mock
from awx.api.serializers import JobEventSerializer
from awx.main.models import (
Job,
JobTemplate,
JobEvent,
)
@pytest.fixture
def job_event(mocker):
job_event = mocker.MagicMock(spec=JobEvent)
job = Job(id=1, name="job-1")
job.job_template = JobTemplate(id=1, name="job-template-1")
job_event.job = job
return job_event
def test_summary_field_workflow_exists(job_event):
with mock.patch('awx.api.serializers.BaseSerializer.get_summary_fields', lambda x,y: {'job':{}}):
serializer = JobEventSerializer(job_event)
summary_fields = serializer.get_summary_fields(job_event)
assert 'spawned_by_workflow' in summary_fields['job']
assert 'workflow_job_id' in summary_fields['job']