private Long getCpuStatus(List<String> status) { if (status.get(0) == null || status.get(1) == null) { logWarning("Unable to parse CPU status for VIC host"); return 0L; } String[] sp = status.get(1).split(" "); if (sp.length < 2) { logWarning("Unable to parse CPU status for VIC host"); return 0L; } return ConversionUtil.cpuToHertz(Long.parseLong(sp[0]), sp[1]); }
/** * Converts a memory value from human readable form to the value in bytes. * * @param magnitude the magnitude * @param inUnit the input (comparison is case insensitve) * @param outUnit the output (comparison is case insensitve) * @return the value converted to bytes */ public static double memoryToBytes(double magnitude, String unit) { if (BINARY_MEMORY_UNITS.contains(unit.toLowerCase())) { return memoryBinaryConversion(magnitude, unit, "b"); } else { return memoryDecimalConversion(magnitude, unit, "b"); } }
/** * Converts a memory binary value from one unit to another. * * @param magnitude the magnitude * @param inUnit the input (comparison is case insensitve) * @param outUnit the output (comparison is case insensitve) * @return the value converted to bytes */ public static double memoryBinaryConversion(double inMagnitude, String inUnit, String outUnit) { return memoryConversion(inMagnitude, inUnit, outUnit, false); }
private Double getMemoryStatus(List<String> status) { if (status.get(0) == null || status.get(1) == null) { logWarning("Unable to parse memory status for VIC host"); return 0d; } String[] sp = status.get(1).split(" "); if (sp.length < 2) { logWarning("Unable to parse memory status for VIC host"); return 0d; } double resp = 0; try { resp = ConversionUtil.memoryToBytes(Double.parseDouble(sp[0]), sp[1]); } catch (Exception e) { logWarning("Unable to parse SystemStatus memory units: %s", e.getMessage()); } return resp; }
@Test public void testMemoryConversion() throws Exception { assertEquals(2147483648.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "B"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "kiB"), 0.01); assertEquals(2048.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "MiB"), 0.01); assertEquals(2.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "GiB"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "B"), 0.01); assertEquals(2048.0, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "kiB"), 0.01); assertEquals(2.0, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "MiB"), 0.01); assertEquals(0.00195, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "GiB"), 0.00001); } }
@Test public void testDecimalMemory() throws Exception { assertEquals(2.0, ConversionUtil.memoryDecimalConversion(2, "B", "B"), 0.01); assertEquals(2000.0, ConversionUtil.memoryDecimalConversion(2, "KB", "B"), 0.01); assertEquals(2000000.0, ConversionUtil.memoryDecimalConversion(2, "MB", "B"), 0.01); assertEquals(2000000000.0, ConversionUtil.memoryDecimalConversion(2, "GB", "B"), 0.01); assertEquals(2000000000000.0, ConversionUtil.memoryDecimalConversion(2, "TB", "B"), 0.01); assertEquals(2000000000000000.0, ConversionUtil.memoryDecimalConversion(2, "PB", "B"), 0.01); }
@Test public void testDecimalMemoryToBytes() throws Exception { assertEquals(2.0, ConversionUtil.memoryToBytes(2, "B"), 0.01); assertEquals(2000.0, ConversionUtil.memoryToBytes(2, "KB"), 0.01); assertEquals(2000000.0, ConversionUtil.memoryToBytes(2, "MB"), 0.01); assertEquals(2000000000.0, ConversionUtil.memoryToBytes(2, "GB"), 0.01); assertEquals(2000000000000.0, ConversionUtil.memoryToBytes(2, "TB"), 0.01); assertEquals(2000000000000000.0, ConversionUtil.memoryToBytes(2, "PB"), 0.01); }
@Test public void testBinaryMemory() throws Exception { assertEquals(2.0, ConversionUtil.memoryBinaryConversion(2, "B", "B"), 0.01); assertEquals(2048.0, ConversionUtil.memoryBinaryConversion(2, "KiB", "B"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryBinaryConversion(2, "MiB", "B"), 0.01); assertEquals(2147483648.0, ConversionUtil.memoryBinaryConversion(2, "GiB", "B"), 0.01); assertEquals(2199023255552.0, ConversionUtil.memoryBinaryConversion(2, "TiB", "B"), 0.01); assertEquals(2251799813685248.0, ConversionUtil.memoryBinaryConversion(2, "PiB", "B"), 0.01); }
@Test public void testBinaryMemoryToBytes() throws Exception { assertEquals(2.0, ConversionUtil.memoryToBytes(2, "B"), 0.01); assertEquals(2048.0, ConversionUtil.memoryToBytes(2, "KiB"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryToBytes(2, "MiB"), 0.01); assertEquals(2147483648.0, ConversionUtil.memoryToBytes(2, "GiB"), 0.01); assertEquals(2199023255552.0, ConversionUtil.memoryToBytes(2, "TiB"), 0.01); assertEquals(2251799813685248.0, ConversionUtil.memoryToBytes(2, "PiB"), 0.01); }
@Test public void testCpuToHertz() throws Exception { assertEquals(2, ConversionUtil.cpuToHertz(2, "Hz")); assertEquals(2000, ConversionUtil.cpuToHertz(2, "KHz")); assertEquals(2000000, ConversionUtil.cpuToHertz(2, "MHz")); assertEquals(2000000000L, ConversionUtil.cpuToHertz(2, "GHz")); assertEquals(2000000000000L, ConversionUtil.cpuToHertz(2, "THz")); assertEquals(2000000000000000L, ConversionUtil.cpuToHertz(2, "PHz")); assertEquals(0, ConversionUtil.cpuToHertz(0, "NHz")); }
/** * Converts a memory decimal value from one unit to another. * * @param magnitude the magnitude * @param inUnit the input (comparison is case insensitve) * @param outUnit the output (comparison is case insensitve) * @return the value converted to bytes */ public static double memoryDecimalConversion(double inMagnitude, String inUnit, String outUnit) { return memoryConversion(inMagnitude, inUnit, outUnit, true); }