Cisco Systems vendor logo

Vendor

Cisco Systems

Product

NSO

OS Versions:

5.7

Category

Network Services

Project Type

Workflow Project


View Repository
Workflow

Cisco NSO - Modular Workflows

Overview

This Pre-Built contains modular workflows that operate when integrated with Cisco Network Services Orchestrator (NSO). Once installed teams will be able to quickly automate common manual tasks for deploying network changes over NSO, saving a significant amount of time and effort. This library can be used as modular components with other libraries and automations to build comprehensive end-to-end orchestrated workflows with Itential's low-code platform.

Workflows

NameOverview
Send Run Action Request - NSOWorkflow to perform a run action in NSO
Provision with XML Using Jinja2 - NSOWorkflow that renders a Jinja2 template into an XML request to provision a change in NSO. An example Jinja2 template included in this Pre-Built that renders to a valid XML request NSO - Device Description can be viewed for reference.
Provision Service Using Jinja2 - NSOWorkflow that renders a Jinja2 template into an request to provision a service instance in NSO. An example Jinja2 template included in this Pre-Built that renders to a valid service instance request NSO - Provision Service can be viewed for reference.
Get Service Instance - NSOWorkflow that retrieves details of an NSO service instance
Onboard Device - NSOWorkflow that onboards a device to NSO
Sync From Devices - NSOA workflow to perform a check-sync against a list of devices and then perform sync-from against devices that are not in-sync
Send RESTCONF Request - NSOWorkflow to send a request to NSO using its RESTCONF API
Validate Configuration against NED - NSOWorkflow that validates a command run against a network element driver (NED). A manual form task provides ability for operator to specify the NED and command to validate.

For further technical details on how to install and use this Workflow Project, please click the Technical Documentation tab.

Table of Contents

Getting Started

This section is helpful for deployments as it provides you with pertinent information on prerequisites and properties.

Helpful Background Information

Workflows often include logic that varies from business to business. As a result, we often find that our Workflow Projects are more useful as modular components that can be incorporated into a larger process. In addition, they often can add value as a learning tool on how we integrate with other systems and how we do things within the Itential Automation Platform.

While these can be utilized, you may find more value in using them as a starting point to build around.

Prerequisites

Itential Workflow Projects are built and tested on particular versions of IAP. In addition, Workflow Projects are often dependent on external systems and as such, these Workflow Projects will have dependencies on these other systems. This version of Cisco - NSO has been tested with:

  • IAP 2023.1

External Dependencies

NameOS VersionAPI Version
Cisco Network Services Orchestrator (NSO)5.7

Adapters

NameVersionConfiguration Notes
adapter-nso^7.8.39-2023.1.9.0

How to Install

To install the Workflow Project:

  • Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the Supported IAP Versions section in order to install the Example Project.
  • Import the Example Project in Admin Essentials.

Testing

Cypress is generally used to test all Itential Example Projects. While Cypress is an opensource tool, at Itential we have internal libraries that have been built around Cypress to allow us to test with a deployed IAP.

When certifying our Example Projects for a release of IAP we run these tests against the particular version of IAP and create a release branch in GitLab. If you do not see the Example Project available in your version of IAP please contact Itential.

While Itential tests this Example Project and its capabilities, it is often the case the customer environments offer their own unique circumstances. Therefore, it is our recommendation that you deploy this Example Project into a development/testing environment in which you can test the Example Project.

Using this Workflow Project

Workflow Projects contain 1 or more workflows. Each of these workflows have different inputs and outputs.

Get Service Instance - NSO

Workflow that retrieves details of an NSO service instance

Capabilities include:

  • Retrieve an NSO service instance

Entry Point IAP Component

The primary IAP component to run Get Service Instance - NSO is listed below:

IAP Component NameIAP Component Type
Get Service Instance - NSOWorkflow

Inputs

The following table lists the inputs for Get Service Instance - NSO:

NameTypeRequiredDescriptionExample Value
modelstringyesA service model's XPATH
/ncs:services/itential-demo-port-turn-up:port-turn-up
keystringyesA service model instance's key
CiscoNXOS GigabitEthernet 1/1/1

Outputs

The following table lists the outputs for Get Service Instance - NSO:

