{{indexmenu_n>1}}
====== Node types ======
A Node type is a blueprint describing a node (a device). Whenever this blueprint is called using the service type a node is instantiated with all of its parameters.
A node type links to a Client type and a Node class. Multiple Node types may be created linking to the same Client type and Node class, allowing for different blueprints to mark exception or to be used as migration scenarios.
===== Parameters =====
Each of the Node types has a set of parameters. Whenever a new Node type is created it is pre populated with several mandatory parameters. The default values can/need to be defined.
{{ :menu:design:node_models:nodetype_parameters.png?nolink |}}
^Parameter^Description^
|Hostname|The hostname will be generated based on the variable and will be sequenced between the two numbers|
|Template|Defines which template will be used for the device. The template on its turn matches the vendor|
|Domain|The domain variable group|
|Node_position|The location of the node, which can be used to related to up-, down-, side-stream nodes|
|Node_fqdn|The fully qualified domain name, using the variable |
|DeviceStatus|obsolete, planned, active, migration, merger|
|Redundant|Is the node standalone or part of a redundant setup|
|Par_group|A custom attribute group can be linked|
Note that these values will be the defaults whenever a node is instantiated. The values can still be overruled using the service types.
Besides the defaults, additional custom attributes can be created. These can be used inside the templates or can be used as conditional checks for additional configuration.
For example, a variable can be defined "nhrp_bug". This will have no default value. But the value can be set either using a service type or manually per node. The template could have a conditional configuration line which introduces an extra line of configuration if it matches.
|| Workaround line of code
===== Custom attributes =====
Additional attributes can be used as mentioned. This will need to be added before they can be used in the node types. Once created a default value may be set either in the Node type or in the custom attribute itself.
===== Function =====
With each of the parameters the function needs to be defined. The most common one is ''literal'', which uses the value as such, while it does support substitution of variables.
The alternative is function. Currently one function is supported which is ''sequenced_nodename''. The function takes 3 arguments, a string (could be a variable) and 2 digit with leading zeros. For each of the instantiated nodes it will create a hostname based on the string and a number between the range provided, on a first free basis. Example:
sequenced_nodename("","01","19")
It will use the variable and find the first free number between 01 and 19. Therefore, if the was "NLAMS", the first hostname would be "NLAMS01".
If 3 digits are desired, the function needs to be changed to:
sequenced_nodename("","001","019")