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
# | Issue | Notes | Decision |
---|
1 | Add/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
Scenario | URI | Payload/Input Request | Suggested Code / Changes | Comments |
---|
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. | Since the incoming request has updatedCmHandles tag hence we need to check if there are properties eligible to be updated.
!dmiPluginRegistration.getUpdatedCmHandles().isEmpty();OR
dmiPluginRegistration.getUpdatedCmHandles() !=null
|
|
|
|
|
|
|
Requirement | URI |
| Comment |
---|
NCMP-008
Register or update public cmhandle properties
| | Scenario : DMI notifies NCMP of new, updated or removed cmhandles Method : POST URI : {ncmpRoot}/ncmpInventory/v1/ch/ Header : Content-Type: application/json
Request BodyRequest 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" : # 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
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;
}
}
}
}
}