NameTypeDescriptionExample Value
serviceInstanceobjectThe properties of a service model instance
{
  "device": "CiscoNXOS",
  "interface-type": "GigabitEthernet",
  "interface-id": "1/1/1",
  "description": "New test service",
  "allowed-vlan": "100"
}

Query Output

There are no query output examples for Get Service Instance - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "model": "/ncs:services/itential-demo-port-turn-up:port-turn-up",
  "key": "CiscoNXOS GigabitEthernet 1/1/1"
} 

Output:

{
  "serviceInstance": {
    "device": "CiscoNXOS",
    "interface-type": "GigabitEthernet",
    "interface-id": "1/1/1",
    "description": "New test service",
    "allowed-vlan": "100"
  }
} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Onboard Device - NSO

Workflow that onboards a device to NSO

Capabilities include:

  • Add device to NSO
  • Perform fetch ssh host key of device in NSO
  • Perform sync-from of device in NSO

Entry Point IAP Component

The primary IAP component to run Onboard Device - NSO is listed below:

IAP Component NameIAP Component Type
Onboard Device - NSOWorkflow

Inputs

The following table lists the inputs for Onboard Device - NSO:

NameTypeRequiredDescriptionExample Value
deviceNamestringyesName of the device to be onboarded
CiscoNXOS
ipAddressstringyesAddress assigned to the device
172.20.102.152
portnumberyesPort number to communicate with the device
22
authgroupstringyesAn authentication group associated with the device
admin
deviceTypestringyesType of the device which defines characteristics of the device, including how to interact with it
cli
nedstringyesAn identifier associated with a particular NED
cisco-nx-cli-5.22
protocolstringyesThe protocol used to communicate with the device
ssh
adapterIdstringyesNSO adapter instance to be used
nso

Outputs

There are no outputs for Onboard Device - NSO.

Query Output

There are no query output examples for Onboard Device - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "deviceName": "CiscoNXOS",
  "adapterId": "nso",
  "ipAddress": "172.20.102.152",
  "port": 22,
  "authgroup": "admin",
  "deviceType": "cli",
  "ned": "cisco-nx-cli-5.22",
  "protocol": "ssh"
} 

Output:

{} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Provision Service Using Jinja2 - NSO

Workflow that renders a Jinja2 template into an request to provision a service instance in NSO. An example Jinja2 template included in this Pre-Built that renders to a valid service instance request NSO - Provision Service can be viewed for reference.

Capabilities include:

  • Renders Jinja2 template into service instance input request
  • Optionally perform dry run of service instance before provisioining service instance in NSO
  • Provision service instance in NSO

Entry Point IAP Component

The primary IAP component to run Provision Service Using Jinja2 - NSO is listed below:

IAP Component NameIAP Component Type
Provision Service Using Jinja2 - NSOWorkflow

Inputs

The following table lists the inputs for Provision Service Using Jinja2 - NSO:

NameTypeRequiredDescriptionExample Value
templateNamestringyesName of the Jinja2 template for Service source
NSO - Provision Service
templateVarsobjectyesTemplate variables used to inject dynamic data into the template
{
  "device": "CiscoNXOS",
  "description": "New test service",
  "interfaceId": "1/1/1"
}
performDryRunbooleanyesWhether to perform and view dry run result before before saving the service instance
true

Outputs

There are no outputs for Provision Service Using Jinja2 - NSO.

Query Output

There are no query output examples for Provision Service Using Jinja2 - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "templateName": "NSO - Provision Service",
  "templateVars": {
    "device": "CiscoNXOS",
    "description": "New test service",
    "interfaceId": "1/1/1"
  },
  "performDryRun": true
} 

Output:

{} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Provision with XML Using Jinja2 - NSO

Workflow that renders a Jinja2 template into an XML request to provision a change in NSO. An example Jinja2 template included in this Pre-Built that renders to a valid XML request NSO - Device Description can be viewed for reference.

Capabilities include:

  • Renders Jinja2 template into XML request
  • Optionally perform dry run of XML request before provisioining change in NSO
  • Provision XML request in NSO

Entry Point IAP Component

The primary IAP component to run Provision with XML Using Jinja2 - NSO is listed below:

IAP Component NameIAP Component Type
Provision with XML Using Jinja2 - NSOWorkflow

