mirror of
https://github.com/ansible/awx.git
synced 2026-02-18 03:30:02 -03:30
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
# Copyright (c) 2017 Ansible Tower by Red Hat
|
|
# All Rights Reserved.
|
|
|
|
|
|
# Old Insights API -> New API
|
|
#
|
|
# last_check_in is missing entirely, is now provided by a different endpoint
|
|
# reports[] -> []
|
|
# reports[].rule.{description,summary} -> [].rule.{description,summary}
|
|
# reports[].rule.category -> [].rule.category.name
|
|
# reports[].rule.severity (str) -> [].rule.total_risk (int)
|
|
|
|
# reports[].rule.{ansible,ansible_fix} appears to be unused
|
|
# reports[].maintenance_actions[] missing entirely, is now provided
|
|
# by a different Insights endpoint
|
|
|
|
|
|
def filter_insights_api_response(platform_info, reports, remediations):
|
|
severity_mapping = {1: 'INFO', 2: 'WARN', 3: 'ERROR', 4: 'CRITICAL'}
|
|
|
|
new_json = {
|
|
'platform_id': platform_info['id'],
|
|
'last_check_in': platform_info.get('updated'),
|
|
'reports': [],
|
|
}
|
|
for rep in reports:
|
|
new_report = {'rule': {}, 'maintenance_actions': remediations}
|
|
rule = rep.get('rule') or {}
|
|
for k in ['description', 'summary']:
|
|
if k in rule:
|
|
new_report['rule'][k] = rule[k]
|
|
if 'category' in rule:
|
|
new_report['rule']['category'] = rule['category']['name']
|
|
if rule.get('total_risk') in severity_mapping:
|
|
new_report['rule']['severity'] = severity_mapping[rule['total_risk']]
|
|
|
|
new_json['reports'].append(new_report)
|
|
|
|
return new_json
|