Esempio n. 1
0
    def render(self, reports_dict, media_type=None, renderer_context=None):
        """Render all reports as gzip."""
        # pylint: disable=arguments-differ,unused-argument,too-many-locals
        # pylint: disable=too-many-branches,too-many-statements
        if not bool(reports_dict):
            return None

        files_data = dict()

        report_id = reports_dict.get('report_id')
        # Collect Json Data
        details_json = reports_dict.get('details_json')
        deployments_json = reports_dict.get('deployments_json')
        if any(value is None
               for value in [report_id, details_json, deployments_json]):
            return None
        details_name = create_filename('details', 'json', report_id)
        files_data[details_name] = details_json
        deployments_name = create_filename('deployments', 'json', report_id)
        files_data[deployments_name] = deployments_json
        # Collect CSV Data
        details_csv = create_details_csv(details_json)
        deployments_csv = create_deployments_csv(deployments_json)
        if any(value is None for value in [details_csv, deployments_json]):
            return None
        details_csv_name = create_filename('details', 'csv', report_id)
        files_data[details_csv_name] = details_csv
        deployments_csv_name = create_filename('deployments', 'csv', report_id)
        files_data[deployments_csv_name] = deployments_csv
        tar_buffer = create_tar_buffer(files_data)
        if tar_buffer is None:
            logger.error(messages.REPORTS_TAR_ERROR)
            return None
        return tar_buffer
    def render(self,
               data,
               accepted_media_type=None,
               renderer_context=None):
        """Render all reports as gzip."""
        # pylint: disable=too-many-locals
        reports_dict = data
        if not bool(reports_dict):
            return None
        report_id = reports_dict.get('report_id')
        # Collect Json Data
        details_json = reports_dict.get('details_json')
        deployments_json = reports_dict.get('deployments_json')
        if any(value is None for value in [report_id,
                                           details_json,
                                           deployments_json]):
            return None

        # Collect CSV Data
        details_csv = create_details_csv(details_json)
        deployments_csv = create_deployments_csv(deployments_json)
        if any(value is None for value in [details_csv, deployments_csv]):
            return None

        # grab hashes
        details_json_hash = create_hash(details_json, 'json')
        deployments_json_hash = create_hash(deployments_json, 'json')
        details_csv_hash = create_hash(details_csv, 'csv')
        deployments_csv_hash = create_hash(deployments_csv, 'csv')

        # create the file names
        details_json_name = create_filename('details', 'json', report_id)
        deployments_json_name = create_filename(
            'deployments', 'json', report_id)
        details_csv_name = create_filename('details', 'csv', report_id)
        deployments_csv_name = create_filename('deployments', 'csv', report_id)
        sha256sum_name = create_filename('SHA256SUM', None, report_id)

        # map the file names to the file data
        files_data = {
            details_json_name: details_json,
            deployments_json_name: deployments_json,
            details_csv_name: details_csv,
            deployments_csv_name: deployments_csv,
            sha256sum_name:
                details_json_hash + '  details.json\n' +
                deployments_json_hash + '  deployments.json\n' +
                details_csv_hash + '  details.csv\n' +
                deployments_csv_hash + '  deployments.csv'
        }

        tar_buffer = create_tar_buffer(files_data)
        if tar_buffer is None:
            logger.error(messages.REPORTS_TAR_ERROR)
            return None
        return tar_buffer
Esempio n. 3
0
 def render(self,
            data,
            accepted_media_type=None,
            renderer_context=None):
     """Render report as CSV."""
     return create_deployments_csv(data, renderer_context.get('request'))
Esempio n. 4
0
 def render(self, report_dict, media_type=None, renderer_context=None):
     """Render report as CSV."""
     # pylint: disable=arguments-differ,unused-argument,too-many-locals
     return create_deployments_csv(report_dict)