The chapter describes how you can get a first overview about a running SDN-R and its features and functionality just using ssh, bash, curl.
...
One of the main questions is: How many NetConf-Servers are configured and what it the connection-status to each NetConf-Server.
...
#!/bin/bash
protocol=http # http or https
fqdn=10.20.6.29 # This is a machine of OSNL (OpenSDN/NFV lab) used for testing the commands
httpPort=8181
odlAaaUserName=demx8as6
odlAaaUserPassword=************
...
echo "List connection-status of mountpoints"
odlMountpointsUrl=$baseUrl/restconf/operational/network-topology:network-topology
curl $login $header $odlMountpointsUrl | python -m json.tool | grep connection-status
echo
```
Data from NetConf Sever (device, network function)
...
The node-ids are known from the commands above. Please remember one
Now it is necessary to check the supported yang modules:
...
echo "View supported yang capabilites for a seleted node (device, mountpoint, netconf-server)"
nodeId="SMOptics"<node-id>
odlMountpointsUrl=$baseUrl/restconf/operational/network-topology:network-topology/topology/topology-netconf/node/$nodeId/available-capabilities
curl $login $header $odlMountpointsUrl | python -m json.tool | grep capability\":
echo
echo "Show device data provided by the NetConf-Server"
yangCapability="core-model:network-element"
odlMountpointsUrl=$baseUrl/restconf/operational/network-topology:network-topology/topology/topology-netconf/node/$nodeId/yang-ext:mount/$yangCapability
curl $login $header $odlMountpointsUrl | python -m json.tool
echo
Data from a database
SDN-R (currently - there are activities to move such data into other databases) stores a couple of data in an elasticsearch cluster. The most important ones are related to NetConf Alarm notifications.
From such notifications SDN-R keeps a table up-to-date with all current alarms of the network. In addition received NetConf Notifications with faults are stored in a separate. EleasticSearch APIs (https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search.html) can be used to retrieve the data.
Current alarms
echo "Show 100 current alarms"
esUrl=$baseUrl/database/sdnevents/faultcurrent/_search
curl --request POST $header -d '{"from":0,"size":100,"query":{"match_all":{}}}' $esUrl | python -m json.tool
echo
Alarm Log
echo "Show 100 alarm logs"
esUrl=$baseUrl/database/sdnevents/faultlog/_search
curl --request POST $header -d '{"from":0,"size":100,"query":{"match_all":{}}}' $esUrl | python -m json.tool
echo
...