mirror of
https://github.com/ansible/awx.git
synced 2026-01-17 04:31:21 -03:30
removed JobEventSerializer additions, consolidated migrations, swapped job_events and jobs channel updates
This commit is contained in:
parent
62d0b9fc98
commit
cd084f5c60
@ -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
|
||||
|
||||
@ -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={
|
||||
|
||||
@ -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'),
|
||||
),
|
||||
]
|
||||
@ -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,
|
||||
|
||||
@ -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']
|
||||
|
||||
@ -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']
|
||||
Loading…
x
Reference in New Issue
Block a user