';
var alert_div_webtail = '
';
var kubelinter = '';
var showPodName = true
var latestPodNameY = '';
var namespacesJumpFlag = false;
var namespacesJumpStaus = 'Disabled';
function IsJsonString(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (a[i] === obj) {
return true;
}
}
return false;
}
function getMetrics() {
var oReq = new XMLHttpRequest();
oReq.onload = function () {
//console.log(this.responseText);
var lines = this.responseText.split('\n');
for (var i = 0;i < lines.length;i++){
metric = lines[i].split(' ');
if (metric[0] == "chaos_node_jobs_total") {
chaos_jobs_total
$('#chaos_jobs_total').text(metric[1]);
}
else if (metric[0] == "deleted_pods_total") {
$('#deleted_pods_total').text(metric[1]);
}
else if (metric[0] == "fewer_replicas_seconds") {
$('#fewer_replicas_seconds').text(metric[1]);
}
else if (metric[0] == "latest_fewer_replicas_seconds") {
$('#latest_fewer_replicas_seconds').text(metric[1]);
}
else if (metric[0] == "pods_not_running_on_selected_ns") {
$('#pods_not_running_on').text(metric[1]);
}
else if (metric[0] == "current_chaos_job_pod") {
$('#current_chaos_job_pod').text(metric[1]);
}
}
};;
oReq.open("GET", "https://" + clu_endpoint + "/metrics");
oReq.send();
}
function getChaosJobsLogs() {
var oReq = new XMLHttpRequest();
oReq.onreadystatechange = function () {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
if (programming_mode_switch) {
document.getElementById("chaosJobLogsDiv").innerHTML = "";
document.getElementById("chaosJobLogsDiv").innerHTML = this.responseText;
}
if (log_tail_switch) {
document.getElementById("logTailDiv").innerHTML = "";
document.getElementById("logTailDiv").innerHTML = this.responseText;
}
}
};;
oReq.open("GET", "https://" + clu_endpoint + "/chaoslogs-" + random_code + ".html");
oReq.send();
}
function runKubeLinter() {
$('#kubeLinterModal').modal('show');
modal_opened = true;
var oReq = new XMLHttpRequest();
oReq.onload = function () {
kubelinter = this.responseText;
result_parsed = JSON.stringify(JSON.parse(kubelinter), null, 4);
$('#currentKubeLinterResult').text(result_parsed);
};;
oReq.open("GET", "https://" + clu_endpoint + "/kube/kube-linter?namespace=" + namespace);
oReq.send();
}
function getNamespaces() {
var oReq = new XMLHttpRequest();
oReq.onload = function () {
namespaces = this.responseText;
namespaces = namespaces.split(",");
namespace = namespaces[namespaces_index];
};;
oReq.open("GET", "https://" + clu_endpoint + "/kube/namespaces");
oReq.send();
}
function getEndpoint() {
var oReq = new XMLHttpRequest();
oReq.onload = function () {
endpoint = this.responseText;
};;
oReq.open("GET", "https://" + clu_endpoint + "/kube/endpoint");
oReq.send();
}
function getCurrentChaosContainer() {
var oReq = new XMLHttpRequest();
oReq.onload = function () {
//console.log(this.responseText);
job_parsed = JSON.stringify(JSON.parse(this.responseText), null, 4);
$('#currentChaosContainerYaml').text(job_parsed);
$('#currentChaosContainerJsonTextArea').val(job_parsed);
};;
oReq.open("GET", "https://" + clu_endpoint + "/kube/chaos/containers?action=container_definition");
oReq.send();
}
function enableLogTail() {
var oReq = new XMLHttpRequest();
oReq.open("POST", "https://" + clu_endpoint + "/kube/chaos/containers?action=enable_log_tail&id=" + random_code, true);
oReq.onreadystatechange = function () {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
$('#alert_placeholder3').replaceWith(log_tail_alert + 'Logs tail started
');
}
};;
oReq.setRequestHeader("Content-Type", "application/json");
// TODO: send payload for auth...
oReq.send("foobar");
}
function disableLogTail() {
var oReq = new XMLHttpRequest();
oReq.open("POST", "https://" + clu_endpoint + "/kube/chaos/containers?action=disable_log_tail&id=" + random_code, true);
oReq.onreadystatechange = function () {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
$('#alert_placeholder3').replaceWith(log_tail_alert + 'Logs tail stopped
');
}
};;
oReq.setRequestHeader("Content-Type", "application/json");
// TODO: send payload for auth...
oReq.send("foobar");
}
function setLogRegex() {
log_tail_div.style.display = "block";
$('#alert_placeholder3').replaceWith(log_tail_alert + 'Setting regex for filtering log source (by pod name)