Another week, another complaint here at GN…
If you are new to this blog series, we like to poke holes at all things netTerrain, because, why not? Our customers love the tool, from its DCIM capabilities, network mapping and cable management features, to fiber and outside plant, but it ain’t perfect and showing our weaknesses is totally OK with us. If anything, it means customers actually use our products :- )
This week, we had a customer from the Midwest ask about our so-called print-templates. The complaint was that, after setting the templates up, they weren’t applying to existing instances.
We’ll get to that in a minute…but first: what are ‘print templates’?
Why you may need print templates for your network diagrams
Print templates are kinda like the headers and footers in word processing tools. They are a really nice feature that speed up standard layouts of diagrams. For instance, your data center rack diagrams may always include a header consisting of the rack aisle, rack number and perhaps usage and the footer should include labels, counters and more:
You can create as many templates as you want. For example: you may want one one for the rack elevations, another one for your DCIM floor plans, another for logical views of your IT infrastructure or network maps, another one for your IT physical views, another one for your fiber plant or OSP maps, and so on.
The convenience of these templates is that you set them once, and then you can reuse them or apply them to any number of diagrams of the types mentioned above.
Template applied to a specific rack
The issue with applying print templates
So, the user in question was setting them up, but the problem was that they weren’t applying to instances that already existed in netTerrain. Was this a bug?
Not really.
In netTerrain, we consider the assignment of templates to be a ‘catalog operation’: this means that, for a given type of diagram, you specify which template should be used as a default. We don’t override existing instances when a user assigns a new template to, say, racks, because changing existing diagrams en masse could confuse users.
So what to do if you want to not only apply a template to any new diagrams of a certain type, but you also want the existing ones to reflect that template? There is no simple way of retroactively assigning templates to existing instances through the netTerrain graphical user interface, which can be quite frustrating at first.
Let’s say you create a template to be shown for the backplane of each network device used in a logical or physical IT diagram: you would want some sort of way to apply them automatically. After all you could have thousands of IT devices in your network or data center infrastructure. Doing this manually for each one could be a tedious job. Thankfully, there is a way to do this, but it requires digging a bit deeper into the netTerrain bag of tricks.
The workaround
There are a bunch of bulk operations, some of them a bit dangerous if unsupervised that we simply prefer not to expose in our end user GUI. However, we still make them available, albeit more indirectly, through our Integration Toolkit command line. This forces the user to really understand that command and make sure that it is done in a controlled manner.
One such command gives you the ability to, you guessed it, apply a template to all the existing instances.
Here’s how to do it:
First, launch the Integration Toolkit (ITK), which is installed on your netTerrain application server (you may request installing the ITK on your local machine as well).
In the command line, type ‘help’, and press enter. Notice a bunch of commands available, some of which provide the user with the ability to perform bulk operations on netTerrain, otherwise not available through the netTerrain GUI itself. As Pink Floyd would say, “careful with that axe, Eugene!” Some of those commands perform bulk operations that cannot be undone!
Make sure that in netTerrain you have already set the template to be the default for the type. Also, copy the ID of that type to your clipboard — you will need this in a moment.
After using the ITK command, all instances of that type will adopt the template. For example, the image below shows how to set a specific template for all nodes of type ‘Floor’ (in a DCIM environment):
Setting a template for a type in the netTerrain catalog
Next, you’re ready to apply the template to all instances of that type.
The command you want to use in the ITK is the following:
applytemplatenodeinstances\< decimal nodeTypeId >
Replace the < decimal nodeTypeId > with the actual id of that type. Then press enter and you are done.
It wasn’t that complicated after all, but sure, a simple button in our catalog would make it a lot easier, so the complaint is still valid!
Until next time, happy documenting!