-
Problem report
-
Resolution: Fixed
-
Major
-
7.0.3
-
None
-
1
For Preprocessing on Item Prototypes Space: Available, Total, Used and Used in % if the value returned from JSON is large enough, Javascript doesn't handle the type conversion properly and the returned value ends up being in ZB instead of TB. Parsing the values as Int and Float seems to resolve the issue:
var portionHigh = 4294967296; var obj = JSON.parse(value); var dskTotalHigh = parseInt(obj['dskTotalHigh'], 10), dskTotalLow = parseFloat(obj['dskTotalLow']); return (dskTotalHigh * portionHigh + dskTotalLow) * 1024;
I suspect it would be good to do explicit type conversions on all of the objects returned from JSON anywhere we do math.
Example JSON for "value" above:
{#SNMPINDEX}":"30","dskEntry":"30","dskPercentNode":"0","dskTotalLow":"1763059968","dskTotalHigh":"3","dskAvailLow":"360840500","dskAvailHigh":"1","dskUsedLow":"1402219468","dskUsedHigh":"2"}
Space: Total without parsing: 1.3194139533492538e+23 (incorrect)
Space: Total with parsing: 14999512940544 (correct)