blob: 1841f1674d463058f4e80809afdea48ebf4b49f4 [file] [log] [blame]
package com.mirantis.mk
/**
* Run salt oscap.eval xccdf
*
* @param target the target where the benchmark will be evaluated
* @param evaltype what to evaluate (xccdf or oval)
* @param benchmark the benchmark which will be evaluated by openscap
* @param resultsDir the directory where artifacts will be moved
* @param profile the XCCDF profile name
* @param xccdfVersion XCCDF benchmark version (default 1.2)
* @param tailoringId The id of your tailoring data (from the corresponding pillar)
*/
def openscapEval(master, target, evaltype, benchmark, resultsDir, profile = 'default', xccdfVersion = '1.2', tailoringId = 'None') {
def salt = new com.mirantis.mk.Salt()
def common = new com.mirantis.mk.Common()
salt.runSaltProcessStep(master, target, 'oscap.eval', [evaltype, benchmark, results_dir = resultsDir, profile = profile, xccdf_version = xccdfVersion, tailoring_id= tailoringId])
}
/**
* Upload results to the security dashboard
*
* @param apiUrl the security dashboard url
* @param file the file to upload
* @param cloud_name the cloud_name
* @param nodename the scanned node name
*/
def uploadScanResultsToDashboard(apiUrl, results, cloud_name, nodename) {
def common = new com.mirantis.mk.Common()
def http = new com.mirantis.mk.Http()
def data = [:]
// Skip authorization until there is no authorization in the worp
// Get cloud_id
data['name'] = cloud_name
def cloudId = common.parseJSON(http.sendHttpPostRequest(apiUrl+'/environment', data))['id']
// Get report_id
data['env_uuid'] = cloudId
def reportId = common.parseJSON(http.sendHttpPostRequest(apiUrl+'/reports/openscap/', data))['id']
// Create node
def nodes = []
nodes.add[nodename]
data['nodes'] = nodes
http.sendHttpPostRequest(apiUrl+'/environment/'+cloudId+'/nodes', data)
// Upload results
data['results'] = results
data['node'] = nodename
http.sendHttpPostRequest(apiUrl+'/reports/openscap/'+reportId, data)
}