mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-29 11:56:25 -06:00
Fix bulk edit/create tests (bulk editing Interfaces will be unsupported because of inheritance from ComponentBulkEditForm)
This commit is contained in:
parent
2536f941cb
commit
2d767b619c
@ -218,7 +218,12 @@ class InterfaceSerializer(NetBoxModelSerializer, CabledObjectSerializer, Connect
|
||||
)
|
||||
count_ipaddresses = serializers.IntegerField(read_only=True)
|
||||
count_fhrp_groups = serializers.IntegerField(read_only=True)
|
||||
mac_address = MACAddressSerializer(read_only=True, allow_null=True)
|
||||
mac_address = serializers.CharField(
|
||||
required=False,
|
||||
default=None,
|
||||
allow_blank=True,
|
||||
allow_null=True
|
||||
)
|
||||
wwn = serializers.CharField(required=False, default=None, allow_blank=True, allow_null=True)
|
||||
|
||||
class Meta:
|
||||
|
@ -1521,6 +1521,11 @@ class InterfaceBulkEditForm(
|
||||
'group_id': '$wireless_lan_group',
|
||||
}
|
||||
)
|
||||
mac_address = forms.CharField(
|
||||
empty_value=None,
|
||||
required=False,
|
||||
label=_('MAC Address')
|
||||
)
|
||||
|
||||
model = Interface
|
||||
fieldsets = (
|
||||
|
@ -1539,11 +1539,18 @@ class InterfaceForm(InterfaceCommonForm, ModularDeviceComponentForm):
|
||||
}
|
||||
|
||||
def clean_mac_address(self):
|
||||
return MACAddress.objects.create(mac_address=self.cleaned_data['mac_address'])
|
||||
if self.cleaned_data['mac_address'] and (
|
||||
not self.instance.pk or
|
||||
not MACAddress.objects.filter(mac_address=self.cleaned_data['mac_address'], interface=self.instance).exists()
|
||||
):
|
||||
mac_address = MACAddress.objects.create(mac_address=self.cleaned_data['mac_address'])
|
||||
return mac_address
|
||||
return None
|
||||
|
||||
def save(self, commit=True):
|
||||
result = super().save(commit=commit)
|
||||
self.instance.mac_addresses.add(self.cleaned_data['mac_address'])
|
||||
if self.cleaned_data['mac_address']:
|
||||
self.instance.mac_addresses.add(self.cleaned_data['mac_address'])
|
||||
return result
|
||||
|
||||
|
||||
|
@ -2554,7 +2554,7 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
|
||||
'type': InterfaceTypeChoices.TYPE_1GE_FIXED,
|
||||
'enabled': True,
|
||||
'lag': interfaces[3].pk,
|
||||
'mac_address': EUI('01:02:03:04:05:06'),
|
||||
# 'mac_address': EUI('01:02:03:04:05:06'),
|
||||
'wwn': EUI('01:02:03:04:05:06:07:08', version=64),
|
||||
'mtu': 2000,
|
||||
'speed': 1000000,
|
||||
|
@ -2,7 +2,6 @@ from drf_spectacular.utils import extend_schema_field
|
||||
from rest_framework import serializers
|
||||
|
||||
from dcim.api.serializers_.devices import DeviceSerializer
|
||||
from dcim.api.serializers_.device_components import MACAddressSerializer
|
||||
from dcim.api.serializers_.platforms import PlatformSerializer
|
||||
from dcim.api.serializers_.roles import DeviceRoleSerializer
|
||||
from dcim.api.serializers_.sites import SiteSerializer
|
||||
@ -95,7 +94,11 @@ class VMInterfaceSerializer(NetBoxModelSerializer):
|
||||
l2vpn_termination = L2VPNTerminationSerializer(nested=True, read_only=True, allow_null=True)
|
||||
count_ipaddresses = serializers.IntegerField(read_only=True)
|
||||
count_fhrp_groups = serializers.IntegerField(read_only=True)
|
||||
mac_address = MACAddressSerializer(read_only=True, allow_null=True)
|
||||
mac_address = serializers.CharField(
|
||||
required=False,
|
||||
default=None,
|
||||
allow_null=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = VMInterface
|
||||
|
@ -260,6 +260,11 @@ class VMInterfaceBulkEditForm(NetBoxModelBulkEditForm):
|
||||
required=False,
|
||||
label=_('VRF')
|
||||
)
|
||||
mac_address = forms.CharField(
|
||||
empty_value=None,
|
||||
required=False,
|
||||
label=_('MAC Address')
|
||||
)
|
||||
|
||||
model = VMInterface
|
||||
fieldsets = (
|
||||
|
Loading…
Reference in New Issue
Block a user