References
CPS-677
-
Getting issue details...
STATUS
Issues/Decisions
# | Issue | Notes | Decision |
---|
1 | removing public property using update with 'null' should also be possible for additional properties |
| Have separate user story for property 'removal' that will handle both cases 9as sub tasks if need). Changes are most of code will be similar for each |
Scope
- Support should include create/delete/update from a dmi plugin.
- Read public properties for a cmhandle
Analysis
The dmi-plugin introduced in Istanbul release has the ability to add a databag of properties (cmHandleProperties) on creation of a cmhandle.
These properties are only shared between NCMP and the dmi-plugin. In addition, they are only understood by the dmi-plugin and are never used by NCMP.
Once the cmhandle is created in NCMP with the properties attached, then any subsequent requests sent to dmi-plugin for a cmhandle will include these additional properties.
In Istanbul release NCMP does not expose these cmhandle properties except on the ncmp < - >dmi-plugin interface.
It should be possible for dmi-plugin to register properties that it wishes to be exposed to application clients of the NCMP interface.
The proposed interface changes required on the dmi-plugin interface are listed in the table in Interface Proposals below.
Interface Proposal
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" : "rf4er5454",
"cmHandleProperties" : {
"samplePropertyName1" : "samplePropertyValue1" }
"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
| - Is the URI being updated to {ncmpRoot}/ncmpDmi/v2/ch ?
- Update to an existing interface
- New proposed additions in red
- To remove a property, suggest to set the value for the property to in the updatedCmHandles section
- Note, the given properties like hostedBy are sample data only.
|
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;
}
}
}
}
}