Просмотр исходного кода

Fixes #7589: Correct 128GFC interface type identifier

jeremystretch 4 лет назад
Родитель
Сommit
b7b5a5788f

+ 2 - 0
docs/release-notes/version-3.1.md

@@ -3,6 +3,7 @@
 ### Breaking Changes
 
 * Exported webhooks and custom fields now reference associated content types by raw string value (e.g. "dcim.site") rather than by human-friendly name.
+* The 128GFC interface type has been corrected from `128gfc-sfp28` to `128gfc-qsfp28`.
 
 ### Enhancements
 
@@ -14,6 +15,7 @@
 
 ### Bug Fixes
 
+* [#7589](https://github.com/netbox-community/netbox/issues/7589) - Correct 128GFC interface type identifier
 * [#7756](https://github.com/netbox-community/netbox/issues/7756) - Fix AttributeError exception when editing an IP address assigned to a FHRPGroup
 * [#7757](https://github.com/netbox-community/netbox/issues/7757) - Fix 404 when assigning multiple contacts/FHRP groups in succession
 * [#7768](https://github.com/netbox-community/netbox/issues/7768) - Validate IP address status when creating a new FHRP group

+ 1 - 1
netbox/dcim/choices.py

@@ -782,7 +782,7 @@ class InterfaceTypeChoices(ChoiceSet):
     TYPE_16GFC_SFP_PLUS = '16gfc-sfpp'
     TYPE_32GFC_SFP28 = '32gfc-sfp28'
     TYPE_64GFC_QSFP_PLUS = '64gfc-qsfpp'
-    TYPE_128GFC_QSFP28 = '128gfc-sfp28'
+    TYPE_128GFC_QSFP28 = '128gfc-qsfp28'
 
     # InfiniBand
     TYPE_INFINIBAND_SDR = 'infiniband-sdr'

+ 29 - 0
netbox/dcim/migrations/0142_rename_128gfc_qsfp28.py

@@ -0,0 +1,29 @@
+from django.db import migrations
+
+OLD_VALUE = '128gfc-sfp28'
+NEW_VALUE = '128gfc-qsfp28'
+
+
+def correct_type(apps, schema_editor):
+    """
+    Correct TYPE_128GFC_QSFP28 interface type.
+    """
+    Interface = apps.get_model('dcim', 'Interface')
+    InterfaceTemplate = apps.get_model('dcim', 'InterfaceTemplate')
+
+    for model in (Interface, InterfaceTemplate):
+        model.objects.filter(type=OLD_VALUE).update(type=NEW_VALUE)
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('dcim', '0141_asn_model'),
+    ]
+
+    operations = [
+        migrations.RunPython(
+            code=correct_type,
+            reverse_code=migrations.RunPython.noop
+        ),
+    ]