Ivan Suzdal | 6d443fd | 2018-09-17 17:52:00 +0400 | [diff] [blame] | 1 | package com.mirantis.mk |
| 2 | |
| 3 | /** |
| 4 | * Run salt oscap.eval xccdf |
| 5 | * |
| 6 | * @param target the target where the benchmark will be evaluated |
| 7 | * @param evaltype what to evaluate (xccdf or oval) |
| 8 | * @param benchmark the benchmark which will be evaluated by openscap |
| 9 | * @param resultsDir the directory where artifacts will be moved |
| 10 | * @param profile the XCCDF profile name |
| 11 | * @param xccdfVersion XCCDF benchmark version (default 1.2) |
| 12 | * @param tailoringId The id of your tailoring data (from the corresponding pillar) |
| 13 | */ |
| 14 | def openscapEval(master, target, evaltype, benchmark, resultsDir, profile = 'default', xccdfVersion = '1.2', tailoringId = 'None') { |
| 15 | def salt = new com.mirantis.mk.Salt() |
| 16 | def common = new com.mirantis.mk.Common() |
| 17 | salt.runSaltProcessStep(master, target, 'oscap.eval', [evaltype, benchmark, results_dir = resultsDir, profile = profile, xccdf_version = xccdfVersion, tailoring_id= tailoringId]) |
| 18 | } |
| 19 | |
| 20 | /** |
| 21 | * Upload results to the security dashboard |
| 22 | * |
| 23 | * @param apiUrl the security dashboard url |
| 24 | * @param file the file to upload |
| 25 | * @param cloud_name the cloud_name |
| 26 | * @param nodename the scanned node name |
| 27 | */ |
| 28 | def uploadScanResultsToDashboard(apiUrl, results, cloud_name, nodename) { |
| 29 | def common = new com.mirantis.mk.Common() |
| 30 | def http = new com.mirantis.mk.Http() |
| 31 | def data = [:] |
| 32 | |
| 33 | // Skip authorization until there is no authorization in the worp |
| 34 | |
| 35 | // Get cloud_id |
| 36 | data['name'] = cloud_name |
| 37 | def cloudId = common.parseJSON(http.sendHttpPostRequest(apiUrl+'/environment', data))['id'] |
| 38 | // Get report_id |
| 39 | data['env_uuid'] = cloudId |
| 40 | def reportId = common.parseJSON(http.sendHttpPostRequest(apiUrl+'/reports/openscap/', data))['id'] |
| 41 | |
| 42 | // Create node |
| 43 | def nodes = [] |
| 44 | nodes.add[nodename] |
| 45 | data['nodes'] = nodes |
| 46 | http.sendHttpPostRequest(apiUrl+'/environment/'+cloudId+'/nodes', data) |
| 47 | |
| 48 | // Upload results |
| 49 | data['results'] = results |
| 50 | data['node'] = nodename |
| 51 | http.sendHttpPostRequest(apiUrl+'/reports/openscap/'+reportId, data) |
| 52 | } |