mirror of
https://github.com/ansible/awx.git
synced 2026-05-10 02:47:36 -02:30
Updating job list api endpoints to be able to display system jobs if you
can see them and any have run
This commit is contained in:
@@ -386,7 +386,7 @@ class UnifiedJobSerializer(BaseSerializer):
|
|||||||
|
|
||||||
def get_types(self):
|
def get_types(self):
|
||||||
if type(self) is UnifiedJobSerializer:
|
if type(self) is UnifiedJobSerializer:
|
||||||
return ['project_update', 'inventory_update', 'job']
|
return ['project_update', 'inventory_update', 'job', 'system_job']
|
||||||
else:
|
else:
|
||||||
return super(UnifiedJobSerializer, self).get_types()
|
return super(UnifiedJobSerializer, self).get_types()
|
||||||
|
|
||||||
@@ -413,6 +413,8 @@ class UnifiedJobSerializer(BaseSerializer):
|
|||||||
serializer_class = InventoryUpdateSerializer
|
serializer_class = InventoryUpdateSerializer
|
||||||
elif isinstance(obj, Job):
|
elif isinstance(obj, Job):
|
||||||
serializer_class = JobSerializer
|
serializer_class = JobSerializer
|
||||||
|
elif isinstance(obj, SystemJob):
|
||||||
|
serializer_class = SystemJobSerializer
|
||||||
if serializer_class:
|
if serializer_class:
|
||||||
serializer = serializer_class(instance=obj)
|
serializer = serializer_class(instance=obj)
|
||||||
ret = serializer.to_native(obj)
|
ret = serializer.to_native(obj)
|
||||||
@@ -444,6 +446,8 @@ class UnifiedJobListSerializer(UnifiedJobSerializer):
|
|||||||
serializer_class = InventoryUpdateListSerializer
|
serializer_class = InventoryUpdateListSerializer
|
||||||
elif isinstance(obj, Job):
|
elif isinstance(obj, Job):
|
||||||
serializer_class = JobListSerializer
|
serializer_class = JobListSerializer
|
||||||
|
elif isinstance(obj, SystemJob):
|
||||||
|
serializer_class = SystemJobListSerializer
|
||||||
if serializer_class:
|
if serializer_class:
|
||||||
serializer = serializer_class(instance=obj)
|
serializer = serializer_class(instance=obj)
|
||||||
ret = serializer.to_native(obj)
|
ret = serializer.to_native(obj)
|
||||||
|
|||||||
@@ -1163,9 +1163,11 @@ class UnifiedJobAccess(BaseAccess):
|
|||||||
project_update_qs = self.user.get_queryset(ProjectUpdate)
|
project_update_qs = self.user.get_queryset(ProjectUpdate)
|
||||||
inventory_update_qs = self.user.get_queryset(InventoryUpdate).filter(source__in=CLOUD_INVENTORY_SOURCES)
|
inventory_update_qs = self.user.get_queryset(InventoryUpdate).filter(source__in=CLOUD_INVENTORY_SOURCES)
|
||||||
job_qs = self.user.get_queryset(Job)
|
job_qs = self.user.get_queryset(Job)
|
||||||
|
system_job_qs = self.user.get_queryset(SystemJob)
|
||||||
qs = qs.filter(Q(ProjectUpdate___in=project_update_qs) |
|
qs = qs.filter(Q(ProjectUpdate___in=project_update_qs) |
|
||||||
Q(InventoryUpdate___in=inventory_update_qs) |
|
Q(InventoryUpdate___in=inventory_update_qs) |
|
||||||
Q(Job___in=job_qs))
|
Q(Job___in=job_qs) |
|
||||||
|
Q(SystemJob___in=system_job_qs))
|
||||||
# FIXME: select/prefetch to optimize!
|
# FIXME: select/prefetch to optimize!
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user