12-20-2021 03:11 PM - edited 12-20-2021 03:12 PM
Hi NSO Community, I am new to NSO and I wanted to know if we can pass values to the variables present in the device template via some file or logic instead of passing them while applying the template.
For example, Let's suppose I have a template named NCA that accepts variable var-aaa-server, so instead of passing its value like shown below, Is it possible to read it from some file?
devices apply-template template-name NCA variable { name var-aaa-server value 'xyz' }
01-06-2022 01:55 PM
I do this via an RESTCONF API call.
Note: Make sure your variables key "value" has the single quotes inside the double quotes or the call will fail.
Python example, you could add logic to loop over values if desired.
import requests import json url = "https://ncslab.local/restconf/data/tailf-ncs:devices/device=xeLabDevice01/apply-template" payload = json.dumps({ "template-name": "apiTemplateExample", "variable": { "name": "description", "value": "'api changed'" } }) headers = { 'Content-Type': 'application/yang-data+json', 'Authorization': '<password>' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)
Otherwise, I have not used it but you can probably use the ncs_cmd cli command to push from a file of commands.
nsodev@ncslab:~$ ncs_cmd -h Usage: ncs_cmd [options] [filename] ncs_cmd [options] -c <script> ncs_cmd -h | -h commands | -h <command-name> A utility that provides a command line interface towards some cdb and maapi functions. Commands are expected in filename (or stdin if not provided). Commands can also be given using the -c option. Valid options are: -d Increase debug level for each -d flag -a <address> Connect to NCS at <address> (default 127.0.0.1) -p <port> Connect to NCS at <port> (default 4565) -r Commands work on 'running' database -S Commands work on 'startup' database -o CDB commands work on CDB operational database -e MAAPI commands work on candidate database -I MAAPI commands work on 'intended' database -f [w][p][r|s] Use cdb_start_session2() to start the CDB session - values w/p/r/s set the CDB_LOCK_WAIT/PARTIAL/REQUEST/SESSION flags -F [d] Use maapi_start_trans_flags() to start the transaction. Value d sets the MAAPI_FLAG_DELAYED_WHEN flag. -u <user> Connect to maapi as <user> (default system) -g <group> Connect to maapi with group <group> (more than one allowed) -x <ctxt> Connect to maapi with context <ctxt> (default system) -s Perform each command in a different session -c <string> Commands are read from <string> instead of a file -m Don't call confd_load_schemas() -U Make all output unbuffered -L diff_iterate on leaf-lists as leaf, not list [deprecated] -h Display this text and exit -h <cmd-name> Show help for <cmd-name> and exit -h commands List all available commands and exit
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide