mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-16 04:02:52 -06:00
Fixes #6070: Add missing 'count_ipaddresses' attribute to VMInterface serializer
This commit is contained in:
parent
f096c4a5d0
commit
e69251b21a
@ -12,6 +12,7 @@
|
|||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
* [#5805](https://github.com/netbox-community/netbox/issues/5805) - Fix missing custom field filters for cables, rack reservations
|
* [#5805](https://github.com/netbox-community/netbox/issues/5805) - Fix missing custom field filters for cables, rack reservations
|
||||||
|
* [#6070](https://github.com/netbox-community/netbox/issues/6070) - Add missing `count_ipaddresses` attribute to VMInterface serializer
|
||||||
* [#6073](https://github.com/netbox-community/netbox/issues/6073) - Permit users to manage their own REST API tokens without needing explicit permission
|
* [#6073](https://github.com/netbox-community/netbox/issues/6073) - Permit users to manage their own REST API tokens without needing explicit permission
|
||||||
* [#6081](https://github.com/netbox-community/netbox/issues/6081) - Fix interface connections REST API endpoint
|
* [#6081](https://github.com/netbox-community/netbox/issues/6081) - Fix interface connections REST API endpoint
|
||||||
* [#6108](https://github.com/netbox-community/netbox/issues/6108) - Do not infer tenant assignment from parent objects for prefixes, IP addresses
|
* [#6108](https://github.com/netbox-community/netbox/issues/6108) - Do not infer tenant assignment from parent objects for prefixes, IP addresses
|
||||||
|
@ -478,6 +478,10 @@ class BaseInterface(models.Model):
|
|||||||
|
|
||||||
return super().save(*args, **kwargs)
|
return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def count_ipaddresses(self):
|
||||||
|
return self.ip_addresses.count()
|
||||||
|
|
||||||
|
|
||||||
@extras_features('export_templates', 'webhooks', 'custom_links')
|
@extras_features('export_templates', 'webhooks', 'custom_links')
|
||||||
class Interface(CableTermination, PathEndpoint, ComponentModel, BaseInterface):
|
class Interface(CableTermination, PathEndpoint, ComponentModel, BaseInterface):
|
||||||
@ -615,10 +619,6 @@ class Interface(CableTermination, PathEndpoint, ComponentModel, BaseInterface):
|
|||||||
def is_lag(self):
|
def is_lag(self):
|
||||||
return self.type == InterfaceTypeChoices.TYPE_LAG
|
return self.type == InterfaceTypeChoices.TYPE_LAG
|
||||||
|
|
||||||
@property
|
|
||||||
def count_ipaddresses(self):
|
|
||||||
return self.ip_addresses.count()
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Pass-through ports
|
# Pass-through ports
|
||||||
|
@ -109,12 +109,13 @@ class VMInterfaceSerializer(TaggedObjectSerializer, ValidatedModelSerializer):
|
|||||||
required=False,
|
required=False,
|
||||||
many=True
|
many=True
|
||||||
)
|
)
|
||||||
|
count_ipaddresses = serializers.IntegerField(read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = VMInterface
|
model = VMInterface
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'url', 'virtual_machine', 'name', 'enabled', 'mtu', 'mac_address', 'description', 'mode',
|
'id', 'url', 'virtual_machine', 'name', 'enabled', 'mtu', 'mac_address', 'description', 'mode',
|
||||||
'untagged_vlan', 'tagged_vlans', 'tags',
|
'untagged_vlan', 'tagged_vlans', 'tags', 'count_ipaddresses',
|
||||||
]
|
]
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
|
@ -80,7 +80,7 @@ class VirtualMachineViewSet(ConfigContextQuerySetMixin, CustomFieldModelViewSet)
|
|||||||
|
|
||||||
class VMInterfaceViewSet(ModelViewSet):
|
class VMInterfaceViewSet(ModelViewSet):
|
||||||
queryset = VMInterface.objects.prefetch_related(
|
queryset = VMInterface.objects.prefetch_related(
|
||||||
'virtual_machine', 'tags', 'tagged_vlans'
|
'virtual_machine', 'tags', 'tagged_vlans', 'ip_addresses',
|
||||||
)
|
)
|
||||||
serializer_class = serializers.VMInterfaceSerializer
|
serializer_class = serializers.VMInterfaceSerializer
|
||||||
filterset_class = filters.VMInterfaceFilterSet
|
filterset_class = filters.VMInterfaceFilterSet
|
||||||
|
Loading…
Reference in New Issue
Block a user