mirror of
https://github.com/ansible/awx.git
synced 2026-04-09 03:59:21 -02:30
Remove event hosts relationship
and parent event-event ForeignKey relationship
This commit is contained in:
@@ -3825,7 +3825,7 @@ class JobEventSerializer(BaseSerializer):
|
|||||||
model = JobEvent
|
model = JobEvent
|
||||||
fields = ('*', '-name', '-description', 'job', 'event', 'counter',
|
fields = ('*', '-name', '-description', 'job', 'event', 'counter',
|
||||||
'event_display', 'event_data', 'event_level', 'failed',
|
'event_display', 'event_data', 'event_level', 'failed',
|
||||||
'changed', 'uuid', 'parent_uuid', 'host', 'host_name', 'parent',
|
'changed', 'uuid', 'parent_uuid', 'host', 'host_name',
|
||||||
'playbook', 'play', 'task', 'role', 'stdout', 'start_line', 'end_line',
|
'playbook', 'play', 'task', 'role', 'stdout', 'start_line', 'end_line',
|
||||||
'verbosity')
|
'verbosity')
|
||||||
|
|
||||||
@@ -3834,13 +3834,9 @@ class JobEventSerializer(BaseSerializer):
|
|||||||
res.update(dict(
|
res.update(dict(
|
||||||
job = self.reverse('api:job_detail', kwargs={'pk': obj.job_id}),
|
job = self.reverse('api:job_detail', kwargs={'pk': obj.job_id}),
|
||||||
))
|
))
|
||||||
if obj.parent_id:
|
|
||||||
res['parent'] = self.reverse('api:job_event_detail', kwargs={'pk': obj.parent_id})
|
|
||||||
res['children'] = self.reverse('api:job_event_children_list', kwargs={'pk': obj.pk})
|
res['children'] = self.reverse('api:job_event_children_list', kwargs={'pk': obj.pk})
|
||||||
if obj.host_id:
|
if obj.host_id:
|
||||||
res['host'] = self.reverse('api:host_detail', kwargs={'pk': obj.host_id})
|
res['host'] = self.reverse('api:host_detail', kwargs={'pk': obj.host_id})
|
||||||
if obj.hosts.exists():
|
|
||||||
res['hosts'] = self.reverse('api:job_event_hosts_list', kwargs={'pk': obj.pk})
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def get_summary_fields(self, obj):
|
def get_summary_fields(self, obj):
|
||||||
|
|||||||
@@ -3814,6 +3814,12 @@ class JobEventHostsList(HostRelatedSearchMixin, SubListAPIView):
|
|||||||
relationship = 'hosts'
|
relationship = 'hosts'
|
||||||
name = _('Job Event Hosts List')
|
name = _('Job Event Hosts List')
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
parent_event = self.get_parent_object()
|
||||||
|
self.check_parent_access(parent_event)
|
||||||
|
qs = self.request.user.get_queryset(self.model).filter(job_events_as_primary_host=parent_event)
|
||||||
|
return qs
|
||||||
|
|
||||||
|
|
||||||
class BaseJobEventsList(NoTruncateMixin, SubListAPIView):
|
class BaseJobEventsList(NoTruncateMixin, SubListAPIView):
|
||||||
|
|
||||||
@@ -3836,8 +3842,7 @@ class HostJobEventsList(BaseJobEventsList):
|
|||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
parent_obj = self.get_parent_object()
|
parent_obj = self.get_parent_object()
|
||||||
self.check_parent_access(parent_obj)
|
self.check_parent_access(parent_obj)
|
||||||
qs = self.request.user.get_queryset(self.model).filter(
|
qs = self.request.user.get_queryset(self.model).filter(host=parent_obj)
|
||||||
Q(host=parent_obj) | Q(hosts=parent_obj)).distinct()
|
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
|
|
||||||
@@ -3855,7 +3860,6 @@ class JobJobEventsList(BaseJobEventsList):
|
|||||||
self.check_parent_access(job)
|
self.check_parent_access(job)
|
||||||
qs = job.job_events
|
qs = job.job_events
|
||||||
qs = qs.select_related('host')
|
qs = qs.select_related('host')
|
||||||
qs = qs.prefetch_related('hosts', 'children')
|
|
||||||
return qs.all()
|
return qs.all()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2238,7 +2238,7 @@ class JobEventAccess(BaseAccess):
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
model = JobEvent
|
model = JobEvent
|
||||||
prefetch_related = ('hosts', 'job__job_template', 'host',)
|
prefetch_related = ('job__job_template', 'host',)
|
||||||
|
|
||||||
def filtered_queryset(self):
|
def filtered_queryset(self):
|
||||||
return self.model.objects.filter(
|
return self.model.objects.filter(
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Generated by Django 2.2.8 on 2020-01-15 18:01
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('main', '0104_v370_cleanup_old_scan_jts'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='jobevent',
|
||||||
|
name='parent',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='jobevent',
|
||||||
|
name='hosts',
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -450,19 +450,6 @@ class JobEvent(BasePlaybookEvent):
|
|||||||
default='',
|
default='',
|
||||||
editable=False,
|
editable=False,
|
||||||
)
|
)
|
||||||
hosts = models.ManyToManyField(
|
|
||||||
'Host',
|
|
||||||
related_name='job_events',
|
|
||||||
editable=False,
|
|
||||||
)
|
|
||||||
parent = models.ForeignKey(
|
|
||||||
'self',
|
|
||||||
related_name='children',
|
|
||||||
null=True,
|
|
||||||
default=None,
|
|
||||||
on_delete=models.SET_NULL,
|
|
||||||
editable=False,
|
|
||||||
)
|
|
||||||
parent_uuid = models.CharField(
|
parent_uuid = models.CharField(
|
||||||
max_length=1024,
|
max_length=1024,
|
||||||
default='',
|
default='',
|
||||||
|
|||||||
Reference in New Issue
Block a user