NETCONF event streams
NSO emits notifications over NETCONF for events that occur within its system — service deployments, alarm changes, device state changes, and more. The NSO adapter can subscribe to these streams, and Platform workflows can be configured to wait for and respond to specific events.
How it works
- NSO event streams are defined in
ncs.confon the NSO server. - The NSO adapter is configured with a list of streams to subscribe to (
netconfSubscriptions). - Platform workflows use the
eventListenertask to pause execution until a specific event is received from a subscribed stream. - When the event arrives, the workflow resumes and processes the event payload.
Step 1: Configure NSO event streams
NSO supports the following built-in event streams:
ncs-alarmsncs-eventsdevice-notificationsservice-state-changesNETCONF
Every stream that the adapter will subscribe to must be defined in ncs.conf, even if it does not support replay. The following example configures the ncs-alarms stream:
Repeat for each stream you want to enable. Refer to the Cisco NSO documentation for stream-specific configuration options.
Step 2: Configure the adapter to subscribe
In the NSO adapter service config, set netconfSubscriptions to the list of streams the adapter should subscribe to. The values must match the stream names defined in ncs.conf.
The adapter must be restarted after updating this property for the subscription changes to take effect.
Step 3: Configure the eventListener workflow task
In Automation Studio, use the eventListener task to pause a workflow until a specific NSO event is received.
When a workflow job reaches an eventListener task, it enters a running state and waits. Once the specified event arrives, the task completes and the workflow continues.
Task inputs
Event Schema Filter example
The following schema filter causes the eventListener task to proceed only when it receives a plan-state-change event for the l3vpn service named IAP with status reached:
Expected event payload:
Corresponding Event Schema Filter:
To listen for any event on a stream without filtering by payload, set the Event Schema Filter to {}.