Name
sn_itom_pattern.PayloadExtractor
Description
Allow Scripts to extract context list from payloads. Should return comma seperated list of context data.
Script
var PayloadExtractor = Class.create();
PayloadExtractor.prototype = {
initialize: function(payload) {
if (JSUtil.nil(payload))
return;
this.payload = payload;
},
/*
returns the comma-sperated sys_ids associated with a given class
example payload:
{
"items" : [ {
"className" : "cmdb_ci_cloud_service_account",
"sysId" : "1cc860f67713330099808d1168106145"
}, {
"className" : "cmdb_ci_google_datacenter",
"sysId" : "39d8e0f67713330099808d116810610c"
}, {
"className" : "cmdb_ci_google_datacenter",
"sysId" : "3dd8e0f67713330099808d1168106109"
}, {
"className" : "cmdb_ci_google_datacenter",
"sysId" : "7dd8e0f67713330099808d116810610b"
} ],
"relations": [ {
"className" : "cmdb_ci_lb_pool_member",
"sysId" : "456ec6b4a455c33ca5479009a1dd861b"
} ]
}
the input:
extract('cmdb_ci_google_datacenter');
should return:
'3dd8e0f67713330099808d1168106109,39d8e0f67713330099808d116810610c,7dd8e0f67713330099808d116810610b'
*/
extract: function(className) {
if (className == null)
throw "Must provide a class name to extract from payload";
var items = this.payload.items;
if (items == null)
return "";
var contextResult = [];
for (var i = 0; i < items.length; i++) {
if(items[i].className != className)
continue;
contextResult.push(items[i].sysId);
}
contextResult.sort();
var result = contextResult.join();
return result;
}
};
Sys ID
e294a8767713330099808d1168106116