Просмотр исходного кода

14692 Convert VM disk size (#16434)

* 14692 convert disk size to MB

* 14692 fix list display

* 14692 fix migration

* Update netbox/virtualization/migrations/0039_convert_disk_size.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
Arthur Hanson 1 год назад
Родитель
Сommit
c1d7696b2a

+ 1 - 1
netbox/templates/virtualization/virtualmachine.html

@@ -137,7 +137,7 @@
                   </th>
                   </th>
                   <td>
                   <td>
                     {% if object.disk %}
                     {% if object.disk %}
-                      {{ object.disk }} {% trans "GB" context "Abbreviation for gigabyte" %}
+                      {{ object.disk|humanize_megabytes }}
                     {% else %}
                     {% else %}
                       {{ ''|placeholder }}
                       {{ ''|placeholder }}
                     {% endif %}
                     {% endif %}

+ 23 - 0
netbox/virtualization/migrations/0039_convert_disk_size.py

@@ -0,0 +1,23 @@
+# Generated by Django 5.0.6 on 2024-06-06 17:46
+
+from django.db import migrations
+from django.db.models import F
+
+
+def convert_disk_size(apps, schema_editor):
+    VirtualMachine = apps.get_model('virtualization', 'VirtualMachine')
+    VirtualMachine.objects.filter(disk__isnull=False).update(disk=F('disk') * 1000)
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('virtualization', '0038_virtualdisk'),
+    ]
+
+    operations = [
+        migrations.RunPython(
+            code=convert_disk_size,
+            reverse_code=migrations.RunPython.noop
+        ),
+    ]

+ 1 - 1
netbox/virtualization/models/virtualmachines.py

@@ -125,7 +125,7 @@ class VirtualMachine(ContactsMixin, ImageAttachmentsMixin, RenderConfigMixin, Co
     disk = models.PositiveIntegerField(
     disk = models.PositiveIntegerField(
         blank=True,
         blank=True,
         null=True,
         null=True,
-        verbose_name=_('disk (GB)')
+        verbose_name=_('disk (MB)')
     )
     )
 
 
     # Counter fields
     # Counter fields

+ 7 - 0
netbox/virtualization/tables/virtualmachines.py

@@ -4,6 +4,7 @@ from django.utils.translation import gettext_lazy as _
 from dcim.tables.devices import BaseInterfaceTable
 from dcim.tables.devices import BaseInterfaceTable
 from netbox.tables import NetBoxTable, columns
 from netbox.tables import NetBoxTable, columns
 from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin
 from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin
+from utilities.templatetags.helpers import humanize_megabytes
 from virtualization.models import VirtualDisk, VirtualMachine, VMInterface
 from virtualization.models import VirtualDisk, VirtualMachine, VMInterface
 
 
 __all__ = (
 __all__ = (
@@ -106,6 +107,9 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
         verbose_name=_('Config Template'),
         verbose_name=_('Config Template'),
         linkify=True
         linkify=True
     )
     )
+    disk = tables.Column(
+        verbose_name=_('Disk'),
+    )
 
 
     class Meta(NetBoxTable.Meta):
     class Meta(NetBoxTable.Meta):
         model = VirtualMachine
         model = VirtualMachine
@@ -118,6 +122,9 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
             'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip',
             'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip',
         )
         )
 
 
+    def render_disk(self, value):
+        return humanize_megabytes(value)
+
 
 
 #
 #
 # VM components
 # VM components