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

Fixes #9306: Include VC master interfaces when selecting a LAG/bridge for a VC member interface

jeremystretch 3 лет назад
Родитель
Сommit
9b4e016fe4
2 измененных файлов с 11 добавлено и 0 удалено
  1. 1 0
      docs/release-notes/version-3.2.md
  2. 10 0
      netbox/dcim/forms/models.py

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

@@ -14,6 +14,7 @@
 ### Bug Fixes
 
 * [#9267](https://github.com/netbox-community/netbox/issues/9267) - Remove invalid entry in IP address role choices
+* [#9306](https://github.com/netbox-community/netbox/issues/9306) - Include VC master interfaces when selecting a LAG/bridge for a VC member interface
 * [#9311](https://github.com/netbox-community/netbox/issues/9311) - Permit creating contact assignment without a priority via the REST API
 
 ---

+ 10 - 0
netbox/dcim/forms/models.py

@@ -1295,6 +1295,16 @@ class InterfaceForm(InterfaceCommonForm, NetBoxModelForm):
             'rf_channel_width': "Populated by selected channel (if set)",
         }
 
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+
+        # Restrict LAG/bridge interface assignment by device/VC
+        device_id = self.data['device'] if self.is_bound else self.initial.get('device')
+        device = Device.objects.filter(pk=device_id).first()
+        if device and device.virtual_chassis and device.virtual_chassis.master:
+            self.fields['lag'].widget.add_query_param('device_id', device.virtual_chassis.master.pk)
+            self.fields['bridge'].widget.add_query_param('device_id', device.virtual_chassis.master.pk)
+
 
 class FrontPortForm(NetBoxModelForm):
     module = DynamicModelChoiceField(