Inputs

The following table lists the inputs for Provision with XML Using Jinja2 - NSO:

NameTypeRequiredDescriptionExample Value
templateNamestringyesName of the Jinja2 template for Service source
NSO - Device Description
templateVarsobjectyesTemplate variables used to inject dynamic data into the template
{
  "device": "CiscoNXOS",
  "description": "new device from iap"
}
provisionOptionsobjectnoCommit options object
{}
performDryRunbooleanyesWhether to perform and view dry run result before sending XML to NSO to commit
true
adapterIdstringyesNSO adapter instance to be used
nso

Outputs

There are no outputs for Provision with XML Using Jinja2 - NSO.

Query Output

There are no query output examples for Provision with XML Using Jinja2 - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "adapterId": "nso",
  "provisionOptions": {},
  "templateName": "NSO - Device Description",
  "templateVariables": {
    "device": "CiscoNXOS",
    "description": "new device from iap"
  },
  "performDryRun": true
} 

Output:

{} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Send RESTCONF Request - NSO

Workflow to send a request to NSO using its RESTCONF API

Capabilities include:

  • Send RESTCONF request to NSO

Entry Point IAP Component

The primary IAP component to run Send RESTCONF Request - NSO is listed below:

IAP Component NameIAP Component Type
Send RESTCONF Request - NSOWorkflow

Inputs

The following table lists the inputs for Send RESTCONF Request - NSO:

NameTypeRequiredDescriptionExample Value
pathstringyesPath of the resource
/restconf/data/tailf-ncs:devices/device=CiscoNXOS
contentTypestringyesContent type of the request payload
application/yang-data+json
acceptstringyesThe desired format for the response payload
application/yang-data+json
methodstringyesHTTP method used for the RESTCONF request
GET
bodyobjectnoBody object to send to NSO
{}
adapterIdstringyesNSO adapter instance to be used
nso

Outputs

The following table lists the outputs for Send RESTCONF Request - NSO:

