From 039c2a6d579b3ce8a3bad53e71524e5d19eaf678 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 15 Sep 2017 11:47:29 -0400 Subject: [PATCH] Closes #1496: Added primary IP column to virtual machine list --- netbox/virtualization/tables.py | 16 ++++++++++++++++ netbox/virtualization/views.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/netbox/virtualization/tables.py b/netbox/virtualization/tables.py index 28bf1c12a..7956f898e 100644 --- a/netbox/virtualization/tables.py +++ b/netbox/virtualization/tables.py @@ -24,6 +24,12 @@ VIRTUALMACHINE_STATUS = """ {{ record.get_status_display }} """ +VIRTUALMACHINE_PRIMARY_IP = """ +{{ record.primary_ip6.address.ip|default:"" }} +{% if record.primary_ip6 and record.primary_ip4 %}
{% endif %} +{{ record.primary_ip4.address.ip|default:"" }} +""" + # # Cluster types @@ -92,6 +98,16 @@ class VirtualMachineTable(BaseTable): fields = ('pk', 'name', 'status', 'cluster', 'tenant', 'vcpus', 'memory', 'disk') +class VirtualMachineDetailTable(VirtualMachineTable): + primary_ip = tables.TemplateColumn( + orderable=False, verbose_name='IP Address', template_code=VIRTUALMACHINE_PRIMARY_IP + ) + + class Meta(BaseTable.Meta): + model = VirtualMachine + fields = ('pk', 'name', 'status', 'cluster', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip') + + # # VM components # diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 460715a41..0b490db9a 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -239,10 +239,10 @@ class ClusterRemoveDevicesView(PermissionRequiredMixin, View): # class VirtualMachineListView(ObjectListView): - queryset = VirtualMachine.objects.select_related('cluster', 'tenant') + queryset = VirtualMachine.objects.select_related('cluster', 'tenant', 'primary_ip4', 'primary_ip6') filter = filters.VirtualMachineFilter filter_form = forms.VirtualMachineFilterForm - table = tables.VirtualMachineTable + table = tables.VirtualMachineDetailTable template_name = 'virtualization/virtualmachine_list.html'