Remove event hosts relationship

and parent event-event ForeignKey relationship
This commit is contained in:
AlanCoding 2020-01-15 10:22:58 -05:00
parent f911fb2046
commit 9a420820eb
No known key found for this signature in database
GPG Key ID: FD2C3C012A72926B
5 changed files with 30 additions and 22 deletions

View File

@ -3825,7 +3825,7 @@ class JobEventSerializer(BaseSerializer):
model = JobEvent
fields = ('*', '-name', '-description', 'job', 'event', 'counter',
'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',
'verbosity')
@ -3834,13 +3834,9 @@ class JobEventSerializer(BaseSerializer):
res.update(dict(
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})
if 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
def get_summary_fields(self, obj):

View File

@ -3814,6 +3814,12 @@ class JobEventHostsList(HostRelatedSearchMixin, SubListAPIView):
relationship = 'hosts'
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):
@ -3836,8 +3842,7 @@ class HostJobEventsList(BaseJobEventsList):
def get_queryset(self):
parent_obj = self.get_parent_object()
self.check_parent_access(parent_obj)
qs = self.request.user.get_queryset(self.model).filter(
Q(host=parent_obj) | Q(hosts=parent_obj)).distinct()
qs = self.request.user.get_queryset(self.model).filter(host=parent_obj)
return qs
@ -3855,7 +3860,6 @@ class JobJobEventsList(BaseJobEventsList):
self.check_parent_access(job)
qs = job.job_events
qs = qs.select_related('host')
qs = qs.prefetch_related('hosts', 'children')
return qs.all()

View File

@ -2238,7 +2238,7 @@ class JobEventAccess(BaseAccess):
'''
model = JobEvent
prefetch_related = ('hosts', 'job__job_template', 'host',)
prefetch_related = ('job__job_template', 'host',)
def filtered_queryset(self):
return self.model.objects.filter(

View File

@ -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',
),
]

View File

@ -450,19 +450,6 @@ class JobEvent(BasePlaybookEvent):
default='',
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(
max_length=1024,
default='',