def get_job_report()

in src/services/report_service.py [0:0]


    def get_job_report(self, job: Job, detailed=None, customer=None,
                       cloud=None, tenant=None, region=None, instance_id=None):
        _LOG.debug(f'Describing job storage')
        job_storage = self.get_job_storage(job=job)

        job_results = self.storage_service.download_job_results(
            storage=job_storage,
            job_id=job.id,
            customer=customer,
            cloud=cloud,
            tenant=tenant,
            region=region,
        )
        _LOG.debug(f'Job results: {job_results}')

        if instance_id:
            _LOG.debug(f'Filtering job results by instance id: {instance_id}')
            job_results = [item for item in job_results
                           if item.get('instance_id') == instance_id]

        if detailed:
            _LOG.debug(f'Returning detailed results')
            return job_results

        _LOG.debug(f'Reformatting job results')
        reformatted = []
        for instance_data in job_results:
            instance_data = {k: v for k, v in instance_data.items()
                             if k in RESULT_INSTANCE_ATTRIBUTES}
            recommendation = instance_data.pop(REPORT_RECOMMENDATION_ATTR, None)
            recommendation = {k:v for k, v in recommendation.items()
                              if k in RECOMMENDATION_ATTRIBUTES}
            if not recommendation or not isinstance(recommendation, dict):
                return
            sizes = recommendation.get('recommended_shapes', [])
            size_names = [item['name'] for item in sizes]
            recommendation['recommended_shapes'] = size_names

            schedule = recommendation.get('schedule')
            readable_schedules = [self.get_readable_schedule(item)
                                  for item in schedule]
            readable_schedules = [schedule for schedule in readable_schedules
                                  if schedule]
            recommendation['schedule'] = readable_schedules
            instance_data.update(recommendation)
            _LOG.debug(f'Instance recommendation \'{instance_data}\'')
            reformatted.append(instance_data)
        _LOG.debug(f'Reformatted job results: \'{job_results}\'')
        return reformatted