mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-16 05:19: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',
|
'InterfaceTemplateImportForm',
|
||||||
'InventoryItemTemplateImportForm',
|
'InventoryItemTemplateImportForm',
|
||||||
'ModuleBayTemplateImportForm',
|
'ModuleBayTemplateImportForm',
|
||||||
|
'PortTemplateMappingImportForm',
|
||||||
'PowerOutletTemplateImportForm',
|
'PowerOutletTemplateImportForm',
|
||||||
'PowerPortTemplateImportForm',
|
'PowerPortTemplateImportForm',
|
||||||
'RearPortTemplateImportForm',
|
'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 ModuleBayTemplateImportForm(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
@ -865,12 +865,16 @@ rear-ports:
|
|||||||
front-ports:
|
front-ports:
|
||||||
- name: Front Port 1
|
- name: Front Port 1
|
||||||
type: 8p8c
|
type: 8p8c
|
||||||
rear_port: Rear Port 1
|
|
||||||
- name: Front Port 2
|
- name: Front Port 2
|
||||||
type: 8p8c
|
type: 8p8c
|
||||||
rear_port: Rear Port 2
|
|
||||||
- name: Front Port 3
|
- name: Front Port 3
|
||||||
type: 8p8c
|
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
|
rear_port: Rear Port 3
|
||||||
module-bays:
|
module-bays:
|
||||||
- name: Module Bay 1
|
- name: Module Bay 1
|
||||||
@ -971,6 +975,12 @@ inventory-items:
|
|||||||
fp1 = FrontPortTemplate.objects.first()
|
fp1 = FrontPortTemplate.objects.first()
|
||||||
self.assertEqual(fp1.name, 'Front Port 1')
|
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)
|
self.assertEqual(device_type.modulebaytemplates.count(), 3)
|
||||||
mb1 = ModuleBayTemplate.objects.first()
|
mb1 = ModuleBayTemplate.objects.first()
|
||||||
self.assertEqual(mb1.name, 'Module Bay 1')
|
self.assertEqual(mb1.name, 'Module Bay 1')
|
||||||
@ -1394,6 +1404,13 @@ front-ports:
|
|||||||
type: 8p8c
|
type: 8p8c
|
||||||
- name: Front Port 3
|
- name: Front Port 3
|
||||||
type: 8p8c
|
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:
|
module-bays:
|
||||||
- name: Module Bay 1
|
- name: Module Bay 1
|
||||||
position: 1
|
position: 1
|
||||||
@ -1471,6 +1488,12 @@ module-bays:
|
|||||||
fp1 = FrontPortTemplate.objects.first()
|
fp1 = FrontPortTemplate.objects.first()
|
||||||
self.assertEqual(fp1.name, 'Front Port 1')
|
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)
|
self.assertEqual(module_type.modulebaytemplates.count(), 3)
|
||||||
mb1 = ModuleBayTemplate.objects.first()
|
mb1 = ModuleBayTemplate.objects.first()
|
||||||
self.assertEqual(mb1.name, 'Module Bay 1')
|
self.assertEqual(mb1.name, 'Module Bay 1')
|
||||||
|
|||||||
@ -1516,6 +1516,7 @@ class DeviceTypeImportView(generic.BulkImportView):
|
|||||||
'interfaces': forms.InterfaceTemplateImportForm,
|
'interfaces': forms.InterfaceTemplateImportForm,
|
||||||
'rear-ports': forms.RearPortTemplateImportForm,
|
'rear-ports': forms.RearPortTemplateImportForm,
|
||||||
'front-ports': forms.FrontPortTemplateImportForm,
|
'front-ports': forms.FrontPortTemplateImportForm,
|
||||||
|
'port-mappings': forms.PortTemplateMappingImportForm,
|
||||||
'module-bays': forms.ModuleBayTemplateImportForm,
|
'module-bays': forms.ModuleBayTemplateImportForm,
|
||||||
'device-bays': forms.DeviceBayTemplateImportForm,
|
'device-bays': forms.DeviceBayTemplateImportForm,
|
||||||
'inventory-items': forms.InventoryItemTemplateImportForm,
|
'inventory-items': forms.InventoryItemTemplateImportForm,
|
||||||
@ -1820,6 +1821,7 @@ class ModuleTypeImportView(generic.BulkImportView):
|
|||||||
'interfaces': forms.InterfaceTemplateImportForm,
|
'interfaces': forms.InterfaceTemplateImportForm,
|
||||||
'rear-ports': forms.RearPortTemplateImportForm,
|
'rear-ports': forms.RearPortTemplateImportForm,
|
||||||
'front-ports': forms.FrontPortTemplateImportForm,
|
'front-ports': forms.FrontPortTemplateImportForm,
|
||||||
|
'port-mappings': forms.PortTemplateMappingImportForm,
|
||||||
'module-bays': forms.ModuleBayTemplateImportForm,
|
'module-bays': forms.ModuleBayTemplateImportForm,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user