Name

global.CMDBDataSourceUtil

Description

CMDB utility class to create a new data source

Script

var CMDBDataSourceUtil = Class.create();
CMDBDataSourceUtil.prototype = {
  initialize: function() {},

  // adding a new source
  addDataSource: function(source) {
      var gr = new GlideRecord('sys_choice');
      gr.addQuery('element', 'discovery_source');
      gr.addQuery('name', 'cmdb_ci');
      gr.addQuery('value', source);
      gr.query();
      if (!gr.hasNext()) {
          var grNew = new GlideRecord('sys_choice');
          grNew.initialize();
          grNew.setValue('element', 'discovery_source');
          grNew.setValue('name', 'cmdb_ci');
          grNew.setValue('value', source);
          grNew.setValue('label', source);
          if (grNew.insert()) {
              var grSCS = new GlideRecord("sys_choice_set");
              grSCS.addQuery("element", "discovery_source");
              grSCS.addQuery("name", "cmdb_ci");
              grSCS.query();
              // Check if the choice set will be replaced on upgrade. If not, it's customized, and we should update sys_update_xml
              if (grSCS.next() && !sn_collision.CollisionAPI.willBeReplacedOnUpgrade(grSCS)) {
                  var um = new GlideUpdateManager2();
                  um.saveRecord(grSCS);
              }
          } else {
              gs.error('Adding discovery source failed for: ' + source);
          }
      } else {
          gs.warn('Discovery source already exists: ' + source);
      }
  },

  type: 'CMDBDataSourceUtil'

};

Sys ID

e895e899b7210010c5f22970ee11a97e

Offical Documentation

Official Docs: