Import patchpanel module with mapping #140

Open
opened 2026-04-05 16:22:11 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @Valantin on 3/16/2026

NetBox Edition

NetBox Community

NetBox Version

v4.5.4

Python Version

3.12

Steps to Reproduce

manufacturer: FS
model: FHZ-36F3MTPLCOM4
part_number: '74184'
comments: FHZ MTP-LC Cassette, OM4 Multimode, Type AF, 36 Fibers, 3x MTP-12
front-ports:
  - name: '{module}:1-12'
    type: lc
    color: 00ffff
  - name: '{module}:2-11'
    type: lc
    color: 00ffff
  - name: '{module}:3-10'
    type: lc
    color: 00ffff
  - name: '{module}:4-9'
    type: lc
    color: 00ffff
  - name: '{module}:5-8'
    type: lc
    color: 00ffff
  - name: '{module}:6-7'
    type: lc
    color: 00ffff
  - name: '{module}:13-24'
    type: lc
    color: 00ffff
  - name: '{module}:14-23'
    type: lc
    color: 00ffff
  - name: '{module}:15-22'
    type: lc
    color: 00ffff
  - name: '{module}:16-21'
    type: lc
    color: 00ffff
  - name: '{module}:17-20'
    type: lc
    color: 00ffff
  - name: '{module}:18-19'
    type: lc
    color: 00ffff
  - name: '{module}:25-36'
    type: lc
    color: 00ffff
  - name: '{module}:26-35'
    type: lc
    color: 00ffff
  - name: '{module}:27-34'
    type: lc
    color: 00ffff
  - name: '{module}:28-33'
    type: lc
    color: 00ffff
  - name: '{module}:29-32'
    type: lc
    color: 00ffff
  - name: '{module}:30-31'
    type: lc
    color: 00ffff
rear-ports:
  - name: '{module}:1'
    type: mpo
    positions: 6
  - name: '{module}:2'
    type: mpo
    positions: 6
  - name: '{module}:3'
    type: mpo
    positions: 6
port-mappings:
  - front_port: '{module}:1-12'
    rear_port: '{module}:1'
    rear_port_position: 1
  - front_port: '{module}:2-11'
    rear_port: '{module}:1'
    rear_port_position: 2
  - front_port: '{module}:3-10'
    rear_port: '{module}:1'
    rear_port_position: 3
  - front_port: '{module}:4-9'
    rear_port: '{module}:1'
    rear_port_position: 4
  - front_port: '{module}:5-8'
    rear_port: '{module}:1'
    rear_port_position: 5
  - front_port: '{module}:6-7'
    rear_port: '{module}:1'
    rear_port_position: 6
  - front_port: '{module}:13-24'
    rear_port: '{module}:2'
    rear_port_position: 1
  - front_port: '{module}:14-23'
    rear_port: '{module}:2'
    rear_port_position: 2
  - front_port: '{module}:15-22'
    rear_port: '{module}:2'
    rear_port_position: 3
  - front_port: '{module}:16-21'
    rear_port: '{module}:2'
    rear_port_position: 4
  - front_port: '{module}:17-20'
    rear_port: '{module}:2'
    rear_port_position: 5
  - front_port: '{module}:18-19'
    rear_port: '{module}:2'
    rear_port_position: 6
  - front_port: '{module}:25-36'
    rear_port: '{module}:3'
    rear_port_position: 1
  - front_port: '{module}:26-35'
    rear_port: '{module}:3'
    rear_port_position: 2
  - front_port: '{module}:27-34'
    rear_port: '{module}:3'
    rear_port_position: 3
  - front_port: '{module}:28-33'
    rear_port: '{module}:3'
    rear_port_position: 4
  - front_port: '{module}:29-32'
    rear_port: '{module}:3'
    rear_port_position: 5
  - front_port: '{module}:30-31'
    rear_port: '{module}:3'
    rear_port_position: 6
  1. import module-type from YAML

Expected Behavior

create a module-type with mapping

Observed Behavior

