Преглед изворни кода

Fixes #9128: Resolve component labels per module bay position when installing modules

jeremystretch пре 3 година
родитељ
комит
fa5cf665ce
2 измењених фајлова са 13 додато и 7 уклоњено
  1. 1 0
      docs/release-notes/version-3.2.md
  2. 12 7
      netbox/dcim/models/device_component_templates.py

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

@@ -26,6 +26,7 @@
 * [#9100](https://github.com/netbox-community/netbox/issues/9100) - Include position field in module type YAML export
 * [#9116](https://github.com/netbox-community/netbox/issues/9116) - `assigned_to_interface` filter for IP addresses should not match FHRP group assignments
 * [#9118](https://github.com/netbox-community/netbox/issues/9118) - Fix validation error when importing VM child interfaces
+* [#9128](https://github.com/netbox-community/netbox/issues/9128) - Resolve component labels per module bay position when installing modules
 
 ---
 

+ 12 - 7
netbox/dcim/models/device_component_templates.py

@@ -124,6 +124,11 @@ class ModularComponentTemplateModel(ComponentTemplateModel):
             return self.name.replace('{module}', module.module_bay.position)
         return self.name
 
+    def resolve_label(self, module):
+        if module:
+            return self.label.replace('{module}', module.module_bay.position)
+        return self.label
+
 
 class ConsolePortTemplate(ModularComponentTemplateModel):
     """
@@ -147,7 +152,7 @@ class ConsolePortTemplate(ModularComponentTemplateModel):
     def instantiate(self, **kwargs):
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             **kwargs
         )
@@ -175,7 +180,7 @@ class ConsoleServerPortTemplate(ModularComponentTemplateModel):
     def instantiate(self, **kwargs):
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             **kwargs
         )
@@ -215,7 +220,7 @@ class PowerPortTemplate(ModularComponentTemplateModel):
     def instantiate(self, **kwargs):
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             maximum_draw=self.maximum_draw,
             allocated_draw=self.allocated_draw,
@@ -286,7 +291,7 @@ class PowerOutletTemplate(ModularComponentTemplateModel):
             power_port = None
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             power_port=power_port,
             feed_leg=self.feed_leg,
@@ -326,7 +331,7 @@ class InterfaceTemplate(ModularComponentTemplateModel):
     def instantiate(self, **kwargs):
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             mgmt_only=self.mgmt_only,
             **kwargs
@@ -397,7 +402,7 @@ class FrontPortTemplate(ModularComponentTemplateModel):
             rear_port = None
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             color=self.color,
             rear_port=rear_port,
@@ -437,7 +442,7 @@ class RearPortTemplate(ModularComponentTemplateModel):
     def instantiate(self, **kwargs):
         return self.component_model(
             name=self.resolve_name(kwargs.get('module')),
-            label=self.label,
+            label=self.resolve_label(kwargs.get('module')),
             type=self.type,
             color=self.color,
             positions=self.positions,