#SONiC device
#Install device
SONiC devices can be installed through gNMI with the following request:
curl --location 'http://localhost:8181/rests/operations/connection-manager:install-node' \ --header 'Content-Type: application/json' \ --data '{ "input": { "node-id": "sonic", "gnmi": { "schema-cache-directory": "gnmi-topology", "update-paths": [ "openconfig-interfaces:interfaces\/interface=.*[Ee]thernet?[0-9]+\/.*", "[^\/]+", "sonic-vlan:sonic-vlan.*" ], "replace-paths": [ "openconfig-interfaces:interfaces/interface=$.*[Ee]thernet?[0-9]+/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config/trunk-vlans", "openconfig-interfaces:interfaces/interface=$.*[Pp]ortChannel?[0-9]+/openconfig-if-aggregate:aggregation/openconfig-vlan:switched-vlan/config/trunk-vlans", "openconfig-relay-agent:relay-agent/dhcp/interfaces/interface=$[Vv]lan[0-9]+/config", "openconfig-relay-agent:relay-agent/dhcpv6/interfaces/interface=$[Vv]lan[0-9]+/config", "openconfig-platform:components/component=$.*/openconfig-platform:port/openconfig-platform-port:breakout-mode" ], "remove-module-names-paths": [ "network-instances/network-instance=default/protocols/protocol" ], "all-type-paths": [ "openconfig-lldp:lldp", "openconfig-port-group:port-groups" ], "dependency-paths": [ { "before": "openconfig-network-instance:network-instances/network-instance", "after": "openconfig-network-instance:network-instances/network-instance/interfaces/interface" }, { "before": "openconfig-network-instance:network-instances/network-instance/interfaces/interface", "after": "openconfig-network-instance:network-instances/network-instance/openconfig-vxlan:vxlan-vni-instances/vni-instance" }, { "before": "openconfig-network-instance:network-instances/network-instance/interfaces/interface", "after": "openconfig-interfaces:interfaces/interface/openconfig-vlan:routed-vlan/openconfig-if-ip:ipv4/openconfig-interfaces-ext:sag-ipv4/config" }, { "before": "openconfig-network-instance:network-instances/network-instance/interfaces/interface", "after": "openconfig-interfaces:interfaces/interface/openconfig-vlan:routed-vlan/openconfig-if-ip:ipv6/openconfig-interfaces-ext:sag-ipv6/config" }, { "before": "openconfig-network-instance:network-instances/network-instance/openconfig-vxlan:vxlan-vni-instances/vni-instance", "after": "openconfig-relay-agent:relay-agent/dhcp/interfaces/interface" }, { "before": "openconfig-network-instance:network-instances/network-instance/openconfig-vxlan:vxlan-vni-instances/vni-instance", "after": "openconfig-relay-agent:relay-agent/dhcpv6/interfaces/interface" }, { "before": "openconfig-interfaces:interfaces/interface/openconfig-vlan:routed-vlan/openconfig-if-ip:ipv4/openconfig-interfaces-ext:sag-ipv4/config", "after": "openconfig-relay-agent:relay-agent/dhcp/interfaces/interface" }, { "before": "openconfig-interfaces:interfaces/interface/openconfig-vlan:routed-vlan/openconfig-if-ip:ipv6/openconfig-interfaces-ext:sag-ipv6/config", "after": "openconfig-relay-agent:relay-agent/dhcpv6/interfaces/interface" }, { "before": "openconfig-interfaces:interfaces/interface", "after": "openconfig-mclag:mclag/interfaces/interface" }, { "before": "openconfig-interfaces:interfaces/interface", "after": "openconfig-interfaces:interfaces/interface/openconfig-if-ethernet:ethernet/config/aggregate-id" }, { "before" : "openconfig-interfaces:interfaces/interface", "after": "openconfig-network-instance:network-instances/network-instance/interfaces/interface" }, { "before" : "openconfig-network-instance:network-instances/network-instance", "after": "openconfig-interfaces:interfaces/interface/subinterfaces" } ], "uniconfig-config:whitelist": { "path": [ "openconfig-interfaces:interfaces", "openconfig-network-instance:network-instances", "openconfig-relay-agent:relay-agent", "openconfig-port-group:port-groups", "openconfig-mclag:mclag", "openconfig-lldp:lldp", "sonic-vlan:sonic-vlan", "openconfig-platform:components", "openconfig-system:system", "openconfig-neighbor:neighbor-globals", "sonic-mclag:sonic-mclag" ] }, "uniconfig-config:uniconfig-native-enabled": true, "uniconfig-config:sequence-read-active": true, "connection-parameters": { "host": "<ip>", "port": "8080", "device-type" : "sonic", "connection-type": "INSECURE", "credentials": { "username": "<username>", "password": "<password>" } }, "session-timers": { "request-timeout" : 180 }, "other-parameters" : { "dry-run-journal-size" : 240 }, "extensions-parameters": { "gnmi-parameters": { "use-model-name-prefix": true }, "force-cached-capabilities": [ null ] } } } }'
#Uninstall device
To uninstall a device:
curl --location 'http://localhost:8181/rests/operations/connection-manager:uninstall-node' \ --header 'Content-Type: application/json' \ --data '{ "input": { "node-id": "sonic", "connection-type": "gnmi" } }'