...
Expand |
---|
|
*For response output, where applicable the yang-library format and conventions are used 'as is' or extended # | Use Case | Rest Method | Service | URI | Example* |
---|
1 | DMI notifies NCMP of new , deleted or changed cmhandles DMI Plugin NCMP. Including initial registration | POST for creating. For update, replace and patch is distinguished by the HTTP method (PUT or PATCH). json attributes: - "dmi-plugin" resolvable servicename
- "created-cm-handles" used for initial cm handle registrations or subsequent
cmhandle creations - "updated-cm-handles"
Used for updates to cmhandles. Same structure as for create handles
- "removed-cm-handles" array of cmhandles that have been deleted
from the network (no additional properties
| NCMP | {ncmp-root}/ncmp-dmi/v1/ch/ | Scenario : DMI notifies NCMP of new cmhandles Method : POST URI : {ncmp-root}/ncmp-dmi/v1/ch/ Header : Content-Type: application/json
Request Body : { "dmi-plugin" : "onap.dmi.plugin", "created-cm-handles" : [ { "cmhandle" : "rf4er5454",
Code Block |
---|
| {
"operation": "create", // Valid operations are: “create”, “read”, “update” and “delete”.
"data-type": "application/json",
"data": {
"dmi-plugin": "onap.dmi.plugin",
"data": {
"cmhandle": "node-123"
|
"subsystemId": "system-001"
}
}
} |
| 2 | Get all the registered cmhandles for a given plugin | GET | NCMP | {ncmp-root}/ncmp-dmi/v1/dmi-plugins/{plugin-id}/ch | Scenario : Get all cmhandles from NCMP for a given dmi-plugin. May be used for conciliation Method : { "subsystemId" : "system-001" } GET URI : {ncmp-root}/ncmp-dmi/v1/dmi-plugins/{dmi-plugin}/ch Header : Content-Type: application/json
Success Response : HTTP/1.1 200 Ok Date: Thu, 26 Jan 2021 20:56:30 GMT Server: example-server { "cmhandles" : [ { }, {..} ], "cmhandle" : "updatednode-cm-handles1", : [ .. ], "removed-cm-handlesadditionalProperties" : [{ "node-1",subSystem" : "nodesystem-2" , ...001" } } ] } | 23 | Get | all the registered cmhandles module set for a | given plugincmhandle | GET
| POSTNCMP | DMI-Plugin | { | ncmpdmi-root}/ | ncmp-dmi/v1/ | dmich/cmhandle- | plugins/{plugin-id}/chScenario : Get all cmhandles from NCMP for a given dmi-plugin. May be used for conciliation Method : GET URI : {ncmp-root}/ncmp-dmi/v1/dmi-plugins/{dmi-plugin}/ch Header : Content-Type: application/json Success Response : HTTP/1.1 200 Ok Date: Thu, 26 Jan 2021 20:56:30 GMT Server: example-server { 001/modules | Header : Content-Type: application/json
Code Block |
---|
| {
"operation": "read",
"data-type": "application/json",
"data": {
"data": {
"cmhandle": "node-123"
},
"additionalProperties": {
"subsystemId": "system-001"
}
}
} |
Response: { "ietf-yang-library:yang-library" : [ { "module-set
| "cmhandles | "cmhandle" | : | "node-1",
| "additionalProperties" | : | { | subSystem | system | 001 | }
| } | ]
| }3 | Get module set for a cmhandle POST | DMI-Plugin | {dmi-root}/dmi/v1/ch/cmhandle-001/modules | Header : Content-Type: application/json Body : { "additionalProperties" : {"subSystem" : "subsystem-001"}} Response: { "ietf-yang-library:yang-library" : [ { "module-set" : [ {
"module" : [ { "name" : " sample-module_3gpp-nr-nrm-nrsectorcarrier", " module[{ "name" : ": "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier", "revision" : "2020-12-09", "namespace" : "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier", } | 4 | Get yang module source for a list of modules | POST | DMI-Plugin | {dmi-root}/dmi/v1/ch/<cm-handle>model
DMI PLugin will make multiple requests to xNF and combine the result in a list |
Code Block |
---|
| {
"operation": "read",
"data-type": "application/json",
"data": {
"data": {
"cmhandle": "node-123"
},
"additionalProperties": {
"subsystemId": "system-001",
|
... } | 4 | Get yang module source for a list of modules | POST | DMI-Plugin | {dmi-root}/dmi/v1/ch/<cm-handle>model DMI PLugin will make multiple requests to xNF and combine the result in a list Body : { "additionalProperties" : {"subSystem" : "subsystem-001"} "modules" : [ {"modules": [
{
"namespace": "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier",
"name": "_3gpp-nr-nrm-nrsectorcarrier",
"revision": "2020-12-09"
} |
, { ... } ]
Response: a list yang module references and source for each
{ [ { "name" : "_3gpp-nr-nrm-nrsectorcarrier", "revision" : "2020-12-09", "namespace": "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier" }, "yang-source": "module pnf-sw-upgrade {\n namespace \"http://onap.org/pnf-sw-upgrade\";\n prefix upgrade;\n\n import ietf-yang-types {\n prefix yang;\n } \n\n revision 2019-12-03 {\n description\n \"initial version\";\n }\n\n container software-upgrade {\n list upgrade-package {\n key \"id\";\n leaf id {\n type string;\n } \n\n leaf current-status {\n type enumeration {\n enum \"CREATED\";\n enum \"INITIALIZED\";\n enum \"DOWNLOAD_IN_PROGRESS\";\n enum \"DOWNLOAD_COMPLETED\";\n enum \"ACTIVATION_IN_PROGRESS\";\n enum \"ACTIVATION_COMPLETED\";\n }\n description\n \"List of possible states of the upgrade\";\n }\n\n leaf state-change-time {\n type yang:date-and-time;\n mandatory false;\n description\n \"Date and time of the last state change.\";\n }\n\n leaf action {\n type enumeration {\n enum \"NONE\";\n enum \"PRE_CHECK\";\n enum \"DOWNLOAD_NE_SW\";\n enum \"ACTIVATE_NE_SW\";\n enum \"CANCEL\";\n }\n mandatory false;\n description\n \"List of possible actions for the upgrade\";\n }\n\n leaf software-version {\n type string;\n description\n \"Possible name or release version of the UP\";\n } \n\n leaf uri {\n type string;\n description\n \"A URI that points to the directory where the UP can be found.\";\n }\n\n leaf user {\n type string;\n description\n \"Indicates the user.\";\n }\n\n leaf password {\n type string;\n description\n \"Indicates the password.\";\n }\n\n leaf user-label {\n type string;\n description\n \"Free-text description of the UP.\";\n }\n\n leaf node-health {\n type string;\n description\n \"Reflect Node Health Status\";\n }\n }\n }\n}" }, {...} ] }
|
|
GET Request with body
The HTTP libraries of certain languages (notably JavaScript) don’t allow GET requests to have a request body. In fact, some users are surprised that GET requests are ever allowed to have a body.
...