Skip to content
This repository has been archived by the owner on Feb 3, 2023. It is now read-only.

Commit

Permalink
Fix Issue #276
Browse files Browse the repository at this point in the history
- Migration of logical group add and remove member
  • Loading branch information
guilhemmarchand committed Mar 6, 2021
1 parent 98f10a7 commit ad2b493
Showing 1 changed file with 87 additions and 173 deletions.
260 changes: 87 additions & 173 deletions trackme/default/data/ui/html/TrackMe.html
Original file line number Diff line number Diff line change
Expand Up @@ -18328,6 +18328,8 @@ <h2 class="panel-title">Search for audit changes:</h2>
if (e.field !== undefined) {
e.preventDefault();

setToken("tk_keyid", TokenUtils.replaceTokenNames("$row.keyid$", _.extend(submittedTokenModel.toJSON(), e.data)));

// Enable modal context
$("#confirm_remove_from_logical_group").modal();

Expand Down Expand Up @@ -35299,104 +35301,60 @@ <h2 class="panel-title">Search for audit changes:</h2>

var input_object = tokens.get("input_object");
var input_object_category = tokens.get("input_object_category");


// Define the query
var searchQuery = "| inputlookup trackme_logical_group | mvexpand object_group_members | where object_group_members!=\"" + input_object + "\" | stats values(*) as \"*\" by object_group_name | outputlookup trackme_logical_group";


// Set the search parameters--specify a time range
var searchParams = {
earliest_time: "-60m",
latest_time: "now"
};
var tk_keyid = tokens.get("tk_keyid");

if (input_object && input_object.length) {

// Run a blocking search and get back a job
service.search(
searchQuery,
searchParams,
function(err, job) {

function audit_failure() {

// Audit
action = "failure";
change_type = "Logical group removal";
object = input_object;
object_category = input_object_category;
object_attrs = "object:" + input_object + " has been removed from Logical group. ";
result = "N/A";
comment = "N/A";
auditRecord(action, change_type, object, object_category, object_attrs, result, comment);

}
// Create the endpoint URL
var myendpoint_URl = "{{SPLUNKWEB_URL_PREFIX}}/splunkd/__raw/services/trackme/v1/logical_groups/logical_groups_unassociate";

// Shall the search fail before we can get properties
if (job == null) {
let errorStr = "Unknown Error!";
if (err && err.data && err.data.messages && err.data.messages[0]['text']) {
errorStr = err.data.messages[0]['text'];
} else if (err && err.data && err.data.messages) {
errorStr = JSON.stringify(err.data.messages);
}
audit_failure();
$("#modal_update_collection_failure_return").find('.modal-error-message p').text(errorStr);
$("#modal_update_collection_failure_return").modal()
} else {
// Create a dictionary to store the field names and values
var record = {
"object": input_object,
"key": tk_keyid,
"update_comment": "N/A"
};

// Poll the status of the search job
job.track({
period: 200
}, {
done: function(job) {
// show disabled modal
$("#logical_group_removal_achieved").modal()
$.ajax({
url: myendpoint_URl,
type: "POST",
async: true,
contentType: "application/json",
dataType: "text",
data: JSON.stringify(record),
success: function(returneddata) {

if (input_object_category === "data_source") {
searchDataSourcesMain.startSearch();
}
else if (input_object_category === "data_host") {
searchDataHostsMain.startSearch();
}
else if (input_object_category === "metric_host") {
searchMetricHostsMain.startSearch();
}
// show disabled modal
$("#logical_group_removal_achieved").modal()

// Audit
action = "success";
change_type = "Logical group removal";
object = input_object;
object_category = input_object_category;
object_attrs = "object:" + input_object + " has been removed from Logical group. ";
result = "N/A";
comment = "N/A";
auditRecord(action, change_type, object, object_category, object_attrs, result, comment);
if (input_object_category === "data_source") {
searchDataSourcesMain.startSearch();
}
else if (input_object_category === "data_host") {
searchDataHostsMain.startSearch();
}
else if (input_object_category === "metric_host") {
searchMetricHostsMain.startSearch();
}

},
failed: function(properties) {
let errorStr = "Unknown Error!";
if (properties && properties._properties && properties._properties.messages && properties._properties.messages[0]['text']) {
errorStr = properties._properties.messages[0]['text'];
} else if (properties && properties._properties && properties._properties.messages) {
errorStr = JSON.stringify(properties._properties.messages);
}
audit_failure();
$("#modal_update_collection_failure_return").find('.modal-error-message p').text(errorStr);
$("#modal_update_collection_failure_return").modal()
},
error: function(err) {
done(err);
audit_failure();
$("#modal_update_collection_failure_flush").modal()
}
});
},
error: function(xhr, textStatus, error) {
message = "server response: " + xhr.responseText + "\n - http response: " + error;

}
// Audit
action = "failure";
change_type = "Logical group removal";
object = input_object;
object_category = input_object_category;
object_attrs = "object:" + input_object + " has been removed from Logical group. ";
result = "N/A";
comment = "N/A";
auditRecord(action, change_type, object, object_category, object_attrs, result, comment);

$("#modal_update_collection_failure_return").find('.modal-error-message p').text(message);
$("#modal_update_collection_failure_return").modal()
}
);
});

// house cleaning
myendpoint_URl = undefined;
Expand Down Expand Up @@ -35450,102 +35408,58 @@ <h2 class="panel-title">Search for audit changes:</h2>
// from click
var tk_object_group_name = tokens.get("tk_object_group_name");

// Define the query
var searchQuery = "| inputlookup trackme_logical_group | eval keyid=_key | mvexpand object_group_members | append [ | makeresults | eval keyid=\"" + tk_keyid + "\", object_group_members=\"" + input_object + "\", object_group_name=\"" + tk_object_group_name + "\", object_group_mtime=now() ] | stats values(object_group_members) as object_group_members, first(object_group_name) as object_group_name, first(object_group_min_green_percent) as object_group_min_green_percent, max(object_group_mtime) as object_group_mtime by keyid | outputlookup trackme_logical_group append=t key_field=keyid";


// Set the search parameters--specify a time range
var searchParams = {
earliest_time: "-60m",
latest_time: "now"
};

if (input_object && input_object.length) {

// Run a blocking search and get back a job
service.search(
searchQuery,
searchParams,
function(err, job) {

function audit_failure() {

// Audit
action = "failure";
change_type = "Logical group add membership";
object = input_object;
object_category = input_object_category;
object_attrs = "object:" + input_object + " has been added to the logical group " + tk_object_group_name + ".";
result = "N/A";
comment = "N/A";
auditRecord(action, change_type, object, object_category, object_attrs, result, comment);

}
// Create the endpoint URL
var myendpoint_URl = "{{SPLUNKWEB_URL_PREFIX}}/splunkd/__raw/services/trackme/v1/logical_groups/logical_groups_associate_group";

// Shall the search fail before we can get properties
if (job == null) {
let errorStr = "Unknown Error!";
if (err && err.data && err.data.messages && err.data.messages[0]['text']) {
errorStr = err.data.messages[0]['text'];
} else if (err && err.data && err.data.messages) {
errorStr = JSON.stringify(err.data.messages);
}
audit_failure();
$("#modal_update_collection_failure_return").find('.modal-error-message p').text(errorStr);
$("#modal_update_collection_failure_return").modal()
} else {
// Create a dictionary to store the field names and values
var record = {
"object": input_object,
"key": tk_keyid,
"update_comment": "N/A"
};

// Poll the status of the search job
job.track({
period: 200
}, {
done: function(job) {
// show disabled modal
$("#logical_group_add_member_achieved").modal()
$.ajax({
url: myendpoint_URl,
type: "POST",
async: true,
contentType: "application/json",
dataType: "text",
data: JSON.stringify(record),
success: function(returneddata) {

if (input_object_category === "data_source") {
searchDataSourcesMain.startSearch();
}
else if (input_object_category === "data_host") {
searchDataHostsMain.startSearch();
}
else if (input_object_category === "metric_host") {
searchMetricHostsMain.startSearch();
}
// show disabled modal
$("#logical_group_add_member_achieved").modal()

// Audit
action = "success";
change_type = "Logical group add membership";
object = input_object;
object_category = input_object_category;
object_attrs = "object:" + input_object + " has been added to the logical group " + tk_object_group_name + ".";
result = "N/A";
comment = "N/A";
auditRecord(action, change_type, object, object_category, object_attrs, result, comment);
if (input_object_category === "data_source") {
searchDataSourcesMain.startSearch();
}
else if (input_object_category === "data_host") {
searchDataHostsMain.startSearch();
}
else if (input_object_category === "metric_host") {
searchMetricHostsMain.startSearch();
}

},
failed: function(properties) {
let errorStr = "Unknown Error!";
if (properties && properties._properties && properties._properties.messages && properties._properties.messages[0]['text']) {
errorStr = properties._properties.messages[0]['text'];
} else if (properties && properties._properties && properties._properties.messages) {
errorStr = JSON.stringify(properties._properties.messages);
}
audit_failure();
$("#modal_update_collection_failure_return").find('.modal-error-message p').text(errorStr);
$("#modal_update_collection_failure_return").modal()
},
error: function(err) {
done(err);
audit_failure();
$("#modal_update_collection_failure_flush").modal()
}
});
},
error: function(xhr, textStatus, error) {
message = "server response: " + xhr.responseText + "\n - http response: " + error;

}
// Audit
action = "failure";
change_type = "Logical group add membership";
object = input_object;
object_category = input_object_category;
object_attrs = "object:" + input_object + " has been added to the logical group " + tk_object_group_name + ".";
result = "N/A";
comment = "N/A";
auditRecord(action, change_type, object, object_category, object_attrs, result, comment);

$("#modal_update_collection_failure_return").find('.modal-error-message p').text(message);
$("#modal_update_collection_failure_return").modal()
}
);
});

// house cleaning
myendpoint_URl = undefined;
Expand Down

0 comments on commit ad2b493

Please sign in to comment.