Browse Source

Closes #1496: Added primary IP column to virtual machine list

Jeremy Stretch 7 years ago
parent
commit
039c2a6d57
2 changed files with 18 additions and 2 deletions
  1. 16 0
      netbox/virtualization/tables.py
  2. 2 2
      netbox/virtualization/views.py

+ 16 - 0
netbox/virtualization/tables.py

@@ -24,6 +24,12 @@ VIRTUALMACHINE_STATUS = """
 <span class="label label-{{ record.get_status_class }}">{{ record.get_status_display }}</span>
 """
 
+VIRTUALMACHINE_PRIMARY_IP = """
+{{ record.primary_ip6.address.ip|default:"" }}
+{% if record.primary_ip6 and record.primary_ip4 %}<br />{% 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
 #

+ 2 - 2
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'