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:
d['job']['job_template_id'] = obj.job.job_template.id
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):
pass
return d

View File

@ -15,6 +15,11 @@ class Migration(migrations.Migration):
]
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(
name='WorkflowJob',
fields=[
@ -34,7 +39,7 @@ class Migration(migrations.Migration):
('modified', models.DateTimeField(default=None, editable=False)),
('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)),
('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)),
],
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):
''' 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):
status_data = dict(unified_job_id=self.id, status=status)
@ -800,6 +800,11 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
status_data['group_name'] = 'jobs'
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):
return dict(id=self.id,
name=self.name,

View File

@ -45,10 +45,6 @@ def emit_job_event_detail(sender, **kwargs):
event_serialized["group_name"] = "job_events"
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):
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']