Name
global.IEJsonUtility
Description
Helper Utility Class for preparation Identification Engine Json
Script
gs.include("PrototypeServer");
/**
*
* @author lior.urman
*
*/
var IEJsonUtility = Class.create();
/**
* Add CI object to the Identification Engine Json
* Example: IEJsonUtility.addCi(myIEJson, {
* "name": "UCSPE-10-196-39-104",
* "dn": "sys",
* "ip_address": "10.196.39.104",
* "version": "3.0(2c)",
* "sys_class_name": "cmdb_ci_ucs_equipment",
* });
*
* Result: "items": [
* {
* "className": "cmdb_ci_ucs_equipment",
* "values": {
* "name": "UCSPE-10-196-39-104",
* "dn": "sys",
* "ip_address": "10.196.39.104",
* "version": "3.0(2c)",
* "sys_class_name": "cmdb_ci_ucs_equipment",
* }
* },
*/
IEJsonUtility.addCi = function(ieJson, ciValues) {
if(gs.nil(ieJson)) throw "IEJsonUtility.addCi: Identification Engine Json is null";
if (ciValues.hasOwnProperty('sys_class_name') == false)
throw 'IEJsonUtility.addCi: CI values must contain sys_class_name field';
if (ieJson.hasOwnProperty("items")) {
ieJson.items.push({
"className" : ciValues.sys_class_name,
"values" : ciValues
});
} else {
throw 'IEJsonUtility.addCi: missing [items] array section in Json';
}
};
/**
* Add Relation object to the Identification Engine Json
* Example: IEJsonUtility.addRelation(myIEJson, 0, 6, "Contains::Contained by");
* Result: "relations": [
* {
* "type": "Contains::Contained by",
* "parent": 0,
* "child": 6
* },
*/
IEJsonUtility.addRelation = function(ieJson, parent, child, relType) {
if(gs.nil(ieJson)) throw "IEJsonUtility.addRelation: Identification Engine Json is null";
if(gs.nil(parent) || gs.nil(child) || gs.nil(relType)){
throw "IEJsonUtility.addRelation: missing paramters, parent={0}, child={1}, relType={2}".format(parent,child,relType);
}
if (ieJson.hasOwnProperty("relations")) {
ieJson.relations.push({
"type" : relType,
"parent" : parent,
"child" : child
});
}else {
throw 'IEJsonUtility.addRelation: missing [relations] array section in Json';
}
};
/**
* Add CI Relation to the Identification Engine Json
* Example: IEJsonUtility.addReference(myIEJson, "ucs_chassis", "childToParent", 6, 1);
* Result: references": [
* {
* "referenceField": "ucs_chassis",
* "referenceDirection": "childToParent",
* "parent": 6,
* "child": 1
* },
*/
IEJsonUtility.addReference = function(ieJson, referenceField, referenceDirection, parent, child) {
if(gs.nil(ieJson)) throw "IEJsonUtility.addReference: Identification Engine Json is null";
if(gs.nil(referenceField) || gs.nil(referenceDirection) || gs.nil(parent) || gs.nil(child)){
throw "IEJsonUtility.addReference: missing paramters, referenceField={0}, referenceDirection={1}, parent={2}, child={3}".format(referenceField,referenceDirection,parent,child);
}
if (ieJson.hasOwnProperty("references")) {
ieJson.references.push({
"referenceField" : referenceField,
"referenceDirection" : referenceDirection,
"parent" : parent,
"child" : child
});
}else {
throw 'IEJsonUtility.addReference: missing [references] array section in Json';
}
};
Sys ID
75dd855693721200248635bb357ffbd7