NAS-116747 / 22.12 / Provide string values for JSON fields that may overflow 2**53 on PiB-scale systems
Some JSON parsers (e.g. the one that is used in the jq utility for example) don't parse large values correctly, as a result we have this:
"snapshot_limit": {
"parsed": 18446744073709552000,
"rawvalue": "18446744073709551615",
"value": "none",
"source": "DEFAULT",
"source_info": null
},
(the middleware JSON output was correct, but after going through jq the parsed and rawvalue become different).
Clients that know that their JSON parsing is poor can restore the correct ZFS property value using rawvalue which is always a string. For other JSON dictionaries that might contain integer values that are too large (this might happen when we start selling petabyte-scale systems) we'll provide f'{key}_str values like many other REST APIs do (e.g. Twitter tweet IDs, etc). These are all such values that I was able to find.
Jira URL: https://ixsystems.atlassian.net/browse/NAS-116747
time 4:00
Are there any tests that need to be updated?
@anodos325 I'll ran the tests once they fix CI. I have not found any that will fail due to extra keys.
@anodos325 tests are fine, no regressions
@anodos325 are we good to merge this?