NameTypeDescriptionExample Value
requestResultobjectRESTCONF request result
{
  "tailf-ncs:device": [
    {
      "name": "CiscoNXOS",
      "address": "172.20.102.152",
      "port": 22,
      "ssh": {
        "host-key": [
          {
            "algorithm": "ssh-rsa",
            "key-data": "AAAAB3"
          }
        ]
      },
      "description": "New NXOS device from IAP",
      "authgroup": "admin",
      "device-type": {
        "cli": {
          "ned-id": "cisco-nx-cli-5.22:cisco-nx-cli-5.22",
          "protocol": "ssh"
        }
      },
      "read-timeout": 60,
      "write-timeout": 60,
      "commit-queue": {
        "queue-length": 0
      },
      "active-settings": {
        "connect-timeout": 20,
        "read-timeout": 60,
        "write-timeout": 60,
        "ssh-keep-alive": {
          "interval": 20,
          "count": 3
        },
        "ssh-algorithms": {
          "public-key": [
            "ssh-ed25519",
            "ecdsa-sha2-nistp256",
            "ecdsa-sha2-nistp384"
          ],
          "kex": [
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "ecdh-sha2-nistp256"
          ],
          "mac": [
            "AEAD_AES_128_GCM",
            "AEAD_AES_256_GCM",
            "hmac-sha2-512-etm@openssh.com",
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512",
            "hmac-sha2-256",
            "hmac-sha1"
          ],
          "cipher": [
            "aes128-gcm@openssh.com",
            "AEAD_AES_128_GCM",
            "chacha20-poly1305@openssh.com"
          ],
          "compression": [
            "none",
            "zlib",
            "zlib@openssh.com"
          ],
          "dh-group": {
            "min-size": 1024,
            "preferred-size": 2048,
            "max-size": 8192
          }
        },
        "ned-keep-alive": {
          "count": 3
        },
        "connect-retries": {
          "attempts": 0,
          "timeout": 3
        },
        "trace": "false",
        "trace-output": "file",
        "ned-settings": {
          "use-junos-rollback": false
        },
        "commit-queue": {
          "enabled-by-default": false
        },
        "session-limits": {
          "max-sessions": "unlimited"
        },
        "session-pool": {
          "idle-time": 30
        },
        "no-overwrite": {
          "enabled-by-default": false
        },
        "lsa": {
          "no-overwrite": {
            "enabled-by-default": false
          }
        },
        "out-of-sync-commit-behaviour": "reject"
      },
      "state": {
        "oper-state": "enabled",
        "transaction-mode": "ned",
        "last-transaction-id": "9a42c71be40b8285f804552ccfad281b",
        "admin-state": "unlocked"
      },
      "capability": [],
      "module": [
        {
          "name": "tailf-ned-cisco-nx",
          "revision": "2021-10-01"
        },
        {
          "name": "tailf-ned-cisco-nx-stats",
          "revision": "2021-10-01"
        }
      ],
      "platform": {
        "name": "NX-OS",
        "version": "9.2(2)",
        "model": "cisco Nexus9000 9000v Chassis ",
        "serial-number": "99ZQXME9M7G"
      },
      "config": {
        "tailf-ned-cisco-nx:tailfned": {
          "default-lacp-suspend-individual": true
        },
        "tailf-ned-cisco-nx:version": "9.2(2) Bios:version",
        "tailf-ned-cisco-nx:hostname": "NX-ATL",
        "tailf-ned-cisco-nx:feature": {},
        "tailf-ned-cisco-nx:password": {
          "strength-check": false
        },
        "tailf-ned-cisco-nx:username": [],
        "tailf-ned-cisco-nx:banner": {},
        "tailf-ned-cisco-nx:ip": {},
        "tailf-ned-cisco-nx:ipv6": {},
        "tailf-ned-cisco-nx:copp": {},
        "tailf-ned-cisco-nx:mac": {},
        "tailf-ned-cisco-nx:snmp-server": {},
        "tailf-ned-cisco-nx:rmon": {
          "event": []
        },
        "tailf-ned-cisco-nx:vlan": {
          "vlan-list": []
        },
        "tailf-ned-cisco-nx:class-map": {
          "type": {
            "qos": []
          }
        },
        "tailf-ned-cisco-nx:ntp": {
          "server": []
        },
        "tailf-ned-cisco-nx:vrf": {
          "context": []
        },
        "tailf-ned-cisco-nx:hardware": {
          "qos": {
            "ns-buffer-profile": "burst"
          }
        },
        "tailf-ned-cisco-nx:vdc": {
          "vdc-list": []
        },
        "tailf-ned-cisco-nx:policy-map": {
          "type": {
            "qos": []
          }
        },
        "tailf-ned-cisco-nx:interface": {
          "mgmt": [],
          "Vlan": [],
          "Ethernet": [],
          "loopback": []
        },
        "tailf-ned-cisco-nx:line": {
          "vty": {
            "exec-timeout": 500000,
            "session-limit": 10
          }
        },
        "tailf-ned-cisco-nx:logging": {
          "server": [],
          "monitor": 5,
          "module": 5,
          "console": 2
        },
        "tailf-ned-cisco-nx:boot": {
          "nxos": {
            "image": "bootflash:/nxos.9.2.2.bin"
          }
        },
        "ietf-yang-library:yang-library": {
          "module-set": [],
          "schema": [],
          "datastore": [],
          "content-id": "55c603a32bab046660068c2b0672e54e"
        },
        "ietf-yang-library:modules-state": {
          "module-set-id": "55c603a32bab046660068c2b0672e54e",
          "module": []
        }
      },
      "live-status": {
        "tailf-ned-cisco-nx-stats:inventory": [],
        "tailf-ned-cisco-nx-stats:mac": {
          "address-table": []
        },
        "tailf-ned-cisco-nx-stats:cdp": {
          "neighbors": []
        },
        "tailf-ned-cisco-nx-stats:forwarding": {
          "vrf": []
        },
        "tailf-ned-cisco-nx-stats:interface": {
          "ethernet": [],
          "vlan": []
        },
        "tailf-ned-cisco-nx-stats:ip": {},
        "tailf-ned-cisco-nx-stats:vlan": {},
        "ietf-yang-library:yang-library": {},
        "ietf-yang-library:modules-state": {}
      },
      "tailf-ncs-alarms:alarm-summary": {}
    }
  ]
}

Query Output

