Răsfoiți Sursa

Rename Interface to VMInterface

Jeremy Stretch 5 ani în urmă
părinte
comite
75354a8a78

+ 1 - 1
netbox/ipam/tests/test_filters.py

@@ -4,7 +4,7 @@ from dcim.models import Device, DeviceRole, DeviceType, Interface, Manufacturer,
 from ipam.choices import *
 from ipam.filters import *
 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
 
 

+ 2 - 2
netbox/virtualization/api/serializers.py

@@ -10,7 +10,7 @@ from ipam.models import VLAN
 from tenancy.api.nested_serializers import NestedTenantSerializer
 from utilities.api import ChoiceField, SerializedPKRelatedField, ValidatedModelSerializer
 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 *
 
 
@@ -106,7 +106,7 @@ class InterfaceSerializer(TaggedObjectSerializer, ValidatedModelSerializer):
     )
 
     class Meta:
-        model = Interface
+        model = VMInterface
         fields = [
             'id', 'virtual_machine', 'name', 'enabled', 'mtu', 'mac_address', 'description', 'mode', 'untagged_vlan',
             'tagged_vlans', 'tags',

+ 2 - 2
netbox/virtualization/api/views.py

@@ -5,7 +5,7 @@ from extras.api.views import CustomFieldModelViewSet
 from utilities.api import ModelViewSet
 from utilities.utils import get_subquery
 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
 
 
@@ -72,7 +72,7 @@ class VirtualMachineViewSet(CustomFieldModelViewSet):
 
 
 class InterfaceViewSet(ModelViewSet):
-    queryset = Interface.objects.filter(
+    queryset = VMInterface.objects.filter(
         virtual_machine__isnull=False
     ).prefetch_related(
         'virtual_machine', 'tags'

+ 2 - 2
netbox/virtualization/filters.py

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

+ 5 - 5
netbox/virtualization/forms.py

@@ -19,7 +19,7 @@ from utilities.forms import (
     StaticSelect2, StaticSelect2Multiple, TagFilterField, BOOLEAN_WITH_BLANK_CHOICES,
 )
 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:
-        model = Interface
+        model = VMInterface
         fields = [
             'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description', 'mode', 'tags', 'untagged_vlan',
             'tagged_vlans',
@@ -717,7 +717,7 @@ class InterfaceCreateForm(BootstrapMixin, forms.Form):
 
 class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm):
     pk = forms.ModelMultipleChoiceField(
-        queryset=Interface.objects.all(),
+        queryset=VMInterface.objects.all(),
         widget=forms.MultipleHiddenInput()
     )
     virtual_machine = forms.ModelChoiceField(
@@ -786,7 +786,7 @@ class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm):
 
 
 class InterfaceFilterForm(forms.Form):
-    model = Interface
+    model = VMInterface
     enabled = forms.NullBooleanField(
         required=False,
         widget=StaticSelect2(
@@ -816,7 +816,7 @@ class VirtualMachineBulkAddComponentForm(BootstrapMixin, forms.Form):
 
 
 class InterfaceBulkCreateForm(
-    form_from_model(Interface, ['enabled', 'mtu', 'description', 'tags']),
+    form_from_model(VMInterface, ['enabled', 'mtu', 'description', 'tags']),
     VirtualMachineBulkAddComponentForm
 ):
     pass

+ 2 - 1
netbox/virtualization/migrations/0015_interface.py → netbox/virtualization/migrations/0015_vminterface.py

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

+ 5 - 5
netbox/virtualization/migrations/0016_replicate_interfaces.py

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

+ 3 - 2
netbox/virtualization/models.py

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

+ 2 - 2
netbox/virtualization/tables.py

@@ -3,7 +3,7 @@ from django_tables2.utils import Accessor
 
 from tenancy.tables import COL_TENANT
 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 = """
 <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 Meta(BaseTable.Meta):
-        model = Interface
+        model = VMInterface
         fields = ('name', 'enabled', 'description')

+ 12 - 12
netbox/virtualization/tests/test_api.py

@@ -4,7 +4,7 @@ from rest_framework import status
 from dcim.choices import InterfaceModeChoices
 from ipam.models import VLAN
 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):
@@ -203,15 +203,15 @@ class InterfaceTest(APITestCase):
         clustertype = ClusterType.objects.create(name='Test Cluster Type 1', slug='test-cluster-type-1')
         cluster = Cluster.objects.create(name='Test Cluster 1', type=clustertype)
         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,
             name='Test Interface 1'
         )
-        self.interface2 = Interface.objects.create(
+        self.interface2 = VMInterface.objects.create(
             virtual_machine=self.virtualmachine,
             name='Test Interface 2'
         )
-        self.interface3 = Interface.objects.create(
+        self.interface3 = VMInterface.objects.create(
             virtual_machine=self.virtualmachine,
             name='Test Interface 3'
         )
@@ -254,8 +254,8 @@ class InterfaceTest(APITestCase):
 
         response = self.client.post(url, data, format='json', **self.header)
         self.assertHttpStatus(response, status.HTTP_201_CREATED)
-        self.assertEqual(Interface.objects.count(), 4)
-        interface4 = Interface.objects.get(pk=response.data['id'])
+        self.assertEqual(VMInterface.objects.count(), 4)
+        interface4 = VMInterface.objects.get(pk=response.data['id'])
         self.assertEqual(interface4.virtual_machine_id, data['virtual_machine'])
         self.assertEqual(interface4.name, data['name'])
 
@@ -272,7 +272,7 @@ class InterfaceTest(APITestCase):
 
         response = self.client.post(url, data, format='json', **self.header)
         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['name'], data['name'])
         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)
         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[1]['name'], data[1]['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)
         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):
             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'])
@@ -348,8 +348,8 @@ class InterfaceTest(APITestCase):
 
         response = self.client.put(url, data, format='json', **self.header)
         self.assertHttpStatus(response, status.HTTP_200_OK)
-        self.assertEqual(Interface.objects.count(), 3)
-        interface1 = Interface.objects.get(pk=response.data['id'])
+        self.assertEqual(VMInterface.objects.count(), 3)
+        interface1 = VMInterface.objects.get(pk=response.data['id'])
         self.assertEqual(interface1.name, data['name'])
 
     def test_delete_interface(self):
@@ -358,4 +358,4 @@ class InterfaceTest(APITestCase):
 
         response = self.client.delete(url, **self.header)
         self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
-        self.assertEqual(Interface.objects.count(), 2)
+        self.assertEqual(VMInterface.objects.count(), 2)

+ 10 - 10
netbox/virtualization/tests/test_filters.py

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

+ 6 - 6
netbox/virtualization/tests/test_views.py

@@ -5,7 +5,7 @@ from dcim.models import DeviceRole, Platform, Site
 from ipam.models import VLAN
 from utilities.testing import ViewTestCases
 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):
@@ -199,7 +199,7 @@ class InterfaceTestCase(
     ViewTestCases.BulkEditObjectsViewTestCase,
     ViewTestCases.BulkDeleteObjectsViewTestCase,
 ):
-    model = Interface
+    model = VMInterface
 
     @classmethod
     def setUpTestData(cls):
@@ -214,10 +214,10 @@ class InterfaceTestCase(
         )
         VirtualMachine.objects.bulk_create(virtualmachines)
 
-        Interface.objects.bulk_create([
-            Interface(virtual_machine=virtualmachines[0], name='Interface 1'),
-            Interface(virtual_machine=virtualmachines[0], name='Interface 2'),
-            Interface(virtual_machine=virtualmachines[0], name='Interface 3'),
+        VMInterface.objects.bulk_create([
+            VMInterface(virtual_machine=virtualmachines[0], name='Interface 1'),
+            VMInterface(virtual_machine=virtualmachines[0], name='Interface 2'),
+            VMInterface(virtual_machine=virtualmachines[0], name='Interface 3'),
         ])
 
         vlans = (

+ 10 - 10
netbox/virtualization/views.py

@@ -14,7 +14,7 @@ from utilities.views import (
     ObjectDeleteView, ObjectEditView, ObjectListView,
 )
 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):
 
         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)
 
         return render(request, 'virtualization/virtualmachine.html', {
@@ -290,7 +290,7 @@ class VirtualMachineBulkDeleteView(BulkDeleteView):
 #
 
 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_form = forms.InterfaceFilterForm
     table = tables.InterfaceTable
@@ -298,7 +298,7 @@ class InterfaceListView(ObjectListView):
 
 
 class InterfaceView(ObjectView):
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
 
     def get(self, request, pk):
 
@@ -333,30 +333,30 @@ class InterfaceView(ObjectView):
 
 # TODO: This should not use ComponentCreateView
 class InterfaceCreateView(ComponentCreateView):
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
     form = forms.InterfaceCreateForm
     model_form = forms.InterfaceForm
     template_name = 'virtualization/virtualmachine_component_add.html'
 
 
 class InterfaceEditView(ObjectEditView):
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
     model_form = forms.InterfaceForm
     template_name = 'virtualization/interface_edit.html'
 
 
 class InterfaceDeleteView(ObjectDeleteView):
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
 
 
 class InterfaceBulkEditView(BulkEditView):
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
     table = tables.InterfaceTable
     form = forms.InterfaceBulkEditForm
 
 
 class InterfaceBulkDeleteView(BulkDeleteView):
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
     table = tables.InterfaceTable
 
 
@@ -368,7 +368,7 @@ class VirtualMachineBulkAddInterfaceView(BulkComponentCreateView):
     parent_model = VirtualMachine
     parent_field = 'virtual_machine'
     form = forms.InterfaceBulkCreateForm
-    queryset = Interface.objects.all()
+    queryset = VMInterface.objects.all()
     model_form = forms.InterfaceForm
     filterset = filters.VirtualMachineFilterSet
     table = tables.VirtualMachineTable