fail with error
<class 'dcim.models.device_component_templates.RearPortTemplate.MultipleObjectsReturned'>

get() returned more than one RearPortTemplate -- it returned more than 20!

Python version: 3.12.3
NetBox version: 4.5.4-Docker-4.0.1
Plugins: None installed

If I try to import module without {module} placeholder it work correctly

*Originally created by @Valantin on 3/16/2026* ### NetBox Edition NetBox Community ### NetBox Version v4.5.4 ### Python Version 3.12 ### Steps to Reproduce ```--- manufacturer: FS model: FHZ-36F3MTPLCOM4 part_number: '74184' comments: FHZ MTP-LC Cassette, OM4 Multimode, Type AF, 36 Fibers, 3x MTP-12 front-ports: - name: '{module}:1-12' type: lc color: 00ffff - name: '{module}:2-11' type: lc color: 00ffff - name: '{module}:3-10' type: lc color: 00ffff - name: '{module}:4-9' type: lc color: 00ffff - name: '{module}:5-8' type: lc color: 00ffff - name: '{module}:6-7' type: lc color: 00ffff - name: '{module}:13-24' type: lc color: 00ffff - name: '{module}:14-23' type: lc color: 00ffff - name: '{module}:15-22' type: lc color: 00ffff - name: '{module}:16-21' type: lc color: 00ffff - name: '{module}:17-20' type: lc color: 00ffff - name: '{module}:18-19' type: lc color: 00ffff - name: '{module}:25-36' type: lc color: 00ffff - name: '{module}:26-35' type: lc color: 00ffff - name: '{module}:27-34' type: lc color: 00ffff - name: '{module}:28-33' type: lc color: 00ffff - name: '{module}:29-32' type: lc color: 00ffff - name: '{module}:30-31' type: lc color: 00ffff rear-ports: - name: '{module}:1' type: mpo positions: 6 - name: '{module}:2' type: mpo positions: 6 - name: '{module}:3' type: mpo positions: 6 port-mappings: - front_port: '{module}:1-12' rear_port: '{module}:1' rear_port_position: 1 - front_port: '{module}:2-11' rear_port: '{module}:1' rear_port_position: 2 - front_port: '{module}:3-10' rear_port: '{module}:1' rear_port_position: 3 - front_port: '{module}:4-9' rear_port: '{module}:1' rear_port_position: 4 - front_port: '{module}:5-8' rear_port: '{module}:1' rear_port_position: 5 - front_port: '{module}:6-7' rear_port: '{module}:1' rear_port_position: 6 - front_port: '{module}:13-24' rear_port: '{module}:2' rear_port_position: 1 - front_port: '{module}:14-23' rear_port: '{module}:2' rear_port_position: 2 - front_port: '{module}:15-22' rear_port: '{module}:2' rear_port_position: 3 - front_port: '{module}:16-21' rear_port: '{module}:2' rear_port_position: 4 - front_port: '{module}:17-20' rear_port: '{module}:2' rear_port_position: 5 - front_port: '{module}:18-19' rear_port: '{module}:2' rear_port_position: 6 - front_port: '{module}:25-36' rear_port: '{module}:3' rear_port_position: 1 - front_port: '{module}:26-35' rear_port: '{module}:3' rear_port_position: 2 - front_port: '{module}:27-34' rear_port: '{module}:3' rear_port_position: 3 - front_port: '{module}:28-33' rear_port: '{module}:3' rear_port_position: 4 - front_port: '{module}:29-32' rear_port: '{module}:3' rear_port_position: 5 - front_port: '{module}:30-31' rear_port: '{module}:3' rear_port_position: 6 ``` 1. import module-type from YAML ### Expected Behavior create a module-type with mapping ### Observed Behavior ``` fail with error <class 'dcim.models.device_component_templates.RearPortTemplate.MultipleObjectsReturned'> get() returned more than one RearPortTemplate -- it returned more than 20! Python version: 3.12.3 NetBox version: 4.5.4-Docker-4.0.1 Plugins: None installed ``` If I try to import module without `{module}` placeholder it work correctly
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/netbox#140