YAML and JSON Output ModulesΒΆ
yaml and json output modules display transformed lab topology in YAML or JSON format. You can invoke them by specifying -o yaml
or -o json
parameter in netlab create command.
Both output modules can take an optional destination file name (default: stdout).
Multiple formatting modifiers (separated with colons) can be used to reduce the amount of information displayed from the transformed lab topology:
nodefault β Remove default settings (defaults key).
noaddr β Remove address pools (addressing key).
Any other formatting modifier is evaluated as a Python expression within the transformed lab topology context.
Examples:
To display this information... | ...use this command |
---|---|
whole transformed topology | netlab create -o yaml |
whole topology without the defaults | netlab create -o yaml:nodefault |
whole topology without the defaults or addressing pools | netlab create -o yaml:nodefault:noaddr |
node data | netlab create -o yaml:nodes |
address pools | netlab create -o yaml:addressing |
Formatting modifier can select any subset of the lab topology, for example:
To display this information... | ...use this command |
---|---|
data for node r1 |
netlab create -o yaml:nodes.r1 |
interface data for node r1 |
netlab create -o yaml:nodes.r1.interfaces |
device data for device eos |
netlab create -o yaml:defaults.devices.eos |
settings for D2 output module | netlab create -o yaml:defaults.outputs.d2 |
valid attributes for the BGP module | netlab create -o yaml:defaults.bgp.attributes |
Finally, the formatting modifier is evaluated as a Python expression, so you can display anything that can be expressed as a one-line expression (you will probably have to quote the whole yaml:expression
string):
To display this information... | ...use this command |
---|---|
second interface on node r1 |
netlab create -o 'yaml:nodes.r1.interfaces[1]' |
node names | netlab create -o 'yaml:list(nodes.keys())' |
netlab create command stores the results into an output file when you specify format=output
or format:expr=output
value for the --output
parameter. For example:
To write this information into a file ... | ... use this command |
---|---|
whole topology into transformed.yaml |
netlab create -o yaml=transformed.yaml |
node data into nodes.yaml |
netlab create -o yaml:nodes=nodes.yaml |
link data into links.json |
netlab create -o json:links=links.json |