You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

References

CPS-837 - Getting issue details... STATUS

Issues/Decisions

#IssueNotesDecision
1Add/Remove/Update properties as part of CM-handle registration update.

Scope

  • Within the NCMP CM-Handle registration post request add functionality to add/remove properties of an existing CM-Handle.
  • 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.

    Empty 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


December 2021 Yang Model for Public Properties Support


December 2021 Yang Model
module dmi-registry {

  yang-version 1.1;

  namespace \"org:onap:cps:ncmp\";

  prefix dmi-reg;

  organization \"Nordix Foundation\";

  contact \"rahul.tyagi@est.tech\";

  revision \"2021-12-13\" {
   description
   \"Added support for new list of public additional properties for a Cm-Handle which are exposed to clients of the NCMP interface. \";
  }

  container dmi-registry {

    list cm-handles {

      key \"id\";

      leaf id {
        type string;
      }

      leaf dmi-service-name {
        type string;
      }

      leaf dmi-data-service-name {
        type string;
      }

      leaf dmi-model-service-name {
        type string;
      }

      list additional-properties {
        key \"name\";
        leaf name {
          type string;
        }
        leaf value {
          type string;
        }
      }
      list public-properties {
        key \"name\";
        leaf name {
          type string;
        }
        leaf value {
          type string;
        }
      }
    }
  }
}  
  • No labels