Handling of {module} placeholder for Submodules #18651
Replies: 1 comment
-
I am having the same issue but with the Juniper concept of MPC card with slots, basically a card that has slots so we can install a smaller type card with physical interface ie: in Juniper world ** but the middle portion (1) can actually have 2 different position since Juniper always breaks it in groups So for a 20 port card the actual interface name are as follows When creating the interface I can't name it as such -- ge-{module}/{module}/[0-19] since Juniper breaks it groups. so the interface naming would look like this I wish you can have it so it we can say {module} +1 -- so we can pre-create the interface and use the position and not have conflict on interface name creation |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
im experimenting with Module-Types with Submodule-Bays to accurately model server builds and their components. Im currently having issues with the
{module}
Placeholder. Example:I create a module-type for the NIC with templated interface names:
{module}{module} qsfp[0-1]
.I create a module-type for the Mainboard with multiple Module-bays for DIMMs, CPU, and PCIe Slots.
I create a Device Type for the Server Chassis, e.g. Supermicro CSE-826. I add a Module Bay for the Motherboard to the Device Type.
Now I can create a Device from the Supermicro Chassis. I can install the Mainboard and get multiple Sub-Module bays from the Board. Here i can install the NIC. Everything works fine, given that at least the Module-Bay of the Motherboard has a Position. The Module Bay the Motherboard is installed in interestingly does not need a position, its left blank and is templated as an empty string.
So far, everything works fine. But now comes the issue: if i install a PCIe Riser Card into a PCIe Module Bay, effectively increasing the nesting level by one, i can no longer install the NIC in one of the riser cards module bays, since now there are 3 Levels of Modules, and only two placeholders are given. The problem is that now i have to decide:
{module}
placeholdersReplicate Components
to not create and template the interfaces, which means i have to manually create them afterwards.This sadly breaks the entire flow of this process, as otherwise it would be extremly simple to fully document server configurations.
So my question is: Is there a way to work around the
{module}
placeholders? Some ideas:{module:/}
, where:
splits the string into the placeholder name and a string that is used to concat multiple Position values together, e.g.PCIe_Slot_4/Riser_Assembly_Slot_1
{module}{module}{module}{module}{module} qsfp[0-1]
, essentially providing "enough" placeholders, which are filled from the right to left, while the remaining ones are replaced with empty strings if the level is not deep enoughAnother approach could be that the Position of a Submodule is the Position of the Parent Module concatenated with its own position with some string in between, like this:
PCIe_Slot_4/Riser_Assembly_Slot_1
. This way, when installing a Module, one would always have to specify only a single{module}
placeholder, since the Position already contains all previous positions and thus is unique.Note this issue only applies a placeholder is used, if not, submodules work perfectly fine. I would really be happy to get a solution for this that does not involve manually creating the interfaces afterwards.
Some images to illustrate the issue:
The Module-Type for the NIC with interfaces with placeholders:

The Supermicro Chassis Device with Installed Motherboard and NICs in both PCIe Slots and Riser PCIe Slots. Note the empty position of the Motherboard:

The resulting interfaces, note the markings of which interfaces have been manually created afterwards. Also note the resulting string of the automatically created interfaces, which replace the first placeholder with an empty string since the mainboard does not have a position:

Thanks
Beta Was this translation helpful? Give feedback.
All reactions