Skip to content

Commit c1d7696

Browse files
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 <[email protected]> --------- Co-authored-by: Jeremy Stretch <[email protected]>
1 parent 4da5bd6 commit c1d7696

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

netbox/templates/virtualization/virtualmachine.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ <h5 class="card-header">{% trans "Resources" %}</h5>
137137
</th>
138138
<td>
139139
{% if object.disk %}
140-
{{ object.disk }} {% trans "GB" context "Abbreviation for gigabyte" %}
140+
{{ object.disk|humanize_megabytes }}
141141
{% else %}
142142
{{ ''|placeholder }}
143143
{% endif %}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 5.0.6 on 2024-06-06 17:46
2+
3+
from django.db import migrations
4+
from django.db.models import F
5+
6+
7+
def convert_disk_size(apps, schema_editor):
8+
VirtualMachine = apps.get_model('virtualization', 'VirtualMachine')
9+
VirtualMachine.objects.filter(disk__isnull=False).update(disk=F('disk') * 1000)
10+
11+
12+
class Migration(migrations.Migration):
13+
14+
dependencies = [
15+
('virtualization', '0038_virtualdisk'),
16+
]
17+
18+
operations = [
19+
migrations.RunPython(
20+
code=convert_disk_size,
21+
reverse_code=migrations.RunPython.noop
22+
),
23+
]

netbox/virtualization/models/virtualmachines.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ class VirtualMachine(ContactsMixin, ImageAttachmentsMixin, RenderConfigMixin, Co
125125
disk = models.PositiveIntegerField(
126126
blank=True,
127127
null=True,
128-
verbose_name=_('disk (GB)')
128+
verbose_name=_('disk (MB)')
129129
)
130130

131131
# Counter fields

netbox/virtualization/tables/virtualmachines.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from dcim.tables.devices import BaseInterfaceTable
55
from netbox.tables import NetBoxTable, columns
66
from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin
7+
from utilities.templatetags.helpers import humanize_megabytes
78
from virtualization.models import VirtualDisk, VirtualMachine, VMInterface
89

910
__all__ = (
@@ -106,6 +107,9 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
106107
verbose_name=_('Config Template'),
107108
linkify=True
108109
)
110+
disk = tables.Column(
111+
verbose_name=_('Disk'),
112+
)
109113

110114
class Meta(NetBoxTable.Meta):
111115
model = VirtualMachine
@@ -118,6 +122,9 @@ class Meta(NetBoxTable.Meta):
118122
'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip',
119123
)
120124

125+
def render_disk(self, value):
126+
return humanize_megabytes(value)
127+
121128

122129
#
123130
# VM components

0 commit comments

Comments
 (0)