Name
sn_itom_pattern.CPGConfigureChangeProcessingUtil
Description
CPG Configure Change Processing Utility
Script
var CPGConfigureChangeProcessingUtil = Class.create();
CPGConfigureChangeProcessingUtil.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
checkForActiveMid: function() {
var midServers = this.checkActiveMidServers();
var response = {};
response['midServers'] = midServers;
return JSON.stringify(response);
},
checkActiveMidServers: function() {
var discoveryConfig = new global.CloudDiscoveryScheduleConfig();
var midList = discoveryConfig.getActiveMidsByProvider('azure');
var midServers = midList.midsInfo.length;
if (midServers == 0)
gs.info('Azure Change Processing- No active mid servers found.');
return midServers;
},
disableAlerts: function() {
var serviceAccounts = this.disableactiveAlerts();
var filter = getFilterLink();
var response = {};
response['serviceAccounts'] = serviceAccounts;
response['filter'] = filter;
return JSON.stringify(response);
function getFilterLink() {
return gs.getProperty('glide.servlet.uri') + "syslog_list.do?sysparm_query=sys_created_onONToday@javascript:gs.daysAgoStart(0)@javascript:gs.daysAgoEnd(0)%5EmessageSTARTSWITHAzure%20Changes%20Processing&sysparm_first_row=1&sysparm_view=&sysparm_choice_query_raw=&sysparm_list_header_search=true";
}
},
disableactiveAlerts: function() {
var alertconfigs = new GlideRecord("sn_cmp_azure_alert_configuration");
alertconfigs.addEncodedQuery("active=true");
alertconfigs.query();
var serviceAccounts = "";
while (alertconfigs.next()) {
gs.info("Azure Changes Processing - Disabling alert config " + alertconfigs.subscription.getDisplayValue(), 'Migration_To_Pull_Based');
if (serviceAccounts) {
serviceAccounts += ",";
}
serviceAccounts += alertconfigs.subscription;
alertconfigs.active = "false";
alertconfigs.update();
}
return serviceAccounts;
},
hasRecords: function() {
var alertconfigsGr = new GlideRecord('sn_cmp_azure_alert_configuration');
alertconfigsGr.addEncodedQuery('active=True');
alertconfigsGr.query();
var alertConfigsInfo = {};
if (alertconfigsGr.getRowCount() > 0) {
alertConfigsInfo.url = activeAlertsFilter();
}
var alertConfigs = [];
while (alertconfigsGr.next()) {
var alertConfig = {};
alertConfig.serviceAccount = alertconfigsGr.getDisplayValue('subscription');
alertConfig.resourceGroup = alertconfigsGr.getDisplayValue('resource_group');
alertConfigs.push(alertConfig);
}
alertConfigsInfo.alertConfigs = alertConfigs;
return JSON.stringify(alertConfigsInfo);
function activeAlertsFilter() {
return gs.getProperty('glide.servlet.uri') + "sn_cmp_azure_alert_configuration_list.do?sysparm_query=active%3Dtrue&sysparm_first_row=1&sysparm_view";
}
},
deprecateModule: function() {
var globalUtil = new global.UtilScript();
var azureAlertConfigModule = ['ba57a09807735010a049f1bb4bd30002'];
var values = {
'title': 'Azure Alert Configurations (Deprecated)',
'sys_name': 'Azure Alert Configurations (Deprecated)',
'hint': 'List of Azure Alert Configurations (Deprecated)'
};
if (gs.getProperty('sn_cmp.azure.disable_new_alert_configs')) {
globalUtil.setValuesFromScopedApp('sys_app_module', azureAlertConfigModule, values);
}
return;
},
getServiceAccountsWithPullNotEnabled: function() {
var serviceAccountsGr = new GlideRecord("cmdb_ci_cloud_service_account");
serviceAccountsGr.addEncodedQuery('datacenter_typeSTARTSWITHcmdb_ci_azure_datacenter^should_pull_events=False^parent_account=NULL');
serviceAccountsGr.query();
var serviceAccounts = [];
while (serviceAccountsGr.next()) {
var serviceAccount = {};
serviceAccount['id'] = serviceAccountsGr.sys_id.toString();
serviceAccount['name'] = serviceAccountsGr.name.toString();
serviceAccounts.push(serviceAccount);
}
return JSON.stringify(serviceAccounts);
},
getServiceAccountsWithPullEnabled: function() {
var serviceAccountsGr = new GlideRecord("cmdb_ci_cloud_service_account");
serviceAccountsGr.addEncodedQuery('datacenter_typeSTARTSWITHcmdb_ci_azure_datacenter^should_pull_events=True^parent_account=NULL');
serviceAccountsGr.query();
var serviceAccounts = [];
while (serviceAccountsGr.next()) {
var serviceAccount = {};
serviceAccount['id'] = serviceAccountsGr.sys_id.toString();
serviceAccount['name'] = serviceAccountsGr.name.toString();
serviceAccounts.push(serviceAccount);
}
return JSON.stringify(serviceAccounts);
},
updateShouldPullEvents: function() {
var serviceAccounts = this.getParameter('sysparm_accounts') + '';
var should_pull_events = this.getParameter('sysparm_should_pull_events') + '';
var serviceAccountsList = serviceAccounts.split(",");
var serviceAccountsGr = new GlideRecord('cmdb_ci_cloud_service_account');
for (var i = 0; i < serviceAccountsList.length; i++) {
serviceAccountsGr.get('sys_id', serviceAccountsList[i]);
if (!serviceAccountsGr) {
continue;
}
//update master account should_pull_events if current account is member account
if (!serviceAccountsGr.is_master_account && serviceAccountsGr.parent_account) {
serviceAccountsGr.get(serviceAccountsGr.parent_account);
}
if (serviceAccountsGr.should_pull_events != should_pull_events) {
serviceAccountsGr.setValue('should_pull_events', should_pull_events);
serviceAccountsGr.update();
gs.info("Azure Change Processing - Pull events for Service Account " + serviceAccountsGr.name + " is set to " + should_pull_events);
}
}
return;
},
type: 'CPGConfigureChangeProcessingUtil'
});
Sys ID
af98bb26876bd1507546ed3e0ebb35fe