1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Add VMInterface list view

This commit is contained in:
Jeremy Stretch
2020-06-23 16:52:05 -04:00
parent e3820e93b7
commit fce19a363d
5 changed files with 12 additions and 3 deletions

View File

@ -372,6 +372,9 @@
{% endif %} {% endif %}
<a href="{% url 'virtualization:virtualmachine_list' %}">Virtual Machines</a> <a href="{% url 'virtualization:virtualmachine_list' %}">Virtual Machines</a>
</li> </li>
<li{% if not perms.virtualization.view_vminterface%} class="disabled"{% endif %}>
<a href="{% url 'virtualization:vminterface_list' %}">Interfaces</a>
</li>
<li class="divider"></li> <li class="divider"></li>
<li class="dropdown-header">Clusters</li> <li class="dropdown-header">Clusters</li>
<li{% if not perms.virtualization.view_cluster %} class="disabled"{% endif %}> <li{% if not perms.virtualization.view_cluster %} class="disabled"{% endif %}>

View File

@ -173,7 +173,11 @@ class VirtualMachineDetailTable(VirtualMachineTable):
# #
class VMInterfaceTable(BaseTable): class VMInterfaceTable(BaseTable):
virtual_machine = tables.LinkColumn()
name = tables.Column(
linkify=True
)
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = VMInterface model = VMInterface
fields = ('name', 'enabled', 'description') fields = ('virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description')

View File

@ -192,6 +192,7 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
# TODO: Update base class to DeviceComponentViewTestCase # TODO: Update base class to DeviceComponentViewTestCase
# Blocked by #4721 # Blocked by #4721
class VMInterfaceTestCase( class VMInterfaceTestCase(
ViewTestCases.ListObjectsViewTestCase,
ViewTestCases.GetObjectViewTestCase, ViewTestCases.GetObjectViewTestCase,
ViewTestCases.EditObjectViewTestCase, ViewTestCases.EditObjectViewTestCase,
ViewTestCases.DeleteObjectViewTestCase, ViewTestCases.DeleteObjectViewTestCase,

View File

@ -51,6 +51,7 @@ urlpatterns = [
path('virtual-machines/<int:virtualmachine>/services/assign/', ServiceEditView.as_view(), name='virtualmachine_service_assign'), path('virtual-machines/<int:virtualmachine>/services/assign/', ServiceEditView.as_view(), name='virtualmachine_service_assign'),
# VM interfaces # VM interfaces
path('interfaces/', views.InterfaceListView.as_view(), name='vminterface_list'),
path('interfaces/add/', views.InterfaceCreateView.as_view(), name='vminterface_add'), path('interfaces/add/', views.InterfaceCreateView.as_view(), name='vminterface_add'),
path('interfaces/edit/', views.InterfaceBulkEditView.as_view(), name='vminterface_bulk_edit'), path('interfaces/edit/', views.InterfaceBulkEditView.as_view(), name='vminterface_bulk_edit'),
path('interfaces/delete/', views.InterfaceBulkDeleteView.as_view(), name='vminterface_bulk_delete'), path('interfaces/delete/', views.InterfaceBulkDeleteView.as_view(), name='vminterface_bulk_delete'),

View File

@ -290,11 +290,11 @@ class VirtualMachineBulkDeleteView(BulkDeleteView):
# #
class InterfaceListView(ObjectListView): class InterfaceListView(ObjectListView):
queryset = VMInterface.objects.prefetch_related('virtual_machine', 'virtual_machine__tenant', 'cable') queryset = VMInterface.objects.prefetch_related('virtual_machine')
filterset = filters.VMInterfaceFilterSet filterset = filters.VMInterfaceFilterSet
filterset_form = forms.VMInterfaceFilterForm filterset_form = forms.VMInterfaceFilterForm
table = tables.VMInterfaceTable table = tables.VMInterfaceTable
action_buttons = ('import', 'export') action_buttons = ('export',)
class InterfaceView(ObjectView): class InterfaceView(ObjectView):