From abf7daaaf0e420f55cd7e5e40b6d35f13dd24e98 Mon Sep 17 00:00:00 2001 From: meoflynn Date: Tue, 26 May 2026 14:30:14 +0100 Subject: [PATCH 1/2] BUG: Convert disk from MB to GB for Aquilon An update in NetBox has changed the disk size to be stored in MB instead of GB. This results in the code setting the disk size in Aquilon to be too large e.g. if a disk is 1024 MB in NetBox, the disk is set for the device as 1024 GB in Aquilon. Added a line to convert the disk size to GB. --- aquilon/netbox2aquilon.py | 8 ++++++-- aquilon/testdata/disks_virtual.json | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/aquilon/netbox2aquilon.py b/aquilon/netbox2aquilon.py index a2d30e0..e350bba 100755 --- a/aquilon/netbox2aquilon.py +++ b/aquilon/netbox2aquilon.py @@ -140,12 +140,14 @@ def _netbox_copy_vm_disks(self, virtual_machine): if virtual_disks: boot = True for disk in virtual_disks: + # Netbox stores virtual disk size in MB, Aquilon needs it in GB + virtual_disk_gb = round(disk.size / 1024) # to nearest GB cmd = [ 'add_disk', '--machine', f'{virtual_machine.aq_machine_name}', '--disk', f'{disk.name}', '--controller', 'sata', - '--size', f'{disk.size}', + '--size', f'{virtual_disk_gb}', ] if boot: cmd.append('--boot') @@ -154,12 +156,14 @@ def _netbox_copy_vm_disks(self, virtual_machine): cmd += ['--comments', f'"{disk.description}"'] cmds.append(cmd) else: + # Netbox stores disk size in MB, Aquilon needs it in GB + disk_gb = round(virtual_machine.disk / 1024) # to nearest GB cmds.append([ 'add_disk', '--machine', f'{virtual_machine.aq_machine_name}', '--disk', 'sda', '--controller', 'sata', - '--size', f'{virtual_machine.disk}', + '--size', f'{disk_gb}', '--boot', ]) diff --git a/aquilon/testdata/disks_virtual.json b/aquilon/testdata/disks_virtual.json index 90dc111..cd39acb 100644 --- a/aquilon/testdata/disks_virtual.json +++ b/aquilon/testdata/disks_virtual.json @@ -11,7 +11,7 @@ }, "name": "sda", "description": "", - "size": 40, + "size": 40960, "tags": [], "custom_fields": {}, "created": "2025-06-02T13:43:40.552134Z", @@ -29,7 +29,7 @@ }, "name": "sdb", "description": "", - "size": 100, + "size": 102400, "tags": [], "custom_fields": {}, "created": "2025-06-02T13:43:49.494852Z", @@ -47,7 +47,7 @@ }, "name": "sdc", "description": "/opt", - "size": 100, + "size": 102400, "tags": [], "custom_fields": {}, "created": "2025-06-02T13:44:01.016349Z", From c1a59464019c80c2f66f5ea43b136d9e282b90ba Mon Sep 17 00:00:00 2001 From: meoflynn Date: Tue, 26 May 2026 16:28:59 +0100 Subject: [PATCH 2/2] BUG: Correct storage conversion Netbox defines GB as SI/1000 and GiB as EIC/1024. Correcting formula for converting from MB to GB. --- aquilon/netbox2aquilon.py | 5 +++-- aquilon/testdata/disks_virtual.json | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/aquilon/netbox2aquilon.py b/aquilon/netbox2aquilon.py index e350bba..5b97880 100755 --- a/aquilon/netbox2aquilon.py +++ b/aquilon/netbox2aquilon.py @@ -141,7 +141,8 @@ def _netbox_copy_vm_disks(self, virtual_machine): boot = True for disk in virtual_disks: # Netbox stores virtual disk size in MB, Aquilon needs it in GB - virtual_disk_gb = round(disk.size / 1024) # to nearest GB + # For netbox 1000 MB = 1GB + virtual_disk_gb = round(disk.size / 1000) # to nearest GB cmd = [ 'add_disk', '--machine', f'{virtual_machine.aq_machine_name}', @@ -157,7 +158,7 @@ def _netbox_copy_vm_disks(self, virtual_machine): cmds.append(cmd) else: # Netbox stores disk size in MB, Aquilon needs it in GB - disk_gb = round(virtual_machine.disk / 1024) # to nearest GB + disk_gb = round(virtual_machine.disk / 1000) # to nearest GB cmds.append([ 'add_disk', '--machine', f'{virtual_machine.aq_machine_name}', diff --git a/aquilon/testdata/disks_virtual.json b/aquilon/testdata/disks_virtual.json index cd39acb..a2b5809 100644 --- a/aquilon/testdata/disks_virtual.json +++ b/aquilon/testdata/disks_virtual.json @@ -11,7 +11,7 @@ }, "name": "sda", "description": "", - "size": 40960, + "size": 40000, "tags": [], "custom_fields": {}, "created": "2025-06-02T13:43:40.552134Z", @@ -29,7 +29,7 @@ }, "name": "sdb", "description": "", - "size": 102400, + "size": 100000, "tags": [], "custom_fields": {}, "created": "2025-06-02T13:43:49.494852Z", @@ -47,7 +47,7 @@ }, "name": "sdc", "description": "/opt", - "size": 102400, + "size": 100000, "tags": [], "custom_fields": {}, "created": "2025-06-02T13:44:01.016349Z",