There are no query output examples for Send RESTCONF Request - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "path": "/restconf/data/tailf-ncs:devices/device=CiscoNXOS",
  "contentType": "application/yang-data+json",
  "accept": "application/yang-data+json",
  "method": "GET",
  "adapterId": "nso",
  "body": {}
} 

Output:

{
  "requestResult": {
    "tailf-ncs:device": [
      {
        "name": "CiscoNXOS",
        "address": "172.20.102.152",
        "port": 22,
        "ssh": {
          "host-key": [
            {
              "algorithm": "ssh-rsa",
              "key-data": "AAAAB3"
            }
          ]
        },
        "description": "New NXOS device from IAP",
        "authgroup": "admin",
        "device-type": {
          "cli": {
            "ned-id": "cisco-nx-cli-5.22:cisco-nx-cli-5.22",
            "protocol": "ssh"
          }
        },
        "read-timeout": 60,
        "write-timeout": 60,
        "commit-queue": {
          "queue-length": 0
        },
        "active-settings": {
          "connect-timeout": 20,
          "read-timeout": 60,
          "write-timeout": 60,
          "ssh-keep-alive": {
            "interval": 20,
            "count": 3
          },
          "ssh-algorithms": {
            "public-key": [
              "ssh-ed25519",
              "ecdsa-sha2-nistp256",
              "ecdsa-sha2-nistp384"
            ],
            "kex": [
              "curve25519-sha256",
              "curve25519-sha256@libssh.org",
              "ecdh-sha2-nistp256"
            ],
            "mac": [
              "AEAD_AES_128_GCM",
              "AEAD_AES_256_GCM",
              "hmac-sha2-512-etm@openssh.com",
              "hmac-sha2-256-etm@openssh.com",
              "hmac-sha2-512",
              "hmac-sha2-256",
              "hmac-sha1"
            ],
            "cipher": [
              "aes128-gcm@openssh.com",
              "AEAD_AES_128_GCM",
              "chacha20-poly1305@openssh.com"
            ],
            "compression": [
              "none",
              "zlib",
              "zlib@openssh.com"
            ],
            "dh-group": {
              "min-size": 1024,
              "preferred-size": 2048,
              "max-size": 8192
            }
          },
          "ned-keep-alive": {
            "count": 3
          },
          "connect-retries": {
            "attempts": 0,
            "timeout": 3
          },
          "trace": "false",
          "trace-output": "file",
          "ned-settings": {
            "use-junos-rollback": false
          },
          "commit-queue": {
            "enabled-by-default": false
          },
          "session-limits": {
            "max-sessions": "unlimited"
          },
          "session-pool": {
            "idle-time": 30
          },
          "no-overwrite": {
            "enabled-by-default": false
          },
          "lsa": {
            "no-overwrite": {
              "enabled-by-default": false
            }
          },
          "out-of-sync-commit-behaviour": "reject"
        },
        "state": {
          "oper-state": "enabled",
          "transaction-mode": "ned",
          "last-transaction-id": "9a42c71be40b8285f804552ccfad281b",
          "admin-state": "unlocked"
        },
        "capability": [],
        "module": [
          {
            "name": "tailf-ned-cisco-nx",
            "revision": "2021-10-01"
          },
          {
            "name": "tailf-ned-cisco-nx-stats",
            "revision": "2021-10-01"
          }
        ],
        "platform": {
          "name": "NX-OS",
          "version": "9.2(2)",
          "model": "cisco Nexus9000 9000v Chassis ",
          "serial-number": "99ZQXME9M7G"
        },
        "config": {
          "tailf-ned-cisco-nx:tailfned": {
            "default-lacp-suspend-individual": true
          },
          "tailf-ned-cisco-nx:version": "9.2(2) Bios:version",
          "tailf-ned-cisco-nx:hostname": "NX-ATL",
          "tailf-ned-cisco-nx:feature": {},
          "tailf-ned-cisco-nx:password": {
            "strength-check": false
          },
          "tailf-ned-cisco-nx:username": [],
          "tailf-ned-cisco-nx:banner": {},
          "tailf-ned-cisco-nx:ip": {},
          "tailf-ned-cisco-nx:ipv6": {},
          "tailf-ned-cisco-nx:copp": {},
          "tailf-ned-cisco-nx:mac": {},
          "tailf-ned-cisco-nx:snmp-server": {},
          "tailf-ned-cisco-nx:rmon": {
            "event": []
          },
          "tailf-ned-cisco-nx:vlan": {
            "vlan-list": []
          },
          "tailf-ned-cisco-nx:class-map": {
            "type": {
              "qos": []
            }
          },
          "tailf-ned-cisco-nx:ntp": {
            "server": []
          },
          "tailf-ned-cisco-nx:vrf": {
            "context": []
          },
          "tailf-ned-cisco-nx:hardware": {
            "qos": {
              "ns-buffer-profile": "burst"
            }
          },
          "tailf-ned-cisco-nx:vdc": {
            "vdc-list": []
          },
          "tailf-ned-cisco-nx:policy-map": {
            "type": {
              "qos": []
            }
          },
          "tailf-ned-cisco-nx:interface": {
            "mgmt": [],
            "Vlan": [],
            "Ethernet": [],
            "loopback": []
          },
          "tailf-ned-cisco-nx:line": {
            "vty": {
              "exec-timeout": 500000,
              "session-limit": 10
            }
          },
          "tailf-ned-cisco-nx:logging": {
            "server": [],
            "monitor": 5,
            "module": 5,
            "console": 2
          },
          "tailf-ned-cisco-nx:boot": {
            "nxos": {
              "image": "bootflash:/nxos.9.2.2.bin"
            }
          },
          "ietf-yang-library:yang-library": {
            "module-set": [],
            "schema": [],
            "datastore": [],
            "content-id": "55c603a32bab046660068c2b0672e54e"
          },
          "ietf-yang-library:modules-state": {
            "module-set-id": "55c603a32bab046660068c2b0672e54e",
            "module": []
          }
        },
        "live-status": {
          "tailf-ned-cisco-nx-stats:inventory": [],
          "tailf-ned-cisco-nx-stats:mac": {
            "address-table": []
          },
          "tailf-ned-cisco-nx-stats:cdp": {
            "neighbors": []
          },
          "tailf-ned-cisco-nx-stats:forwarding": {
            "vrf": []
          },
          "tailf-ned-cisco-nx-stats:interface": {
            "ethernet": [],
            "vlan": []
          },
          "tailf-ned-cisco-nx-stats:ip": {},
          "tailf-ned-cisco-nx-stats:vlan": {},
          "ietf-yang-library:yang-library": {},
          "ietf-yang-library:modules-state": {}
        },
        "tailf-ncs-alarms:alarm-summary": {}
      }
    ]
  }
} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Send Run Action Request - NSO

