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>
This commit is contained in:
Arthur Hanson 2024-06-11 06:19:57 -07:00 committed by GitHub
parent 4da5bd6ed1
commit c1d7696b2a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 32 additions and 2 deletions

View File

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

View File

@ -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
),
]

View File

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

View File

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