Itential Tools actions

The itential_tools package exposes a set of actions that Platform workflows use to interact with NSO via JSON-RPC. These actions cover device configuration, interface management, NED translation, and configuration staging.

Actions are invoked from a workflow using the runAction task from the NSO adapter. The task takes the action path and a params object as inputs.

How to call an action

1

Open Automation Studio and create a workflow

Navigate to Workflows in Automation Studio and create a new workflow.

2

Add the runAction task

Add the runAction task from the NSO/NSOManager task library to the workflow canvas.

3

Set the task inputs

Provide the params variable with the action path and any required parameters. See the reference below for each action’s path and parameter structure.

Actions reference

ActionDescription
admin_down_deviceAdmin-down all admin-up interfaces on a device
admin_down_interfacesAdmin-down specific interfaces
admin_up_interfacesAdmin-up specific interfaces
getNamespacesReturn the namespace URI for a given prefix
get_configGet the current device configuration
load_configLoad configuration XML onto a device
native2PronghornUse the NED to convert native config into XPath
set_configSet device configuration from a native config string
set_config_transactionsSet device configuration using a transaction object
stage_deviceStage a device from a native config string
translate_configTranslate config from native format to set format
verify_configVerify that the NED can read a given config string

Examples

Each example shows the complete params variable as entered in the runAction task dialog. The path field identifies the action endpoint on the NSO server.

admin_down_device

Admin-down all admin-up interfaces on a device.

1{
2 "params": {
3 "device": "ios.1"
4 },
5 "path": "/itential_commands/admin_down_device"
6}

admin_down_interfaces

Admin-down specific interfaces on a device. Interfaces are passed as a JSON-encoded array string.

1{
2 "params": {
3 "device": "ios.0",
4 "interfaces": "[\"GigabitEthernet{0}\",\"Ethernet{0/0/0}\"]"
5 },
6 "path": "/itential_commands/admin_down_interfaces"
7}

admin_up_interfaces

Admin-up specific interfaces on a device.

1{
2 "params": {
3 "device": "ios.0",
4 "interfaces": "[\"GigabitEthernet{0}\"]"
5 },
6 "path": "/itential_commands/admin_up_interfaces"
7}

getNamespaces

Return the namespace URI for a given prefix.

1{
2 "params": {
3 "deviceName": "ios.0",
4 "prefixes": "ncs"
5 },
6 "path": "/itential_commands/getNamespaces"
7}

get_config

Retrieve the current configuration from a device. The format field controls whether config is returned in NATIVE format or another supported format.

1{
2 "params": {
3 "device": "ios.0",
4 "format": "NATIVE"
5 },
6 "path": "/itential_commands/get_config"
7}

load_config

Load configuration XML onto a device. The action field controls the merge strategy (MERGE, REPLACE, etc.).

1{
2 "params": {
3 "device": "ios.0",
4 "action": "MERGE",
5 "config": "<config xmlns=\"http://tail-f.com/ns/config/1.0\"><devices xmlns=\"http://tail-f.com/ns/ncs\"><device><n>ios.0</n><config><tailfned xmlns=\"urn:ios\"><police>cirmode</police></tailfned><ip xmlns=\"urn:ios\"><source-route>true</source-route><gratuitous-arps-conf><gratuitous-arps>true</gratuitous-arps></gratuitous-arps-conf><http><server>true</server><secure-server>true</secure-server></http></ip></config></device></devices></config>"
6 },
7 "path": "/itential_commands/load_config"
8}

native2Pronghorn

Use the NED to convert native CLI configuration into XPath format.

1{
2 "params": {
3 "ned_id": "cisco-ios-cli-6.72",
4 "commands": "hostname test"
5 },
6 "path": "/itential_commands/native2Pronghorn"
7}

set_config

Push a native CLI configuration string to a device. The dryRun field specifies the output format for a dry-run operation (cli, native, etc.). Omit dryRun to commit the change.

1{
2 "params": {
3 "device": "ios.0",
4 "config": "hostname test",
5 "deviceType": "cisco-ios-cli-6.72",
6 "dryRun": "cli"
7 },
8 "path": "/itential_commands/set_config"
9}

set_config_transactions

Push configuration using a transaction object. The transaction tracks old and new values and supports multi-step rollback.

1{
2 "params": {
3 "device": "ios.0",
4 "deviceType": "cisco-ios-cli-6.72",
5 "transactions": {
6 "id": 1,
7 "new": "hostname test",
8 "old": "",
9 "parents": ""
10 }
11 },
12 "path": "/itential_commands/set_config_transactions"
13}

stage_device

Stage a device in NSO from a native CLI configuration string. Used to pre-provision device configuration before onboarding.

1{
2 "params": {
3 "device_name": "ios.1",
4 "ned_id": "cisco-ios-cli-6.72",
5 "commands": "hostname test"
6 },
7 "path": "/itential_commands/stage_device"
8}

translate_config

Translate a native CLI configuration string into set-format commands. The strategy field controls the translation approach.

1{
2 "params": {
3 "ned_id": "cisco-ios-cli-6.72",
4 "commands": "hostname test",
5 "strategy": "access_list"
6 },
7 "path": "/itential_commands/translate_config"
8}

verify_config

Verify that the NED can parse a given native CLI configuration string. Useful for validating configuration before pushing it to a device.

1{
2 "params": {
3 "ned_id": "cisco-ios-cli-6.72",
4 "commands": "hostname test"
5 },
6 "path": "/itential_commands/verify_config"
7}