Name
sn_capi.CAPIUtils
Description
No description available
Script
var CAPIUtils = Class.create();
CAPIUtils.createResponseObject = function(status, data, error) {
var response = {};
response.result = {};
response.result.status = status;
if (!gs.nil(data))
response.data = data;
if (!gs.nil(error)) {
if (CAPIErrorHelper.isCAPIError(error)) {
response.result.error = error.generateJSON();
}
else { // should be string or java.lang.String
// TODO: remove this when the time is up. for backward compatibility.
// If the error is java string object
if (typeof error == 'object')
error += '';
response.result.error_message = error;
var errObj = new CAPIError(error, 'Unexpected runtime error');
response.result.error = errObj.generateJSON();
}
}
return response;
};
CAPIUtils.executeMethod = function(params, actionName) {
if(actionName == "GetAllCloudApi")
return CAPIUtils.getAllCloudApi(params);
else if(actionName == "GetAllCapiInterface")
return CAPIUtils.getAllCapiInterface(params);
else if(actionName == "GetAllConnector")
return CAPIUtils.getAllConnector(params);
else if(actionName == "GetAllProviders")
return CAPIUtils.getAllProviders(params);
else if(actionName == "DeleteCloudApi")
return CAPIUtils.deleteCloudApi(params);
else if(actionName == "DeleteCAPIInterface")
return CAPIUtils.deleteCAPIInterface(params);
else if(actionName == "DeleteConnector")
return CAPIUtils.deleteConnector(params);
else if(actionName == "DeleteProvider")
return CAPIUtils.deleteProvider(params);
else if(actionName == "CreateCloudApi")
return CAPIUtils.createCloudApi(params);
else if(actionName == "CreateCAPIInterface")
return CAPIUtils.createCAPIInterface(params);
else if(actionName == "CreateConnector")
return CAPIUtils.createConnector(params);
else if(actionName == "CreateProvider")
return CAPIUtils.createProvider(params);
else if(actionName == "ExportCloudApi")
return CAPIUtils.exportCloudApi(params);
else if(actionName == "ExportCloudInterface")
return CAPIUtils.exportCloudInterface(params);
else if(actionName == "ExportCloudConnector")
return CAPIUtils.exportCloudConnector(params);
else if(actionName == "ExportCloudProvider")
return CAPIUtils.exportCloudProvider(params);
else if(actionName == "getAllDatacenterClass")
return CAPIUtils.getAllDatacenterClass(params);
else if(actionName == "GetCloudAPIScripts")
return CAPIUtils.getCloudAPIScripts(params);
else if(actionName == "ExportCloudApiUpdateSet")
return CAPIUtils.exportCloudAPIUpdateSet(params);
};
CAPIUtils.getAllCloudApi = function(params) {
var data = [];
var name = params.name;
var currentPageIndex = parseInt(params.currentPage, 10);
var limitIndex = parseInt(params.limit, 10);
var gr = new GlideRecord('sn_capi_cloud_api');
if (name != "")
gr.addQuery("cloud_api_name", "CONTAINS", name);
gr.chooseWindow(--currentPageIndex, currentPageIndex + limitIndex, false);
gr.orderBy("cloud_api_name");
gr.query();
while (gr.next()) {
data.push({
id: gr.getValue('sys_id'),
name: gr.getDisplayValue('cloud_api_name'),
description: gr.getDisplayValue('description'),
cloudApiInterface: gr.getDisplayValue('cloud_api_interface'),
category: gr.getDisplayValue('category'),
createdBy: gr.getDisplayValue('sys_created_by')
});
}
var responseObj = {
cloudapiList : data,
totalRecords : gr.getRowCount()
};
return responseObj;
};
CAPIUtils.getAllCapiInterface = function(params) {
var data = [];
var name = params.name;
var currentPageIndex = parseInt(params.currentPage, 10);
var limitIndex = parseInt(params.limit, 10);
var gr = new GlideRecord('sn_capi_interface');
if (name != "")
gr.addQuery("interface_name", "CONTAINS", name);
gr.chooseWindow(--currentPageIndex, currentPageIndex + limitIndex, false);
gr.orderBy("interface_name");
gr.query();
while (gr.next()) {
data.push({
id: gr.getValue('sys_id'),
name: gr.getDisplayValue('interface_name')
});
}
var responseObj = {
cloudapiList : data,
totalRecords : gr.getRowCount()
};
return responseObj;
};
CAPIUtils.getAllConnector = function(params) {
var data = [];
var name = params.name;
var currentPageIndex = parseInt(params.currentPage, 10);
var limitIndex = parseInt(params.limit, 10);
var gr = new GlideRecord('sn_capi_connector');
if (name != "")
gr.addQuery("connector_name", "CONTAINS", name);
gr.chooseWindow(--currentPageIndex, currentPageIndex + limitIndex, false);
gr.orderBy("connector_name");
gr.query();
while (gr.next()) {
data.push({
id: gr.getValue('sys_id'),
name: gr.getDisplayValue('connector_name')
});
}
var responseObj = {
cloudapiList : data,
totalRecords : gr.getRowCount()
};
return responseObj;
};
CAPIUtils.getAllProviders = function(params) {
var data = [];
var name = params.name;
var currentPageIndex = parseInt(params.currentPage, 10);
var limitIndex = parseInt(params.limit, 10);
var gr = new GlideRecord('sn_capi_provider');
if (name != "")
gr.addQuery("name", "CONTAINS", name);
var activeFieldQuery = gr.addNullQuery("active");
activeFieldQuery.addOrCondition("active", true);
gr.chooseWindow(--currentPageIndex, currentPageIndex + limitIndex, false);
gr.orderBy("name");
gr.query();
while (gr.next()) {
data.push({
id: gr.getValue('sys_id'),
name: gr.getDisplayValue('name')
});
}
var responseObj = {
cloudapiList : data,
totalRecords : gr.getRowCount()
};
return responseObj;
};
CAPIUtils.getAllDatacenterClass = function(params) {
var data = [];
var glr = new GlideRecord('sys_db_object');
glr.addQuery("label", "Logical Datacenter");
glr.addQuery("name", "cmdb_ci_logical_datacenter");
glr.query();
if (glr.next()) {
var gr = new GlideRecord('sys_db_object');
gr.addQuery("super_class", glr.getValue('sys_id'));
gr.query();
while (gr.next()) {
data.push({
value: gr.getValue('name'),
label: gr.getValue('label')
});
}
}
return data;
};
CAPIUtils.deleteCloudApi = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var isDelete=capiLibraryServiceScript.deleteCloudApi(params.id);
return isDelete;
};
CAPIUtils.deleteCAPIInterface = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var isDelete=capiLibraryServiceScript.deleteCAPIInterface(params.id);
return isDelete;
};
CAPIUtils.deleteConnector = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var isDelete=capiLibraryServiceScript.deleteConnector(params.id);
return isDelete;
};
CAPIUtils.deleteProvider = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var isDelete=capiLibraryServiceScript.deleteProvider(params.id);
return isDelete;
};
CAPIUtils.createCloudApi = function(params) {
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var cloudapi=capiLibraryServiceScript.createCloudApi(params.name, params.category, params.description, params.version, params.scripted, params.capiinterface, params.connector, params.provider, params.isScriptInstance, params.scriptType);
return cloudapi;
};
CAPIUtils.createCAPIInterface = function(params) {
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var cloudinterface=capiLibraryServiceScript.createCloudInterface(params.name, params.category, params.description);
return cloudinterface;
};
CAPIUtils.createConnector = function(params) {
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var cloudconnector=capiLibraryServiceScript.createCloudConnector(params.name, params.description, params.vendor, params.version, params.releaseDate, params.category, params.connectorType);
return cloudconnector;
};
CAPIUtils.createProvider = function(params) {
var grProvider = new GlideRecord('sn_capi_provider');
grProvider.addQuery("name", params.name);
grProvider.query();
if (grProvider.hasNext()) {
return "0";
} else {
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var cloudprovider=capiLibraryServiceScript.createCloudProvider(params.name, params.description, params.datacenterclass);
return cloudprovider;
}
};
CAPIUtils.exportCloudApi = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var capi = capiLibraryServiceScript.exportCloudApi(params.id);
var resObj = new global.JSON().decode(capi);
return resObj.objectJSON;
};
CAPIUtils.exportCloudInterface = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var capiinterface = capiLibraryServiceScript.exportCloudInterface(params.id);
return capiinterface;
};
CAPIUtils.exportCloudConnector = function(params) {
if (!params.id)
return null;
var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
var connector= capiLibraryServiceScript.exportCloudConnector(params.id);
return connector;
};
CAPIUtils.exportCloudProvider = function(params) {
if (!params.id)
return null;
//var capiLibraryServiceScript=new sn_cloud_api.CAPILibraryServiceScript();
//var providerJSON = capiLibraryServiceScript.exportCloudProvider(params.id);
//var dto = new global.JSON().decode(providerJSON);
return null;
};
CAPIUtils.getCloudAPIScripts = function(params){
var publishedEntities=[];
var scriptIncludeGR = new GlideRecord('ecc_agent_script_include');
scriptIncludeGR.query();
while (scriptIncludeGR.next()) {
var scriptIncludeObj = {};
scriptIncludeObj['name'] = scriptIncludeGR.getValue('name');
scriptIncludeObj['sys_id'] = scriptIncludeGR.getValue('sys_id');
scriptIncludeObj['table'] = scriptIncludeGR.getValue('sys_class_name');
scriptIncludeObj['created_by'] = scriptIncludeGR.getValue('sys_created_by');
scriptIncludeObj['created_on'] = scriptIncludeGR.getValue('sys_created_on');
scriptIncludeObj['updated_by'] = scriptIncludeGR.getValue('sys_updated_by');
scriptIncludeObj['updated_on'] = scriptIncludeGR.getValue('sys_updated_on');
publishedEntities.push(scriptIncludeObj);
}
var scriptFileGR = new GlideRecord('ecc_agent_script_file');
scriptFileGR.query();
while (scriptFileGR.next()) {
var scriptFileObj = {};
scriptFileObj['name'] = scriptFileGR.getValue('name');
scriptFileObj['sys_id'] = scriptFileGR.getValue('sys_id');
scriptFileObj['table'] = scriptFileGR.getValue('sys_class_name');
scriptFileObj['created_by'] = scriptFileGR.getValue('sys_created_by');
scriptFileObj['created_on'] = scriptFileGR.getValue('sys_created_on');
scriptFileObj['updated_by'] = scriptFileGR.getValue('sys_updated_by');
scriptFileObj['updated_on'] = scriptFileGR.getValue('sys_updated_on');
publishedEntities.push(scriptFileObj);
}
gs.info(JSON.stringify(publishedEntities));
return publishedEntities;
};
CAPIUtils.exportCloudAPIUpdateSet = function(params){
try{
var capiUpdateSetExporter = new sn_capi.CloudAPIUpdateSetExporter();
var createdUpdateSetObject = capiUpdateSetExporter.createUpdateSet(params);
var output = {
"sysIdList": createdUpdateSetObject.updateSetXMLIdList,
"log": createdUpdateSetObject.log,
"localUpdateSetList":createdUpdateSetObject.localUpdateSetList,
"fileName":createdUpdateSetObject.fileName,
"metadata":createdUpdateSetObject.metadata
};
return output;
}catch(error){
var e = error;
var failedMessage = gs.getMessage("Failed to export CloudAPI");
var errorMsg = e && e.message ? e.message : failedMessage;
throw sn_smd.SMErrorHelper.createScriptAPIError(
errorMsg,
"CAPIUtils.exportCloudAPIUpdateSet(): Failed to export CloudAPI",
error
);
}
};
CAPIUtils.deleteUpdateSet = function(params){
var capiUpdateSetExporter = new global.CloudAPIUpdateSetExporter();
capiUpdateSetExporter.deleteUpdateSet(params.updateSetId);
};
CAPIUtils.queryMappingTable = function(tableName, actionName, required) {
gs.info('CAPIUtils: tableName-->' + tableName);
gs.info('CAPIUtils: actionName-->' + actionName);
gs.info('CAPIUtils: required-->' + required);
var gr = new GlideRecord(tableName);
gr.addActiveQuery();
gr.addQuery('name', actionName);
gr.query();
if(required && !gr.hasNext()) {
throw 'Action mapping record not found';
}
//defensive check... should aleady be prevented by a business rule
gs.info('CAPIUtils: RowCount-->' + gr.getRowCount());
if(gr.getRowCount() > 1) {
throw 'An active mapping record name should be unique';
}
return gr;
};
Sys ID
6cfc9e4f0b943200a91f6707b6673ada