Name

sn_cmdb_int_util.CMDBIntegrationMockDataUtil

Description

No description available

Script

var CMDBIntegrationMockDataUtil = Class.create();
CMDBIntegrationMockDataUtil.prototype = {
  initialize: function() {
  	this.LETTERS = 'abcdefghijklmnopqrstuvwxyz1234567890';
  },

  randomHash: function(type) {
      var input = this.randomString(256);
      var digest = new GlideDigest();
      switch (type) {
          case "sha256":
              return digest.getSHA256Hex(input).toLowerCase();
          case "sha1":
              return digest.getSHA1Hex(input).toLowerCase();
          case "md5":
          default:
              return digest.getMD5Hex(input).toLowerCase();
      }
  },

  scrambleInput: function(input, includeUnicode) {
      var scrambledInput = "";
      for (var i = 0; i < input.length; i++) {
          if (includeUnicode && Math.random() >= 0.99) {
              scrambledInput = scrambledInput + (String.fromCharCode(Ox00A0 + Math.random() * (0x04FF - 0x00A0 + 1)));
              continue;
          }
          var character = input.charAt(i);
          if (character.match(/[A-Z]/)) {
              scrambledInput = scrambledInput + this.randomLetter().toUpperCase();
          } else if (character.match(/[a-z]/)) {
              scrambledInput = scrambledInput + this.randomLetter().toLowerCase();
          } else if (character.match(/[0-9]/)) {
              scrambledInput = scrambledInput + this.randomInteger(0, 9);
          } else {
              // preserve other inputs
              scrambledInput = scrambledInput + character;
          }
      }
      return scrambledInput;
  },

  randomLetter: function() {
      var letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
      var letter = letters[Math.floor(Math.random() * letters.length)];
      return letter;
  },

  randomString: function(maxLength, minLength, includeUnicode) {
      if (!minLength)
          minLength = 0;
      if (maxLength < minLength)
          minLength = maxLength;
      var length = Math.random() * (maxLength - minLength) + minLength;

      var letters = gs.getProperty('sn_cmdb_int_util.mock_data_letters', this.LETTERS);
      var answer = '';
      for (var i = length; i > 0; i--) {
          answer += letters[Math.floor(Math.random() * letters.length)];
      }
      return answer;
  },

  randomInteger: function(maxValue, minValue) {
      return Number(minValue) + Math.floor(Math.random() * Number(maxValue));
  },

  randomBoolean: function(falsePercentage) {
      if (!falsePercentage || falsePercentage < 0 || falsePercentage > 1) {
          falsePercentage = 0.5;
      }
      return Math.random() >= falsePercentage;
  },

  randomIpAddress: function(start, version) {
      switch (version) {
          case 6:
              // start is not used in ipv6 currently 
              var section = function() {
                  var hex = "0123456789abcdef";
                  var answer = "";
                  for (var i = 4; i > 0; i--) {
                      answer += hex[Math.floor(Math.random() * hex.length)];
                  }
                  return answer;
              };

              var result = [];
              for (var i = 0; i < 8; i++) {
                  result[i] = section();
              }
              return result.join(":");
          case 4:
          default:
              return (start ? start : Math.floor(Math.random() * 256)) + "." + Math.floor(Math.random() * 256) + "." + Math.floor(Math.random() * 256) + "." + Math.floor(Math.random() * 256);
      }
  },

  randomMACAddress: function() {
      var hexDigits = "0123456789ABCDEF";
      var macAddress = "";
      for (var i = 0; i < 6; i++) {
          macAddress += hexDigits.charAt(Math.round(Math.random() * 15));
          macAddress += hexDigits.charAt(Math.round(Math.random() * 15));
          if (i != 5) macAddress += ":";
      }

      return macAddress;
  },

  randomFromArray: function(textArray, includeNull, includeEmpty) {
      if (includeNull) {
          textArray.push(null);
      }
      if (includeEmpty) {
          textArray.push("");
      }
      var randomIndex = Math.floor(Math.random() * textArray.length);
      return textArray[randomIndex];
  },

  getUniqueListFromExistingValues: function(tableName, fieldName) {
      var uniqueValueArray = [];
      var ga = new GlideAggregate(tableName);
      ga.addAggregate('count');
      ga.setLimit(100);
      ga.groupBy(fieldName);
      ga.query();
      while (ga.next()) {
          uniqueValueArray.push(ga.getValue(fieldName));
      }
      return uniqueValueArray;
  },

  createSysImportSet: function(tableName) {
      var gr = new GlideRecord("sys_data_source");
      gr.addQuery("import_set_table_name", tableName);
      gr.query();
      gr.next();
      var dataSourceId = gr.getUniqueValue();
      gr = new GlideRecord("sys_import_set");
      gr.initialize();
      gr.table_name = tableName;
      gr.short_description = "Mock data";
      gr.state = "loading";
      gr.data_source = dataSourceId;
      gr.mode = "asynchronous";
      return gr.insert();
  },

  getSysImportSetId: function(importSetRowId) {
      var gr = new GlideRecord("sys_import_set_row");
      gr.get("sys_id", importSetRowId);
      return gr.getValue("sys_import_set");
  },

  updateSysImportSet: function(sysImportSetSysId) {
      var gr = new GlideRecord("sys_import_set");
      gr.get(sysImportSetSysId);
      gr.state = "loaded";
      gr.update();
  },

  type: 'CMDBIntegrationMockDataUtil'
};

Sys ID

43f4581d73220010202627b751ab9ee4

Offical Documentation

Official Docs: