Added ‘launched_by’ property and ‘ancestor_job’ property in UnifiedJob class

'launched_by’ property returns summary  { id,type,name,url } of object that launched the current UnifiedJob
'ancestor_job’ property returns summary { id,type,name,url } of the first workflow in case the current UnifiedJob was started by a workflow or a workflow chain
Added ‘launched_by’ field and ‘get_launched_by’ function in ‘UnifiedJobSerializer’ , to expose the ‘launched_by’ field in GET ‘api/v2/unified_job/id’ response
Added ‘ancestor_job’ field in the summary field of UnifiedJob in the GET ‘api/v2/unified_job/id’ response
This commit is contained in:
fedora
2021-02-01 11:43:50 -05:00
parent 633f5419e0
commit e7e18b854f
2 changed files with 43 additions and 0 deletions

View File

@@ -734,6 +734,7 @@ class UnifiedJobSerializer(BaseSerializer):
class Meta:
model = UnifiedJob
fields = (
'*',
'unified_job_template',
@@ -753,7 +754,9 @@ class UnifiedJobSerializer(BaseSerializer):
'controller_node',
'result_traceback',
'event_processing_finished',
'launched_by',
)
extra_kwargs = {
'unified_job_template': {'source': 'unified_job_template_id', 'label': 'unified job template'},
'job_env': {'read_only': True, 'label': 'job_env'},
@@ -799,6 +802,16 @@ class UnifiedJobSerializer(BaseSerializer):
if val is not None:
summary_fields['source_workflow_job'][field] = val
if self.is_detail_view:
ancestor = obj.ancestor_job
if ancestor != obj:
summary_fields['ancestor_job'] = {
'id': ancestor.id,
'name': ancestor.name,
'type': get_type_for_model(ancestor),
'url': ancestor.get_absolute_url(),
}
return summary_fields
def get_sub_serializer(self, obj):
@@ -843,6 +856,10 @@ class UnifiedJobSerializer(BaseSerializer):
ret['job_explanation'] = _(obj.job_explanation)
return ret
def get_launched_by(self, obj):
if obj is not None:
return obj.launched_by
class UnifiedJobListSerializer(UnifiedJobSerializer):
class Meta: