Versions Compared

Key

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

...

  • Properties are removed by setting the value to null in the update registration request. (Only applicable when updatedCmHandles json tag is present)
  • Both Additional and Public properties should be taken care off as part of the update.

Analysis

Proposal

ScenarioURIPayload/Input RequestSuggested Code / ChangesComments
Request to create the cmHandle

POST

{ncmpRoot}/ncmpInventory/v1/ch/


{
  "dmiPlugin": "onap.dmi.plugin",      
  "createdCmHandles": [
    {
      "cmHandle": "myHandle1",
      "cmHandleProperties": {
        "prop1": "value1",
        "prop2": "value2",
        "prop3": "value3"
      }
    }
  ]
}


No Impact. It will create the cmHandle.Existing behaviour.
Request has updatedCmHandles tag present in the incoming request.

POST

{ncmpRoot}/ncmpInventory/v1/ch/


{
  "dmiPlugin": "onap.dmi.plugin",     
  "updatedCmHandles": [
    {
      "cmHandle": "myHandle1",
      "cmHandleProperties": {
        "prop1": null,       //case-1
        "prop2": "newValue2", //case-2
        "prop4": "value4"       //case-3 
      }
    }
  ]
}


case-1 : Property which needs to be removed must be explicitly set to null 

case-2: Property which needs to be updated can have the new values in the incoming request.

case-3: Property which needs to be added can be present in the form of "name" : "value" as seen above.

  1. Since the incoming request has updatedCmHandles tag hence we need to check if there are properties eligible to be updated.

    Code Block
    languagejava
    titleEmpty or null check
    !dmiPluginRegistration.getUpdatedCmHandles().isEmpty();OR
    dmiPluginRegistration.getUpdatedCmHandles() !=null











Requirement URI
Comment

NCMP-008

Register or update public cmhandle properties


{ncmpRoot}/ncmpInventory/v1/ch/
Scenario : DMI notifies NCMP of new, updated or removed cmhandles
Method : POST
URI : {ncmpRoot}/ncmpInventory/v1/ch/
Header :
Content-Type: application/json


Request Body

Request Body : {
      "dmiPlugin" : "onap.dmi.plugin",
      "createdCmHandles" : [ {   "cmHandle" : "cmHandle1",
                                 "cmHandleProperties" : {
                                    "prop1" : "value1",
                                    "prop2" : "value2",


                                    "prop3" : "value3"
                                  }        

                                                                         "publicCmHandleProperties" :  {     
                                                                                "hostedBy" : "cmhandle-5678"                                                                                       
                                                                                 "samplePropertyName2" : "samplePropertyValue2

                                  }

                             },
                             {..}
                           ],

      "updatedCmHandles" : [
                             {

                                 "cmHandle" : "ds4errr77",
                                 "cmHandleProperties" : { # To remove a property, set the value to null
                                    "samplePropertyName1" : "updatedSamplePropertyValue1",
                                    "samplePropertyName2" : null  # This property will be removed
                                  }        

                                                                         "publicCmHandleProperties" :  {      # To remove a property, set the value to null
                                                                               "hostedBy" : "cmhandle-11213",
                                                                                "samplePublicPropertyName1" : "updatedSamplePublicPropertyValue2"

                                  }


                             },
                             {..}

                           ],
      "removedCmHandles" : [ "node-1", "node-2" , ... ]
  }




json attributes:

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


...