Browse Source

Fixes #1609: Added missing virtual_machine field to IP address interface serializer

Jeremy Stretch 7 years ago
parent
commit
6f2f8697ae
2 changed files with 13 additions and 2 deletions
  1. 12 1
      netbox/ipam/api/serializers.py
  2. 1 1
      netbox/ipam/api/views.py

+ 12 - 1
netbox/ipam/api/serializers.py

@@ -240,12 +240,22 @@ class WritablePrefixSerializer(CustomFieldModelSerializer):
 # IP addresses
 #
 
+class IPAddressInterfaceSerializer(InterfaceSerializer):
+    virtual_machine = NestedVirtualMachineSerializer()
+
+    class Meta(InterfaceSerializer.Meta):
+        fields = [
+            'id', 'device', 'virtual_machine', 'name', 'form_factor', 'enabled', 'lag', 'mtu', 'mac_address',
+            'mgmt_only', 'description', 'is_connected', 'interface_connection', 'circuit_termination',
+        ]
+
+
 class IPAddressSerializer(CustomFieldModelSerializer):
     vrf = NestedVRFSerializer()
     tenant = NestedTenantSerializer()
     status = ChoiceFieldSerializer(choices=IPADDRESS_STATUS_CHOICES)
     role = ChoiceFieldSerializer(choices=IPADDRESS_ROLE_CHOICES)
-    interface = InterfaceSerializer()
+    interface = IPAddressInterfaceSerializer()
 
     class Meta:
         model = IPAddress
@@ -262,6 +272,7 @@ class NestedIPAddressSerializer(serializers.ModelSerializer):
         model = IPAddress
         fields = ['id', 'url', 'family', 'address']
 
+
 IPAddressSerializer._declared_fields['nat_inside'] = NestedIPAddressSerializer()
 IPAddressSerializer._declared_fields['nat_outside'] = NestedIPAddressSerializer()
 

+ 1 - 1
netbox/ipam/api/views.py

@@ -151,7 +151,7 @@ class IPAddressViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
     queryset = IPAddress.objects.select_related(
         'vrf__tenant', 'tenant', 'nat_inside'
     ).prefetch_related(
-        'interface__device'
+        'interface__device', 'interface__virtual_machine'
     )
     serializer_class = serializers.IPAddressSerializer
     write_serializer_class = serializers.WritableIPAddressSerializer