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 %}
<a href="{% url 'virtualization:virtualmachine_list' %}">Virtual Machines</a>
</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="dropdown-header">Clusters</li>
<li{% if not perms.virtualization.view_cluster %} class="disabled"{% endif %}>

View File

@ -173,7 +173,11 @@ class VirtualMachineDetailTable(VirtualMachineTable):
#
class VMInterfaceTable(BaseTable):
virtual_machine = tables.LinkColumn()
name = tables.Column(
linkify=True
)
class Meta(BaseTable.Meta):
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
# Blocked by #4721
class VMInterfaceTestCase(
ViewTestCases.ListObjectsViewTestCase,
ViewTestCases.GetObjectViewTestCase,
ViewTestCases.EditObjectViewTestCase,
ViewTestCases.DeleteObjectViewTestCase,

View File

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

View File

@ -290,11 +290,11 @@ class VirtualMachineBulkDeleteView(BulkDeleteView):
#
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_form = forms.VMInterfaceFilterForm
table = tables.VMInterfaceTable
action_buttons = ('import', 'export')
action_buttons = ('export',)
class InterfaceView(ObjectView):