Parcourir la source

Fixes #4252: Fix power port assignment for power outlet templates created via REST API

Jeremy Stretch il y a 6 ans
Parent
commit
61c0a4cc61

+ 1 - 0
docs/release-notes/version-2.7.md

@@ -14,6 +14,7 @@
 * [#4240](https://github.com/netbox-community/netbox/issues/4240) - Fix exception when filtering foreign keys by NULL
 * [#4241](https://github.com/netbox-community/netbox/issues/4241) - Correct IP address hyperlinks on interface view
 * [#4246](https://github.com/netbox-community/netbox/issues/4246) - Fix duplication of field attributes when multiple IPNetworkVars are present in a script
+* [#4252](https://github.com/netbox-community/netbox/issues/4252) - Fix power port assignment for power outlet templates created via REST API
 
 ---
 

+ 11 - 2
netbox/dcim/api/nested_serializers.py

@@ -3,8 +3,8 @@ from rest_framework import serializers
 from dcim.constants import CONNECTION_STATUS_CHOICES
 from dcim.models import (
     Cable, ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceType, DeviceRole, FrontPort, FrontPortTemplate,
-    Interface, Manufacturer, Platform, PowerFeed, PowerOutlet, PowerPanel, PowerPort, Rack, RackGroup, RackRole,
-    RearPort, RearPortTemplate, Region, Site, VirtualChassis,
+    Interface, Manufacturer, Platform, PowerFeed, PowerOutlet, PowerPanel, PowerPort, PowerPortTemplate, Rack,
+    RackGroup, RackRole, RearPort, RearPortTemplate, Region, Site, VirtualChassis,
 )
 from utilities.api import ChoiceField, WritableNestedSerializer
 
@@ -25,6 +25,7 @@ __all__ = [
     'NestedPowerOutletSerializer',
     'NestedPowerPanelSerializer',
     'NestedPowerPortSerializer',
+    'NestedPowerPortTemplateSerializer',
     'NestedRackGroupSerializer',
     'NestedRackRoleSerializer',
     'NestedRackSerializer',
@@ -111,6 +112,14 @@ class NestedDeviceTypeSerializer(WritableNestedSerializer):
         fields = ['id', 'url', 'manufacturer', 'model', 'slug', 'display_name', 'device_count']
 
 
+class NestedPowerPortTemplateSerializer(WritableNestedSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:powerporttemplate-detail')
+
+    class Meta:
+        model = PowerPortTemplate
+        fields = ['id', 'url', 'name']
+
+
 class NestedRearPortTemplateSerializer(WritableNestedSerializer):
     url = serializers.HyperlinkedIdentityField(view_name='dcim-api:rearporttemplate-detail')
 

+ 1 - 1
netbox/dcim/api/serializers.py

@@ -278,7 +278,7 @@ class PowerOutletTemplateSerializer(ValidatedModelSerializer):
         allow_blank=True,
         required=False
     )
-    power_port = PowerPortTemplateSerializer(
+    power_port = NestedPowerPortTemplateSerializer(
         required=False
     )
     feed_leg = ChoiceField(