mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-15 21:09:36 -06:00
Enable defining port mappings when importing device/module types
This commit is contained in:
parent
9e367b8fc1
commit
fa70430942
@ -13,6 +13,7 @@ __all__ = (
|
||||
'InterfaceTemplateImportForm',
|
||||
'InventoryItemTemplateImportForm',
|
||||
'ModuleBayTemplateImportForm',
|
||||
'PortTemplateMappingImportForm',
|
||||
'PowerOutletTemplateImportForm',
|
||||
'PowerPortTemplateImportForm',
|
||||
'RearPortTemplateImportForm',
|
||||
@ -134,6 +135,25 @@ class RearPortTemplateImportForm(forms.ModelForm):
|
||||
]
|
||||
|
||||
|
||||
class PortTemplateMappingImportForm(forms.ModelForm):
|
||||
front_port = forms.ModelChoiceField(
|
||||
label=_('Front port'),
|
||||
queryset=FrontPortTemplate.objects.all(),
|
||||
to_field_name='name',
|
||||
)
|
||||
rear_port = forms.ModelChoiceField(
|
||||
label=_('Rear port'),
|
||||
queryset=RearPortTemplate.objects.all(),
|
||||
to_field_name='name',
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = PortTemplateMapping
|
||||
fields = [
|
||||
'front_port', 'front_port_position', 'rear_port', 'rear_port_position',
|
||||
]
|
||||
|
||||
|
||||
class ModuleBayTemplateImportForm(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
|
||||
@ -865,12 +865,16 @@ rear-ports:
|
||||
front-ports:
|
||||
- name: Front Port 1
|
||||
type: 8p8c
|
||||
rear_port: Rear Port 1
|
||||
- name: Front Port 2
|
||||
type: 8p8c
|
||||
rear_port: Rear Port 2
|
||||
- name: Front Port 3
|
||||
type: 8p8c
|
||||
port-mappings:
|
||||
- front_port: Front Port 1
|
||||
rear_port: Rear Port 1
|
||||
- front_port: Front Port 2
|
||||
rear_port: Rear Port 2
|
||||
- front_port: Front Port 3
|
||||
rear_port: Rear Port 3
|
||||
module-bays:
|
||||
- name: Module Bay 1
|
||||
@ -971,6 +975,12 @@ inventory-items:
|
||||
fp1 = FrontPortTemplate.objects.first()
|
||||
self.assertEqual(fp1.name, 'Front Port 1')
|
||||
|
||||
self.assertEqual(device_type.port_mappings.count(), 3)
|
||||
mapping1 = PortTemplateMapping.objects.first()
|
||||
self.assertEqual(mapping1.device_type, device_type)
|
||||
self.assertEqual(mapping1.front_port, fp1)
|
||||
self.assertEqual(mapping1.rear_port, rp1)
|
||||
|
||||
self.assertEqual(device_type.modulebaytemplates.count(), 3)
|
||||
mb1 = ModuleBayTemplate.objects.first()
|
||||
self.assertEqual(mb1.name, 'Module Bay 1')
|
||||
@ -1394,6 +1404,13 @@ front-ports:
|
||||
type: 8p8c
|
||||
- name: Front Port 3
|
||||
type: 8p8c
|
||||
port-mappings:
|
||||
- front_port: Front Port 1
|
||||
rear_port: Rear Port 1
|
||||
- front_port: Front Port 2
|
||||
rear_port: Rear Port 2
|
||||
- front_port: Front Port 3
|
||||
rear_port: Rear Port 3
|
||||
module-bays:
|
||||
- name: Module Bay 1
|
||||
position: 1
|
||||
@ -1471,6 +1488,12 @@ module-bays:
|
||||
fp1 = FrontPortTemplate.objects.first()
|
||||
self.assertEqual(fp1.name, 'Front Port 1')
|
||||
|
||||
self.assertEqual(module_type.port_mappings.count(), 3)
|
||||
mapping1 = PortTemplateMapping.objects.first()
|
||||
self.assertEqual(mapping1.module_type, module_type)
|
||||
self.assertEqual(mapping1.front_port, fp1)
|
||||
self.assertEqual(mapping1.rear_port, rp1)
|
||||
|
||||
self.assertEqual(module_type.modulebaytemplates.count(), 3)
|
||||
mb1 = ModuleBayTemplate.objects.first()
|
||||
self.assertEqual(mb1.name, 'Module Bay 1')
|
||||
|
||||
@ -1516,6 +1516,7 @@ class DeviceTypeImportView(generic.BulkImportView):
|
||||
'interfaces': forms.InterfaceTemplateImportForm,
|
||||
'rear-ports': forms.RearPortTemplateImportForm,
|
||||
'front-ports': forms.FrontPortTemplateImportForm,
|
||||
'port-mappings': forms.PortTemplateMappingImportForm,
|
||||
'module-bays': forms.ModuleBayTemplateImportForm,
|
||||
'device-bays': forms.DeviceBayTemplateImportForm,
|
||||
'inventory-items': forms.InventoryItemTemplateImportForm,
|
||||
@ -1820,6 +1821,7 @@ class ModuleTypeImportView(generic.BulkImportView):
|
||||
'interfaces': forms.InterfaceTemplateImportForm,
|
||||
'rear-ports': forms.RearPortTemplateImportForm,
|
||||
'front-ports': forms.FrontPortTemplateImportForm,
|
||||
'port-mappings': forms.PortTemplateMappingImportForm,
|
||||
'module-bays': forms.ModuleBayTemplateImportForm,
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user