Fixes #21704: Add port mappings to DeviceType & ModuleType YAML export (#21859)

This commit is contained in:
Ibtissam El alami
2026-04-09 15:41:14 +01:00
committed by GitHub
parent a93aae12fa
commit 0bc05f27f9
3 changed files with 25 additions and 0 deletions

View File

@@ -549,6 +549,14 @@ class PortTemplateMapping(PortMappingBase):
self.module_type = self.front_port.module_type
super().save(*args, **kwargs)
def to_yaml(self):
return {
'front_port': self.front_port.name,
'front_port_position': self.front_port_position,
'rear_port': self.rear_port.name,
'rear_port_position': self.rear_port_position,
}
class FrontPortTemplate(ModularComponentTemplateModel):
"""

View File

@@ -275,6 +275,15 @@ class DeviceType(ImageAttachmentsMixin, PrimaryModel, WeightMixin):
data['rear-ports'] = [
c.to_yaml() for c in self.rearporttemplates.all()
]
# Port mappings
port_mapping_data = [
c.to_yaml() for c in self.port_mappings.all()
]
if port_mapping_data:
data['port-mappings'] = port_mapping_data
if self.modulebaytemplates.exists():
data['module-bays'] = [
c.to_yaml() for c in self.modulebaytemplates.all()

View File

@@ -192,6 +192,14 @@ class ModuleType(ImageAttachmentsMixin, PrimaryModel, WeightMixin):
c.to_yaml() for c in self.rearporttemplates.all()
]
# Port mappings
port_mapping_data = [
c.to_yaml() for c in self.port_mappings.all()
]
if port_mapping_data:
data['port-mappings'] = port_mapping_data
return yaml.dump(dict(data), sort_keys=False)