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

Rename Interface to VMInterface

This commit is contained in:
Jeremy Stretch
2020-06-23 13:16:21 -04:00
parent d1bd010e05
commit 75354a8a78
13 changed files with 62 additions and 60 deletions

View File

@ -4,7 +4,7 @@ from dcim.models import Device, DeviceRole, DeviceType, Interface, Manufacturer,
from ipam.choices import * from ipam.choices import *
from ipam.filters import * from ipam.filters import *
from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
from virtualization.models import Cluster, ClusterType, Interface as VMInterface, VirtualMachine from virtualization.models import Cluster, ClusterType, VirtualMachine, VMInterface
from tenancy.models import Tenant, TenantGroup from tenancy.models import Tenant, TenantGroup

View File

@ -10,7 +10,7 @@ from ipam.models import VLAN
from tenancy.api.nested_serializers import NestedTenantSerializer from tenancy.api.nested_serializers import NestedTenantSerializer
from utilities.api import ChoiceField, SerializedPKRelatedField, ValidatedModelSerializer from utilities.api import ChoiceField, SerializedPKRelatedField, ValidatedModelSerializer
from virtualization.choices import * from virtualization.choices import *
from virtualization.models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
from .nested_serializers import * from .nested_serializers import *
@ -106,7 +106,7 @@ class InterfaceSerializer(TaggedObjectSerializer, ValidatedModelSerializer):
) )
class Meta: class Meta:
model = Interface model = VMInterface
fields = [ fields = [
'id', 'virtual_machine', 'name', 'enabled', 'mtu', 'mac_address', 'description', 'mode', 'untagged_vlan', 'id', 'virtual_machine', 'name', 'enabled', 'mtu', 'mac_address', 'description', 'mode', 'untagged_vlan',
'tagged_vlans', 'tags', 'tagged_vlans', 'tags',

View File

@ -5,7 +5,7 @@ from extras.api.views import CustomFieldModelViewSet
from utilities.api import ModelViewSet from utilities.api import ModelViewSet
from utilities.utils import get_subquery from utilities.utils import get_subquery
from virtualization import filters from virtualization import filters
from virtualization.models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
from . import serializers from . import serializers
@ -72,7 +72,7 @@ class VirtualMachineViewSet(CustomFieldModelViewSet):
class InterfaceViewSet(ModelViewSet): class InterfaceViewSet(ModelViewSet):
queryset = Interface.objects.filter( queryset = VMInterface.objects.filter(
virtual_machine__isnull=False virtual_machine__isnull=False
).prefetch_related( ).prefetch_related(
'virtual_machine', 'tags' 'virtual_machine', 'tags'

View File

@ -9,7 +9,7 @@ from utilities.filters import (
TreeNodeMultipleChoiceFilter, TreeNodeMultipleChoiceFilter,
) )
from .choices import * from .choices import *
from .models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
__all__ = ( __all__ = (
'ClusterFilterSet', 'ClusterFilterSet',
@ -222,7 +222,7 @@ class InterfaceFilterSet(BaseFilterSet):
) )
class Meta: class Meta:
model = Interface model = VMInterface
fields = ['id', 'name', 'enabled', 'mtu'] fields = ['id', 'name', 'enabled', 'mtu']
def search(self, queryset, name, value): def search(self, queryset, name, value):

View File

@ -19,7 +19,7 @@ from utilities.forms import (
StaticSelect2, StaticSelect2Multiple, TagFilterField, BOOLEAN_WITH_BLANK_CHOICES, StaticSelect2, StaticSelect2Multiple, TagFilterField, BOOLEAN_WITH_BLANK_CHOICES,
) )
from .choices import * from .choices import *
from .models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
# #
@ -600,7 +600,7 @@ class InterfaceForm(BootstrapMixin, forms.ModelForm):
) )
class Meta: class Meta:
model = Interface model = VMInterface
fields = [ fields = [
'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description', 'mode', 'tags', 'untagged_vlan', 'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description', 'mode', 'tags', 'untagged_vlan',
'tagged_vlans', 'tagged_vlans',
@ -717,7 +717,7 @@ class InterfaceCreateForm(BootstrapMixin, forms.Form):
class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm): class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Interface.objects.all(), queryset=VMInterface.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
) )
virtual_machine = forms.ModelChoiceField( virtual_machine = forms.ModelChoiceField(
@ -786,7 +786,7 @@ class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm):
class InterfaceFilterForm(forms.Form): class InterfaceFilterForm(forms.Form):
model = Interface model = VMInterface
enabled = forms.NullBooleanField( enabled = forms.NullBooleanField(
required=False, required=False,
widget=StaticSelect2( widget=StaticSelect2(
@ -816,7 +816,7 @@ class VirtualMachineBulkAddComponentForm(BootstrapMixin, forms.Form):
class InterfaceBulkCreateForm( class InterfaceBulkCreateForm(
form_from_model(Interface, ['enabled', 'mtu', 'description', 'tags']), form_from_model(VMInterface, ['enabled', 'mtu', 'description', 'tags']),
VirtualMachineBulkAddComponentForm VirtualMachineBulkAddComponentForm
): ):
pass pass

View File

@ -20,7 +20,7 @@ class Migration(migrations.Migration):
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Interface', name='VMInterface',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False)), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False)),
('name', models.CharField(max_length=64)), ('name', models.CharField(max_length=64)),
@ -38,6 +38,7 @@ class Migration(migrations.Migration):
options={ options={
'ordering': ('virtual_machine', utilities.query_functions.CollateAsChar('_name')), 'ordering': ('virtual_machine', utilities.query_functions.CollateAsChar('_name')),
'unique_together': {('virtual_machine', 'name')}, 'unique_together': {('virtual_machine', 'name')},
'verbose_name': 'interface',
}, },
), ),
] ]

View File

@ -8,10 +8,10 @@ def replicate_interfaces(apps, schema_editor):
TaggedItem = apps.get_model('extras', 'TaggedItem') TaggedItem = apps.get_model('extras', 'TaggedItem')
Interface = apps.get_model('dcim', 'Interface') Interface = apps.get_model('dcim', 'Interface')
IPAddress = apps.get_model('ipam', 'IPAddress') IPAddress = apps.get_model('ipam', 'IPAddress')
VMInterface = apps.get_model('virtualization', 'Interface') VMInterface = apps.get_model('virtualization', 'VMInterface')
interface_ct = ContentType.objects.get_for_model(Interface) interface_ct = ContentType.objects.get_for_model(Interface)
vm_interface_ct = ContentType.objects.get_for_model(VMInterface) vminterface_ct = ContentType.objects.get_for_model(VMInterface)
# Replicate dcim.Interface instances assigned to VirtualMachines # Replicate dcim.Interface instances assigned to VirtualMachines
original_interfaces = Interface.objects.filter(virtual_machine__isnull=False) original_interfaces = Interface.objects.filter(virtual_machine__isnull=False)
@ -35,12 +35,12 @@ def replicate_interfaces(apps, schema_editor):
TaggedItem.objects.filter( TaggedItem.objects.filter(
content_type=interface_ct, object_id=interface.pk content_type=interface_ct, object_id=interface.pk
).update( ).update(
content_type=vm_interface_ct, object_id=vm_interface.pk content_type=vminterface_ct, object_id=vm_interface.pk
) )
# Update any assigned IPAddresses # Update any assigned IPAddresses
IPAddress.objects.filter(assigned_object_id=interface.pk).update( IPAddress.objects.filter(assigned_object_id=interface.pk).update(
assigned_object_type=vm_interface_ct, assigned_object_type=vminterface_ct,
assigned_object_id=vm_interface.pk assigned_object_id=vm_interface.pk
) )
@ -59,7 +59,7 @@ class Migration(migrations.Migration):
dependencies = [ dependencies = [
('ipam', '0037_ipaddress_assignment'), ('ipam', '0037_ipaddress_assignment'),
('virtualization', '0015_interface'), ('virtualization', '0015_vminterface'),
] ]
operations = [ operations = [

View File

@ -20,8 +20,8 @@ __all__ = (
'Cluster', 'Cluster',
'ClusterGroup', 'ClusterGroup',
'ClusterType', 'ClusterType',
'Interface',
'VirtualMachine', 'VirtualMachine',
'VMInterface',
) )
@ -381,7 +381,7 @@ class VirtualMachine(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
# #
@extras_features('graphs', 'export_templates', 'webhooks') @extras_features('graphs', 'export_templates', 'webhooks')
class Interface(BaseInterface): class VMInterface(BaseInterface):
virtual_machine = models.ForeignKey( virtual_machine = models.ForeignKey(
to='virtualization.VirtualMachine', to='virtualization.VirtualMachine',
on_delete=models.CASCADE, on_delete=models.CASCADE,
@ -423,6 +423,7 @@ class Interface(BaseInterface):
] ]
class Meta: class Meta:
verbose_name = 'interface'
ordering = ('virtual_machine', CollateAsChar('_name')) ordering = ('virtual_machine', CollateAsChar('_name'))
unique_together = ('virtual_machine', 'name') unique_together = ('virtual_machine', 'name')

View File

@ -3,7 +3,7 @@ from django_tables2.utils import Accessor
from tenancy.tables import COL_TENANT from tenancy.tables import COL_TENANT
from utilities.tables import BaseTable, ColoredLabelColumn, TagColumn, ToggleColumn from utilities.tables import BaseTable, ColoredLabelColumn, TagColumn, ToggleColumn
from .models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
CLUSTERTYPE_ACTIONS = """ CLUSTERTYPE_ACTIONS = """
<a href="{% url 'virtualization:clustertype_changelog' slug=record.slug %}" class="btn btn-default btn-xs" title="Change log"> <a href="{% url 'virtualization:clustertype_changelog' slug=record.slug %}" class="btn btn-default btn-xs" title="Change log">
@ -175,5 +175,5 @@ class VirtualMachineDetailTable(VirtualMachineTable):
class InterfaceTable(BaseTable): class InterfaceTable(BaseTable):
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Interface model = VMInterface
fields = ('name', 'enabled', 'description') fields = ('name', 'enabled', 'description')

View File

@ -4,7 +4,7 @@ from rest_framework import status
from dcim.choices import InterfaceModeChoices from dcim.choices import InterfaceModeChoices
from ipam.models import VLAN from ipam.models import VLAN
from utilities.testing import APITestCase, APIViewTestCases from utilities.testing import APITestCase, APIViewTestCases
from virtualization.models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
class AppTest(APITestCase): class AppTest(APITestCase):
@ -203,15 +203,15 @@ class InterfaceTest(APITestCase):
clustertype = ClusterType.objects.create(name='Test Cluster Type 1', slug='test-cluster-type-1') clustertype = ClusterType.objects.create(name='Test Cluster Type 1', slug='test-cluster-type-1')
cluster = Cluster.objects.create(name='Test Cluster 1', type=clustertype) cluster = Cluster.objects.create(name='Test Cluster 1', type=clustertype)
self.virtualmachine = VirtualMachine.objects.create(cluster=cluster, name='Test VM 1') self.virtualmachine = VirtualMachine.objects.create(cluster=cluster, name='Test VM 1')
self.interface1 = Interface.objects.create( self.interface1 = VMInterface.objects.create(
virtual_machine=self.virtualmachine, virtual_machine=self.virtualmachine,
name='Test Interface 1' name='Test Interface 1'
) )
self.interface2 = Interface.objects.create( self.interface2 = VMInterface.objects.create(
virtual_machine=self.virtualmachine, virtual_machine=self.virtualmachine,
name='Test Interface 2' name='Test Interface 2'
) )
self.interface3 = Interface.objects.create( self.interface3 = VMInterface.objects.create(
virtual_machine=self.virtualmachine, virtual_machine=self.virtualmachine,
name='Test Interface 3' name='Test Interface 3'
) )
@ -254,8 +254,8 @@ class InterfaceTest(APITestCase):
response = self.client.post(url, data, format='json', **self.header) response = self.client.post(url, data, format='json', **self.header)
self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertHttpStatus(response, status.HTTP_201_CREATED)
self.assertEqual(Interface.objects.count(), 4) self.assertEqual(VMInterface.objects.count(), 4)
interface4 = Interface.objects.get(pk=response.data['id']) interface4 = VMInterface.objects.get(pk=response.data['id'])
self.assertEqual(interface4.virtual_machine_id, data['virtual_machine']) self.assertEqual(interface4.virtual_machine_id, data['virtual_machine'])
self.assertEqual(interface4.name, data['name']) self.assertEqual(interface4.name, data['name'])
@ -272,7 +272,7 @@ class InterfaceTest(APITestCase):
response = self.client.post(url, data, format='json', **self.header) response = self.client.post(url, data, format='json', **self.header)
self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertHttpStatus(response, status.HTTP_201_CREATED)
self.assertEqual(Interface.objects.count(), 4) self.assertEqual(VMInterface.objects.count(), 4)
self.assertEqual(response.data['virtual_machine']['id'], data['virtual_machine']) self.assertEqual(response.data['virtual_machine']['id'], data['virtual_machine'])
self.assertEqual(response.data['name'], data['name']) self.assertEqual(response.data['name'], data['name'])
self.assertEqual(response.data['untagged_vlan']['id'], data['untagged_vlan']) self.assertEqual(response.data['untagged_vlan']['id'], data['untagged_vlan'])
@ -298,7 +298,7 @@ class InterfaceTest(APITestCase):
response = self.client.post(url, data, format='json', **self.header) response = self.client.post(url, data, format='json', **self.header)
self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertHttpStatus(response, status.HTTP_201_CREATED)
self.assertEqual(Interface.objects.count(), 6) self.assertEqual(VMInterface.objects.count(), 6)
self.assertEqual(response.data[0]['name'], data[0]['name']) self.assertEqual(response.data[0]['name'], data[0]['name'])
self.assertEqual(response.data[1]['name'], data[1]['name']) self.assertEqual(response.data[1]['name'], data[1]['name'])
self.assertEqual(response.data[2]['name'], data[2]['name']) self.assertEqual(response.data[2]['name'], data[2]['name'])
@ -332,7 +332,7 @@ class InterfaceTest(APITestCase):
response = self.client.post(url, data, format='json', **self.header) response = self.client.post(url, data, format='json', **self.header)
self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertHttpStatus(response, status.HTTP_201_CREATED)
self.assertEqual(Interface.objects.count(), 6) self.assertEqual(VMInterface.objects.count(), 6)
for i in range(0, 3): for i in range(0, 3):
self.assertEqual(response.data[i]['name'], data[i]['name']) self.assertEqual(response.data[i]['name'], data[i]['name'])
self.assertEqual([v['id'] for v in response.data[i]['tagged_vlans']], data[i]['tagged_vlans']) self.assertEqual([v['id'] for v in response.data[i]['tagged_vlans']], data[i]['tagged_vlans'])
@ -348,8 +348,8 @@ class InterfaceTest(APITestCase):
response = self.client.put(url, data, format='json', **self.header) response = self.client.put(url, data, format='json', **self.header)
self.assertHttpStatus(response, status.HTTP_200_OK) self.assertHttpStatus(response, status.HTTP_200_OK)
self.assertEqual(Interface.objects.count(), 3) self.assertEqual(VMInterface.objects.count(), 3)
interface1 = Interface.objects.get(pk=response.data['id']) interface1 = VMInterface.objects.get(pk=response.data['id'])
self.assertEqual(interface1.name, data['name']) self.assertEqual(interface1.name, data['name'])
def test_delete_interface(self): def test_delete_interface(self):
@ -358,4 +358,4 @@ class InterfaceTest(APITestCase):
response = self.client.delete(url, **self.header) response = self.client.delete(url, **self.header)
self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
self.assertEqual(Interface.objects.count(), 2) self.assertEqual(VMInterface.objects.count(), 2)

View File

@ -4,7 +4,7 @@ from dcim.models import DeviceRole, Platform, Region, Site
from tenancy.models import Tenant, TenantGroup from tenancy.models import Tenant, TenantGroup
from virtualization.choices import * from virtualization.choices import *
from virtualization.filters import * from virtualization.filters import *
from virtualization.models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
class ClusterTypeTestCase(TestCase): class ClusterTypeTestCase(TestCase):
@ -260,11 +260,11 @@ class VirtualMachineTestCase(TestCase):
VirtualMachine.objects.bulk_create(vms) VirtualMachine.objects.bulk_create(vms)
interfaces = ( interfaces = (
Interface(virtual_machine=vms[0], name='Interface 1', mac_address='00-00-00-00-00-01'), VMInterface(virtual_machine=vms[0], name='Interface 1', mac_address='00-00-00-00-00-01'),
Interface(virtual_machine=vms[1], name='Interface 2', mac_address='00-00-00-00-00-02'), VMInterface(virtual_machine=vms[1], name='Interface 2', mac_address='00-00-00-00-00-02'),
Interface(virtual_machine=vms[2], name='Interface 3', mac_address='00-00-00-00-00-03'), VMInterface(virtual_machine=vms[2], name='Interface 3', mac_address='00-00-00-00-00-03'),
) )
Interface.objects.bulk_create(interfaces) VMInterface.objects.bulk_create(interfaces)
def test_id(self): def test_id(self):
params = {'id': self.queryset.values_list('pk', flat=True)[:2]} params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
@ -366,7 +366,7 @@ class VirtualMachineTestCase(TestCase):
class InterfaceTestCase(TestCase): class InterfaceTestCase(TestCase):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
filterset = InterfaceFilterSet filterset = InterfaceFilterSet
@classmethod @classmethod
@ -394,11 +394,11 @@ class InterfaceTestCase(TestCase):
VirtualMachine.objects.bulk_create(vms) VirtualMachine.objects.bulk_create(vms)
interfaces = ( interfaces = (
Interface(virtual_machine=vms[0], name='Interface 1', enabled=True, mtu=100, mac_address='00-00-00-00-00-01'), VMInterface(virtual_machine=vms[0], name='Interface 1', enabled=True, mtu=100, mac_address='00-00-00-00-00-01'),
Interface(virtual_machine=vms[1], name='Interface 2', enabled=True, mtu=200, mac_address='00-00-00-00-00-02'), VMInterface(virtual_machine=vms[1], name='Interface 2', enabled=True, mtu=200, mac_address='00-00-00-00-00-02'),
Interface(virtual_machine=vms[2], name='Interface 3', enabled=False, mtu=300, mac_address='00-00-00-00-00-03'), VMInterface(virtual_machine=vms[2], name='Interface 3', enabled=False, mtu=300, mac_address='00-00-00-00-00-03'),
) )
Interface.objects.bulk_create(interfaces) VMInterface.objects.bulk_create(interfaces)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] id_list = self.queryset.values_list('id', flat=True)[:2]

View File

@ -5,7 +5,7 @@ from dcim.models import DeviceRole, Platform, Site
from ipam.models import VLAN from ipam.models import VLAN
from utilities.testing import ViewTestCases from utilities.testing import ViewTestCases
from virtualization.choices import * from virtualization.choices import *
from virtualization.models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
class ClusterGroupTestCase(ViewTestCases.OrganizationalObjectViewTestCase): class ClusterGroupTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
@ -199,7 +199,7 @@ class InterfaceTestCase(
ViewTestCases.BulkEditObjectsViewTestCase, ViewTestCases.BulkEditObjectsViewTestCase,
ViewTestCases.BulkDeleteObjectsViewTestCase, ViewTestCases.BulkDeleteObjectsViewTestCase,
): ):
model = Interface model = VMInterface
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -214,10 +214,10 @@ class InterfaceTestCase(
) )
VirtualMachine.objects.bulk_create(virtualmachines) VirtualMachine.objects.bulk_create(virtualmachines)
Interface.objects.bulk_create([ VMInterface.objects.bulk_create([
Interface(virtual_machine=virtualmachines[0], name='Interface 1'), VMInterface(virtual_machine=virtualmachines[0], name='Interface 1'),
Interface(virtual_machine=virtualmachines[0], name='Interface 2'), VMInterface(virtual_machine=virtualmachines[0], name='Interface 2'),
Interface(virtual_machine=virtualmachines[0], name='Interface 3'), VMInterface(virtual_machine=virtualmachines[0], name='Interface 3'),
]) ])
vlans = ( vlans = (

View File

@ -14,7 +14,7 @@ from utilities.views import (
ObjectDeleteView, ObjectEditView, ObjectListView, ObjectDeleteView, ObjectEditView, ObjectListView,
) )
from . import filters, forms, tables from . import filters, forms, tables
from .models import Cluster, ClusterGroup, ClusterType, Interface, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
# #
@ -236,7 +236,7 @@ class VirtualMachineView(ObjectView):
def get(self, request, pk): def get(self, request, pk):
virtualmachine = get_object_or_404(self.queryset, pk=pk) virtualmachine = get_object_or_404(self.queryset, pk=pk)
interfaces = Interface.objects.restrict(request.user, 'view').filter(virtual_machine=virtualmachine) interfaces = VMInterface.objects.restrict(request.user, 'view').filter(virtual_machine=virtualmachine)
services = Service.objects.restrict(request.user, 'view').filter(virtual_machine=virtualmachine) services = Service.objects.restrict(request.user, 'view').filter(virtual_machine=virtualmachine)
return render(request, 'virtualization/virtualmachine.html', { return render(request, 'virtualization/virtualmachine.html', {
@ -290,7 +290,7 @@ class VirtualMachineBulkDeleteView(BulkDeleteView):
# #
class InterfaceListView(ObjectListView): class InterfaceListView(ObjectListView):
queryset = Interface.objects.prefetch_related('virtual_machine', 'virtual_machine__tenant', 'cable') queryset = VMInterface.objects.prefetch_related('virtual_machine', 'virtual_machine__tenant', 'cable')
filterset = filters.InterfaceFilterSet filterset = filters.InterfaceFilterSet
filterset_form = forms.InterfaceFilterForm filterset_form = forms.InterfaceFilterForm
table = tables.InterfaceTable table = tables.InterfaceTable
@ -298,7 +298,7 @@ class InterfaceListView(ObjectListView):
class InterfaceView(ObjectView): class InterfaceView(ObjectView):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
def get(self, request, pk): def get(self, request, pk):
@ -333,30 +333,30 @@ class InterfaceView(ObjectView):
# TODO: This should not use ComponentCreateView # TODO: This should not use ComponentCreateView
class InterfaceCreateView(ComponentCreateView): class InterfaceCreateView(ComponentCreateView):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
form = forms.InterfaceCreateForm form = forms.InterfaceCreateForm
model_form = forms.InterfaceForm model_form = forms.InterfaceForm
template_name = 'virtualization/virtualmachine_component_add.html' template_name = 'virtualization/virtualmachine_component_add.html'
class InterfaceEditView(ObjectEditView): class InterfaceEditView(ObjectEditView):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
model_form = forms.InterfaceForm model_form = forms.InterfaceForm
template_name = 'virtualization/interface_edit.html' template_name = 'virtualization/interface_edit.html'
class InterfaceDeleteView(ObjectDeleteView): class InterfaceDeleteView(ObjectDeleteView):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
class InterfaceBulkEditView(BulkEditView): class InterfaceBulkEditView(BulkEditView):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
table = tables.InterfaceTable table = tables.InterfaceTable
form = forms.InterfaceBulkEditForm form = forms.InterfaceBulkEditForm
class InterfaceBulkDeleteView(BulkDeleteView): class InterfaceBulkDeleteView(BulkDeleteView):
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
table = tables.InterfaceTable table = tables.InterfaceTable
@ -368,7 +368,7 @@ class VirtualMachineBulkAddInterfaceView(BulkComponentCreateView):
parent_model = VirtualMachine parent_model = VirtualMachine
parent_field = 'virtual_machine' parent_field = 'virtual_machine'
form = forms.InterfaceBulkCreateForm form = forms.InterfaceBulkCreateForm
queryset = Interface.objects.all() queryset = VMInterface.objects.all()
model_form = forms.InterfaceForm model_form = forms.InterfaceForm
filterset = filters.VirtualMachineFilterSet filterset = filters.VirtualMachineFilterSet
table = tables.VirtualMachineTable table = tables.VirtualMachineTable