Name

sn_cmdb_int_util.CmdbIntegrationScaleUnitUtil

Description

Utility class to scale units

Script

var CmdbIntegrationScaleUnitUtil = Class.create();
CmdbIntegrationScaleUnitUtil.prototype = {
  initialize: function() {},
  
  scaleUnits: function(input, inputUnit, outputUnit, decimalPlaces) {
      var inputSize = parseFloat(input);

      if (isNaN(inputSize)) {
          return '';
      }

      // convert from input to baseValue
      var baseValue;
      if (inputUnit === 'PB' || inputUnit.toUpperCase() === 'PETABYTE') {
          baseValue = inputSize * Math.pow(2, 53);
      } else if (inputUnit === 'Pb' || inputUnit.toUpperCase() === 'PETABIT') {
          baseValue = inputSize * Math.pow(2, 50);
      } else if (inputUnit === 'TB' || inputUnit.toUpperCase() === 'TERABYTE') {
          baseValue = inputSize * Math.pow(2, 43);
      } else if (inputUnit === 'Tb' || inputUnit.toUpperCase() === 'TERABIT') {
          baseValue = inputSize * Math.pow(2, 40);
      } else if (inputUnit === 'GB' || inputUnit.toUpperCase() === 'GIGABYTE') {
          baseValue = inputSize * Math.pow(2, 33);
      } else if (inputUnit === 'Gb' || inputUnit.toUpperCase() === 'GIGABIT') {
          baseValue = inputSize * Math.pow(2, 30);
      } else if (inputUnit === 'MB' || inputUnit.toUpperCase() === 'MEGABYTE') {
          baseValue = inputSize * Math.pow(2, 23);
      } else if (inputUnit === 'Mb' || inputUnit.toUpperCase() === 'MEGABIT') {
          baseValue = inputSize * Math.pow(2, 20);
      } else if (inputUnit === 'KB' || inputUnit.toUpperCase() === 'KILOBYTE') {
          baseValue = inputSize * Math.pow(2, 13);
      } else if (inputUnit === 'Kb' || inputUnit.toUpperCase() === 'KILOBIT') {
          baseValue = inputSize * Math.pow(2, 10);
      } else if (inputUnit === 'B' || inputUnit.toUpperCase() === 'BYTE') {
          baseValue = inputSize * Math.pow(2, 3);
      } else if (inputUnit === 'b' || inputUnit.toUpperCase() === 'BIT') {
          baseValue = inputSize * Math.pow(2, 0);
      } else if (inputUnit.startsWith('P') || inputUnit.toUpperCase().startsWith('PETA')) {
          baseValue = inputSize * Math.pow(10, 15);
      } else if (inputUnit.startsWith('T') || inputUnit.toUpperCase().startsWith('TERA')) {
          baseValue = inputSize * Math.pow(10, 12);
      } else if (inputUnit.startsWith('G') || inputUnit.toUpperCase().startsWith('GIGA')) {
          baseValue = inputSize * Math.pow(10, 9);
      } else if (inputUnit.startsWith('M') || inputUnit.toUpperCase().startsWith('MEGA')) {
          baseValue = inputSize * Math.pow(10, 6);
      } else if (inputUnit.startsWith('k') || inputUnit.toUpperCase().startsWith('KILO')) {
          baseValue = inputSize * Math.pow(10, 3);
      } else if (inputUnit.startsWith('h') || inputUnit.toUpperCase().startsWith('HECTO')) {
          baseValue = inputSize * Math.pow(10, 2);
      } else if (inputUnit.startsWith('d') || inputUnit.toUpperCase().startsWith('DECA')) {
          baseValue = inputSize * Math.pow(10, 1);
      } else {
          gs.info('ScaleUnits: no matching unit found for input unit:' + inputUnit);
          return parseFloat(inputSize);
      }

      // convert from baseValue to outputValue
      var outputValue = '';
      if (outputUnit === 'PB' || outputUnit.toUpperCase() === 'PETABYTE') {
          outputValue = baseValue / Math.pow(2, 53);
      } else if (outputUnit === 'Pb' || outputUnit.toUpperCase() === 'PETABIT') {
          outputValue = baseValue / Math.pow(2, 50);
      } else if (outputUnit === 'TB' || outputUnit.toUpperCase() === 'TERABYTE') {
          outputValue = baseValue / Math.pow(2, 43);
      } else if (outputUnit === 'Tb' || outputUnit.toUpperCase() === 'TERABIT') {
          outputValue = baseValue / Math.pow(2, 40);
      } else if (outputUnit === 'GB' || outputUnit.toUpperCase() === 'GIGABYTE') {
          outputValue = baseValue / Math.pow(2, 33);
      } else if (outputUnit === 'Gb' || outputUnit.toUpperCase() === 'GIGABIT') {
          outputValue = baseValue / Math.pow(2, 30);
      } else if (outputUnit === 'MB' || outputUnit.toUpperCase() === 'MEGABYTE') {
          outputValue = baseValue / Math.pow(2, 23);
      } else if (outputUnit === 'Mb' || outputUnit.toUpperCase() === 'MEGABIT') {
          outputValue = baseValue / Math.pow(2, 20);
      } else if (outputUnit === 'KB' || outputUnit.toUpperCase() === 'KILOBYTE') {
          outputValue = baseValue / Math.pow(2, 13);
      } else if (outputUnit === 'Kb' || outputUnit.toUpperCase() === 'KILOBIT') {
          outputValue = baseValue / Math.pow(2, 10);
      } else if (outputUnit === 'B' || outputUnit.toUpperCase() === 'BYTE') {
          outputValue = baseValue / Math.pow(2, 3);
      } else if (outputUnit === 'b' || outputUnit.toUpperCase() === 'BIT') {
          outputValue = baseValue / Math.pow(2, 0);
      } else if (outputUnit.startsWith('P')) {
          outputValue = baseValue / Math.pow(10, 15);
      } else if (outputUnit.startsWith('T')) {
          outputValue = baseValue / Math.pow(10, 12);
      } else if (outputUnit.startsWith('G')) {
          outputValue = baseValue / Math.pow(10, 9);
      } else if (outputUnit.startsWith('M')) {
          outputValue = baseValue / Math.pow(10, 6);
      } else if (outputUnit.startsWith('k') || outputUnit.toUpperCase().startsWith('KILO')) {
          outputValue = baseValue / Math.pow(10, 3);
      } else if (outputUnit.startsWith('h') || outputUnit.toUpperCase().startsWith('HECTO')) {
          outputValue = baseValue / Math.pow(10, 2);
      } else if (outputUnit.startsWith('da') || outputUnit.toUpperCase().startsWith('DECA')) {
          outputValue = baseValue / Math.pow(10, 1);
      } else {
          gs.info('ScaleUnits: no matching unit found for outputValue unit:' + outputUnit);
          outputValue = inputSize;
      }
  	if (decimalPlaces)
  		return parseFloat(outputValue).toFixed(decimalPlaces);
  	else
  		return parseFloat(outputValue).toFixed(2);
  },

  type: 'CmdbIntegrationScaleUnitsUtil'
};

Sys ID

d95d198373210010202627b751ab9e6d

Offical Documentation

Official Docs: