mirror of
https://github.com/projectatomic/atomic.git
synced 2026-02-05 18:45:01 +01:00
168 lines
4.8 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
});
|