Workflow to perform a run action in NSO

Capabilities include:

  • Perform a run action in NSO

Entry Point IAP Component

The primary IAP component to run Send Run Action Request - NSO is listed below:

IAP Component NameIAP Component Type
Send Run Action Request - NSOWorkflow

Inputs

The following table lists the inputs for Send Run Action Request - NSO:

NameTypeRequiredDescriptionExample Value
pathstringyesThe XPath to package's action
/itential_commands/set_config
paramsobjectyesValues needed to execute the action
{
  "config": "interface Ethernet1/1\n shutdown",
  "device": "CiscoNXOS",
  "deviceType": "cisco-nx-cli-5.22"
}
adapterIdstringyesNSO adapter instance to be used
nso

Outputs

There are no outputs for Send Run Action Request - NSO.

Query Output

There are no query output examples for Send Run Action Request - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "adapterId": "nso",
  "path": "/itential_commands/set_config",
  "params": {
    "config": "interface Ethernet1/1\n shutdown",
    "device": "CiscoNXOS",
    "deviceType": "cisco-nx-cli-5.22"
  }
} 

Output:

{} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Sync From Devices - NSO

A workflow to perform a check-sync against a list of devices and then perform sync-from against devices that are not in-sync

Capabilities include:

  • Check sync from a list of devices and sync from devices that are not in-sync

Entry Point IAP Component

The primary IAP component to run Sync From Devices - NSO is listed below:

IAP Component NameIAP Component Type
Sync From Devices - NSOWorkflow

Inputs

The following table lists the inputs for Sync From Devices - NSO:

