#Admin State

Admin state is used to lock, unlock or southbound-lock devices. Modification of data on those devices is allowed or forbidden accordingly.

Three different states are currently supported:

  • LOCKED - When a device is administratively locked, it is not possible to modify its configuration and no changes are ever pushed to the device.
  • UNLOCKED - The device is assumed to be operational. For all changes, an attempt is made to send them southbound. This is the default state for newly created devices.
  • SOUTHBOUND_LOCKED - It is possible to configure the device, but no changes are sent to the device. Useful when pre-provisioning devices.

The admin state is automatically added to the device during installation. You can specify an admin state for a device as follows:

"uniconfig-config:admin-state": "unlocked"

An RPC is available for changing admin state after installation.

#RPC example

RPC input contains the device name and intended admin state.

RPC Request
curl --location --request POST 'http://localhost:8181/rests/operations/connection-manager:change-admin-state' \ --header 'Authorization: Basic YWRtaW46YWRtaW4=' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data-raw '{ "input": { "node-id": "vnf20", "admin-state": "southbound_locked" } }'
RPC Response, Status: 204

#RPC example

GET request to get the actual state of the device.

RPC Request
curl --location --request GET 'http://localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=vnf20/uniconfig-config:admin-state' \ --header 'Authorization: Basic YWRtaW46e3twYXNzd29yZH19'
RPC Response, Status: 200
{ "uniconfig-config:admin-state": "unlocked" }

#RPC failed example

The device is in the locked admin state, and the user attempts to modify data on the device.

RPC Request
curl --location --request PUT 'http://localhost:8181/rests/data/network-topology:network-topology/topology=uniconfig/node=/configuration/confdConfig/ssh/clientAliveCountMax' \ --header 'Authorization: Basic YWRtaW46YWRtaW4=' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data-raw '{ "clientAliveCountMax": 4 }'
RPC Response, Status: 400
{ "errors": { "error": [ { "error-message": "4af87c96-e49b-4e62-9217-316fe966d3d1: The commit RPC returned FAIL status. \n The node: '' is currently in admin-state LOCKED.", "error-tag": "bad-element", "error-type": "rpc" } ] } }