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

Offical Documentation

Official Docs: