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
def render(self, data, accepted_media_type=None, renderer_context=None): """Render report as CSV.""" return create_deployments_csv(data, renderer_context.get('request'))
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)