Publish encoded raw XML results of OpenScap scan
Change-Id: I5bac6d93e2c9de54f2c4beb2b141364ca125531e
diff --git a/test-openscap-pipeline.groovy b/test-openscap-pipeline.groovy
index 9a3483c..2ec54e1 100644
--- a/test-openscap-pipeline.groovy
+++ b/test-openscap-pipeline.groovy
@@ -40,11 +40,12 @@
* @param nodeName The node name
* @param reportType Type of the report to create/use, either 'openscap' or 'cve'
* @param reportId Report Id to re-use, if empty report will be created
- * @param results The scanning results as a json file content (string)
+ * @param results The scanning results as a XML file content (string)
* @return reportId The Id of the report created if incoming reportId was empty, otherwise incoming reportId
*/
def uploadResultToDashboard(apiUrl, cloudName, nodeName, reportType, reportId, results) {
def common = new com.mirantis.mk.Common()
+ def mcp_common = new com.mirantis.mcp.Common()
def http = new com.mirantis.mk.Http()
// Yes, we do not care of performance and will create at least 4 requests per each result
@@ -113,12 +114,8 @@
}
// Upload results
- // NOTE(pas-ha) results should already be a dict with 'results' key
- requestData = common.parseJSON(results)
- requestData['node_name'] = nodeName
- common.infoMsg("First result in results to PUT is ${requestData['results'][0]}")
- // NOTE(pas-ha) not logging whole results to be sent, is too large and just spams the logs
- common.infoMsg("Making PUT to ${worpApi.url}/reports/${reportType}/${reportId}/ with node name ${requestData['node_name']} and results")
+ requestData = [node_name: nodeName, xmlgzb64: mcp_common.zipBase64(results)]
+ common.infoMsg("Making PUT to ${worpApi.url}/reports/${reportType}/${reportId}/ with node name ${requestData['node_name']} and encoded raw results")
http.restCall(worpApi, "/reports/${reportType}/${reportId}/", "PUT", requestData)
return reportId
}
@@ -247,7 +244,7 @@
cloudName = salt.getGrain(pepperEnv, minion, 'domain')['return'][0].values()[0].values()[0]
}
try {
- def nodeResults = readFile "${benchmarkResultsDir}/results.json"
+ def nodeResults = readFile "${benchmarkResultsDir}/results.xml"
reportId = uploadResultToDashboard(DASHBOARD_API_URL, cloudName, minion, reportType, reportId, nodeResults)
common.infoMsg("Report ID is ${reportId}.")
} catch (Exception e) {