NameTypeRequiredDescriptionExample Value
devicesarrayyesList of device names to check sync
[
  "CiscoNXOS",
  "nx03-atl",
  "Cisco_NX_temp"
]
adapterIdstringyesNSO adapter instance to be used
nso

Outputs

There are no outputs for Sync From Devices - NSO.

Query Output

There are no query output examples for Sync From Devices - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "adapterId": "nso",
  "devices": [
    "CiscoNXOS",
    "nx03-atl",
    "Cisco_NX_temp"
  ]
} 

Output:

{} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Validate Configuration against NED - NSO

Workflow that validates a command run against a network element driver (NED). A manual form task provides ability for operator to specify the NED and command to validate.

Capabilities include:

  • Gets brokered devices across NSO instance(s)
  • Gets NSO adapter instances
  • Gets NEDs for each NSO adapter instance
  • Displays form to operator to select found NED and command to run against the NED
  • Validates command run against NED

Entry Point IAP Component

The primary IAP component to run Validate Configuration against NED - NSO is listed below:

IAP Component NameIAP Component Type
Validate Configuration against NED - NSOWorkflow

Inputs

The following table lists the inputs for Validate Configuration against NED - NSO:

NameTypeRequiredDescriptionExample Value
suppressMessagebooleanyesWhether to view the validation result and re-try option
true

Outputs

The following table lists the outputs for Validate Configuration against NED - NSO:

NameTypeDescriptionExample Value
validateResultstringResult of configuration validation
Using
ADAPTER: nso  NED: cisco-nx-cli-5.22

These Commands interface Ethernet1/1 description 123

Returned this result Config is valid

Query Output

There are no query output examples for Validate Configuration against NED - NSO.

Example Inputs and Outputs

Example 1

Input:

{
  "suppressMessage": true
} 

Output:

{
  "NED_List": [
    [
      {
        "listing": "ADAPTER: nso  NED: alu-sr-cli-8.21",
        "adapter": "nso",
        "nedid": "alu-sr-cli-8.21"
      },
      {
        "listing": "ADAPTER: nso  NED: alu-sr-cli-8.28",
        "adapter": "nso",
        "nedid": "alu-sr-cli-8.28"
      },
      {
        "listing": "ADAPTER: nso  NED: alu-sr-cli-8.31",
        "adapter": "nso",
        "nedid": "alu-sr-cli-8.31"
      },
      {
        "listing": "ADAPTER: nso  NED: arista-dcs-cli-5.23",
        "adapter": "nso",
        "nedid": "arista-dcs-cli-5.23"
      },
      {
        "listing": "ADAPTER: nso  NED: cisco-asa-cli-6.13",
        "adapter": "nso",
        "nedid": "cisco-asa-cli-6.13"
      },
      {
        "listing": "ADAPTER: nso  NED: cisco-ios-cli-6.77",
        "adapter": "nso",
        "nedid": "cisco-ios-cli-6.77"
      },
      {
        "listing": "ADAPTER: nso  NED: cisco-iosxr-cli-7.32",
        "adapter": "nso",
        "nedid": "cisco-iosxr-cli-7.32"
      },
      {
        "listing": "ADAPTER: nso  NED: cisco-iosxr-cli-7.38",
        "adapter": "nso",
        "nedid": "cisco-iosxr-cli-7.38"
      },
      {
        "listing": "ADAPTER: nso  NED: cisco-nx-cli-5.22",
        "adapter": "nso",
        "nedid": "cisco-nx-cli-5.22"
      },
      {
        "listing": "ADAPTER: nso  NED: juniper-junos-nc-4.6",
        "adapter": "nso",
        "nedid": "juniper-junos-nc-4.6"
      }
    ]
  ],
  "validateResult": "Using\nADAPTER: nso  NED: cisco-nx-cli-5.22\n\nThese Commands\ninterface Ethernet1/1\n description 123\n\n\nReturned this result\nConfig is valid"
} 

API Links

API NameAPI Documentation LinkAPI Link Visibility
Itential Automation Platform - NSO Adapter Overviewhttps://docs.itential.com/docs/nso-adapter-2023-1Public

Additional Information

Support

Please use your Itential Customer Success account if you need support when using this Workflow Project.