netbox-community / netbox

The premier source of truth powering network automation. Open source under Apache 2. Try NetBox Cloud free: https://netboxlabs.com/free-netbox-cloud/
http://netboxlabs.com/oss/netbox/
Apache License 2.0
16.18k stars 2.59k forks source link

Abillity to select disk divider #17686

Open AndreasSMoe opened 1 month ago

AndreasSMoe commented 1 month ago

NetBox version

v4.1.3

Feature type

Change to existing functionality

Proposed functionality

Disk size changed from GB to MB, but divider is set to 1000 instead of 1024. Import to Netbox that uses Bytes will show wrong disk size see bug report https://github.com/netbox-community/netbox/issues/17631

Use case

Field used to be GB, is now MB Field collected from VMM is in Bytes, 1024 Bytes is 1KB, 1024KB is 1MB, 1024MB is 1GB, 1024GB is 1TB Netbox uses 1000 Bytes as 1KB, 1000MB as 1GB Example Importing a value of 50000 MB on virtual disk is shown as 50GB While converting from bytes to MB 52428800 Bytes is 51200MB

In Netbox, 51200 MB is converted to 51,2GB which is not correct

if I convert the bytes 52428800/1MB = 51200 MB which is correct, but shown wrong (52428800/1GB)*1000 = 50000MB which is wrong, but shown correctly

Problems occur if the disk is larger than 1TB

(1 073 741 824/1GB)*1000 = 1024GB which is wrong, will be shown as 1.02 TB

Correct would be to not use humanizenumbers as conversion will be wrong A posible solution would be to add ability in configuration to choose between 1000 and 1024

image vs edit image

To get value 60GB, the MB value should be 61440MB

But if I change value the converted value shown under virual disk is image

We use netbox as source for our billing, and as a workaround they now divide the MB number by 1000 The correct way would be for billing to devide by 1024

Database changes

Not sure, but is it possible to add a setting in configuration.py to enable selection between 1000 and 1024

External dependencies

None that I can think of

DanSheps commented 1 month ago

Default of this should operate on the existing methodology (conversion == 1000, not 1024).

Do add tests to ensure that the configuration parameter works as intended too.

drose0 commented 2 weeks ago

Upvote on this. Would like the ability to specify whether we want to use GB or GiB, and then have the correct conversion.

mbchristoff commented 2 weeks ago

Another upvote, other applications linked to Netbox use GiB so provisioning and billing need some ugly fixes.

jonaagenilsen commented 2 weeks ago

Upvoted. We need this feature.

rhcinos commented 1 week ago

A vote from us also. Also VM RAM display seems to have changed from GiB to GB, could this setting affect RAM also?

rhcinos commented 1 week ago

Perhaps out of scope of this specific FR, but could the upgrade script respect this configuration paramter, and mutliply existing values by 1024 instead of 1000 if set?

For context, we were due to upgrade our Netbox this week but have decided to hold off as it would cause all of our disk sizes to be wrong, as we use GiB and MiB currently.

Happy to raise a new FR if that is more appropriate.