Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

  1. The URI prefix is /dmi instead of /ncmp.
  2. For non-passthrough datastores, the resource path will be converted from cpsPath to RESTConfPath
  3. The body for each request will contain additional information and any data provided on the NCMP interface (write operations) will be embedded in a larger JSON structure as described in example below.

  4. Since all requests will have a message body, in some cases the HTTP method will be different to allow passing data. Thus PUT is used instead of GET and DELETE(or POST) can be used, the actual operation will be read from the body.

Excerpt

Request Format for Data Access

Code Block
languagexml
titlerequest body
{
  “operation”: “<operation>”,         // Valid operations are: “create”, “read”, “update” and “delete”.
                                      // For update, replace and patch is distinguished by the HTTP method (PUT or PATCH).
  "dataType": "<dataType>",

    “data”: {                           // Embedded data as a String.
    <data>                            // required for create and update operations. Optional filter-data for read-operations
  },

  “cmHandleProperties”: {           // Additional properties for CM handle previously added by DMI plugin and stored in NCMP.
    <properties>
  }
}


...

Expand
titleAPI Details

Below table shows the proposed interface, actual implementation might deviate from this but can be accessed from

*For response output, where applicable the yang-library format and conventions are used 'as is'  or extended

#Use CaseRest MethodURIExample*
1

Get module set for a cmhandle


POST{dmiRoot}/dmi/v1/ch/cmhandle-001/modules

Header :
Content-Type: application/json


Code Block
languagexml
titleRequest Body
{
  "operation": "read",
    "cmHandleProperties ": {
      "subSystemId": "system-001"
    }
  }
}

Code Block
languagexml
titleResponse Body
Response:  
     "schemas": [
                    {
                      "moduleName": "example-identifier",
                      "revision": "example-version",
                      "namespace": "example-namespace"
                    },
					{
						...
					}
                  ]
                }

2Get yang module source for a list of modulesPOST

{dmiRoot}/dmi/v1/ch/<cmHandle>/moduleResources


DMI Plugin will make multiple requests to xNF and combine the result in a list


Code Block
languagexml
titleRequest Body
{
  "operation": "read",
	"dataType": "application/json",
    "data": {
       "modules": [
        {
          "name": "pnf-sw-upgrade",
          "revision": "2019-12-03"
        }
      ]
    },
    "cmHandleProperties": {
      "subSystemId": "system-001"
    }
}


Response: a list yang module references and source for each

Code Block
languagexml
titleResponse Body
[ {
"name" : "pnf-sw-upgrade",
"revision" : "2019-12-03",
"yang-source": "some-source", {...} ]


...