Versions Compared

Key

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

...

Expand
titleAPI Details

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

#Use CaseRest MethodServiceURIExample*
1DMI 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:

  • "dmiPlugin" resolvable servicename
  • "created-cmHandles" used for initial cm handle registrations or subsequent
    cmhandle creations
  • "updated-cmHandles"
    Used for updates to cmhandles. Same structure as for create handles
  • "removed-cmHandles"  array of cmhandles that have been deleted
    from the network (no additional properties
NCMP

{ncmpRoot}/ncmpDmi/v1/ch/

Scenario : DMI notifies NCMP of new cmhandles
Method : POST
URI : {ncmpRoot}/ncmpDmi/v1/ch/
Header :
Content-Type: application/json

Code Block
languagexml
titleRequest Body
Request Body : {
      "dmiPlugin" : "onap.dmi.plugin", 
      "createdCmHandles" : [ {   "cmHandle" : "rf4er5454",
                                 "additionalProperties" :
                                   { "subSystemId" : "system-001" }
                             }, {..} ],
      "updatedCmHandles" : [ .. ],
      "removedCmHandles" : [ "node-1", "node-2" , ... ]
  }


2Get all the registered cmhandles for a given pluginGETNCMP{ncmpRoot}/ncmpDmi/v1/dmiPlugins/{pluginId}/ch
Scenario : Get all cmhandles from NCMP for a given dmiPlugin. May be used
for conciliation
Method : GET
URI : {ncmpRoot}/ncmpDmi/v1/dmiPlugins/{dmiPlugin}/ch
Header :
Content-Type: application/json


Code Block
languagexml
titleResponse Body
Success Response :
    HTTP/1.1 200 Ok
Date: Thu, 26 Jan 2021 20:56:30 GMT
Server: example-server
  { "cmHandles" : [ {
          "cmHandle" : "node-1",
          "additionalProperties" : { "subSystem" : "system-001" }
       } ]
   }


3

Get module set for a cmhandle


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

Header :
Content-Type: application/json


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

Code Block
languagexml
titleResponse Body
Response:
 {
  "schemas": {
    "schema": [
      {
        "identifier": "nc-notifications",
        "version": "2008-07-14",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:netmod:notification",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-tls-server",
        "version": "2016-11-02",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-tls-server",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-ssh-server",
        "version": "2016-11-02",
        "format": "ietf-netconf-monitoring:yin",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-ssh-server",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "turing-machine",
        "version": "2013-12-27",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "http://example.net/turing-machine",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-yang-metadata",
        "version": "2016-08-05",
        "format": "ietf-netconf-monitoring:yin",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-metadata",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "iana-crypt-hash",
        "version": "2014-08-06",
        "format": "ietf-netconf-monitoring:yin",
        "namespace": "urn:ietf:params:xml:ns:yang:iana-crypt-hash",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-datastores",
        "version": "2017-08-17",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-keystore",
        "version": "2016-10-31",
        "format": "ietf-netconf-monitoring:yin",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-keystore",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-x509-cert-to-name",
        "version": "2014-12-10",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-netconf-with-defaults",
        "version": "2011-06-01",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-netconf",
        "version": "2011-06-01",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:netconf:base:1.0",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-yang-metadata",
        "version": "2016-08-05",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-metadata",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-yang-library",
        "version": "2019-01-04",
        "format": "ietf-netconf-monitoring:yin",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-netconf-acm",
        "version": "2018-02-14",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-acm",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-keystore",
        "version": "2016-10-31",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-keystore",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "ietf-netconf-with-defaults",
        "version": "2011-06-01",
        "format": "ietf-netconf-monitoring:yin",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults",
        "location": [
          "NETCONF"
        ]
      },
      {
        "identifier": "mynetconf",
        "version": "2019-03-01",
        "format": "ietf-netconf-monitoring:yang",
        "namespace": "urn:mynetconf:test",
        "location": [
          "NETCONF"
        ]
      }

        ]
  }
}

4Get yang module source for a list of modulesPOSTdmiPlugin

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


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": [
        {
          "namespace": "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier",
          "name": "_3gpp-nr-nrm-nrsectorcarrier",
          "revision": "2020-12-09"
        }
      ]
    },
    "additionalProperties": {
      "subSystemId": "system-001"
    }
}


Response: a list yang module references and source for each

Code Block
languagexml
titleResponse Body
{ [
{
"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}"
}, {...} ]
}


...