1
0
mirror of https://github.com/projectatomic/atomic.git synced 2026-02-05 18:45:01 +01:00
Files
atomic/tests/atomic-client.js
AmartC 3be035f415 Handle cases where container does not have a Status key
Minor fixes in scan

Closes: #512
Approved by: rhatdan
2016-08-04 14:28:08 +00:00

168 lines
4.8 KiB
JavaScript

require([
"jquery",
"base1/cockpit",
], function($, cockpit) {
var input = $("#new");
var service = cockpit.dbus("org.atomic");
var proxy = service.proxy("org.atomic", "/org/atomic/object");
proxy.wait(function () {
if (!proxy.valid) {
$('#ui').hide();
$('#curtain').show();
}
else {
run_scan_list();
}
$('body').show();
});
$("#Run").on("click", run_request);
function run_scan_list() {
var call = proxy.ScanList();
call.done(function(result) {
response = JSON.parse(result);
for (var i = 0; i < response.length; i++) {
var radio = document.createElement('input');
radio.type = "radio";
radio.setAttribute("name", "scanner");
radio.setAttribute("value", response[i]["scanner_name"]);
var label = document.createElement('label')
label.htmlFor = "id";
label.appendChild(document.createTextNode(response[i]["scanner_name"]));
document.body.appendChild(radio);
document.body.appendChild(label);
scanned_list = response[i]["scans"];
for (var j = 0; j < scanned_list.length; j++) {
var radio_type = document.createElement('input');
radio_type.type = "radio";
radio_type.setAttribute("name", "scan_type");
radio_type.setAttribute("value", scanned_list[j]["name"]);
label = document.createElement('label')
label.htmlFor = "id";
label.appendChild(document.createTextNode(scanned_list[j]["name"]));
document.body.appendChild(radio_type);
document.body.appendChild(label);
}
}
run_images();
});
call.fail(function(error) {
console.warn(error);
});
}
function run_request() {
var scan_targets = [];
$('input[name="image"]:checked').each(function() {
scan_targets.push($(this).val());
});
if(typeof scan_targets == "undefined") {
scan_targets = [];
}
var scanner = $('input[name="scanner"]:checked').val();
if(typeof scanner == "undefined") {
scanner = '';
}
var scan_type = $('input[name="scan_type"]:checked').val();
if(typeof scan_type == "undefined") {
scan_type = '';
}
run_scan(scan_targets, scanner, scan_type)
}
function run_scan_async(scan_targets, scanner, scan_type) {
var call = proxy.ScheduleScan(scan_targets, scanner, scan_type, rootfs, false, false, false);
call.done(function(result) {
while(true){
NewCall = proxy.GetScanResults(result);
NewCall.done(function(data) {
if(data.length > 0) {
console.log(data);
}
});
}
});
call.fail(function(error) {
console.warn(error);
});
}
function run_scan(scan_targets, scanner, scan_type) {
var call;
call = proxy.Scan(scan_targets, scanner, scan_type, [], false, false, false)
call.done(function(result) {
var label = document.createElement('label')
label.htmlFor = "id";
label.appendChild(document.createTextNode(JSON.stringify(result)));
document.body.appendChild(label);
});
call.fail(function(error) {
console.warn(error);
});
}
function run_vulnerable_info() {
var call = proxy.VulnerableInfo();
call.done(function(result) {
console.log(result);
});
call.fail(function(error) {
console.warn(error);
});
}
function run_update(image) {
var call = proxy.Update(image);
call.done(function() {
console.log("Success");
});
call.fail(function(error) {
console.warn(error);
});
}
function run_images() {
var call = proxy.Images();
var text = "Repository Last Scanned\n";
call.done(function(result) {
response = JSON.parse(result);
for (var i = 0; i < response.length; i++) {
text += response[i]["repo"] + " ";
var checkbox = document.createElement('input');
checkbox.type = "checkbox";
checkbox.setAttribute("name", "image");
checkbox.setAttribute("value", response[i]["repo"]);
var label = document.createElement('label')
label.htmlFor = "id";
label.appendChild(document.createTextNode(response[i]["repo"]));
document.body.appendChild(checkbox);
document.body.appendChild(label);
if ("Time" in response[i]["vuln_info"]) {
text += response[i]["vuln_info"]["Time"] + " ";
}
if(response[i]["vulnerable"]) {
text += "*\n";
}
else {
text += "\n";
}
}
label = document.createElement('label');
label.htmlFor = "id";
label.appendChild(document.createTextNode(text));
document.body.appendChild(label);
});
call.fail(function(error) {
console.warn(error);
});
}
});