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