Name
global.CMDBQueryUtilsBase
Description
This script include contains functionalities for performing operations with CMDB query
Script
var CMDBQueryUtilsBase = Class.create();
CMDBQueryUtilsBase.prototype = {
initialize: function() {},
getCMDBQueryExecutionDetails: function(queryName, timeoutSec) {
var response = null;
var defaultTimeout = gs.getProperty("glide.cmdb.query.batch_time_limit_in_sec", 300);
if (!timeoutSec) timeoutSec = defaultTimeout;
if (!gs.nil(queryName)) {
response = SNC.CMDBQueryBuilderAPI.getSavedQueryExecutionDetails(queryName, true, timeoutSec);
}
return String(response);
},
deleteCMDBQuery: function(queryId) {
if (!gs.nil(queryId)) {
this._deleteCMDBQuery(queryId);
}
},
deleteCMDBGroup: function(groupId) {
if (!gs.nil(groupId)) {
this._deleteAllAssociatedCMDBQueries(groupId);
this._deleteCMDBGroup(groupId);
}
},
deleteRecords: function(table) {
var grResultTable = new GlideRecord(table);
grResultTable.query();
grResultTable.setWorkflow(false);
grResultTable.deleteMultiple();
},
_deleteAllAssociatedCMDBQueries: function(groupId) {
var grGroupToQueryMapper = new GlideRecord('cmdb_group_contains_qb_query');
grGroupToQueryMapper.addQuery('group', groupId);
grGroupToQueryMapper.query();
while (grGroupToQueryMapper.next()) {
this._deleteCMDBQuery(grGroupToQueryMapper.getValue('qb_query'));
}
},
_deleteCMDBGroup: function(groupId) {
var grCmdbGroup = new GlideRecord('cmdb_group');
if (grCmdbGroup.canDelete() && grCmdbGroup.get(groupId)) {
grCmdbGroup.deleteRecord();
}
},
_deleteCMDBQuery: function(queryId) {
var resultTable = this._getQueryResultTableName(queryId);
if (!gs.nil(resultTable)) {
new global.TableUtils().dropAndClean(resultTable);
}
var grQuery = new GlideRecord('qb_saved_query');
if (grQuery.canDelete() && grQuery.get(queryId)) {
grQuery.deleteRecord();
}
},
_getQueryResultTableName: function(newQueryId) {
var name = '';
var glideRecord = new GlideRecord('cmdb_qb_table_mapping');
glideRecord.addQuery('query', newQueryId);
glideRecord.setLimit(1);
glideRecord.query();
if (glideRecord.next()) {
name = glideRecord.getValue('table_name');
}
return name;
},
type: 'CMDBQueryUtilsBase'
};
Sys ID
b3d5619b0720301054685d3f0ad300fb