Table of Contents |
---|
Jira | ||||||
---|---|---|---|---|---|---|
|
Issues & Decisions
# | Issue | Notes | Decision |
---|---|---|---|
1 | Separating of Interfaces | Tony recommended NOT to split the interfaces.
| Check with stakeholders (Peter and Kieran) The decision made is: NOT to separate interfaces |
Description
Currently it is only possible to register a single dmi-plugin service name with NCMP.
...
These changes must be backward compatible with the existing Istanbul release where the dmi-plugin is a single service managing both model and data requests.
Register 2 separate plugins for different responsibilities model v. data (for scaling purposes)
Backward compatible! ie can stil register 1 plugin for both (ONAP plugin will keep using that)
Basic checks while registering: Either 2 separate Plugins OR 1 common plugin for both responsibilities. If not reject registration!
Required DB Schema update, see https://wiki.onap.org/display/DW/CPS-352+%3A+Create+yang-model+for+DMI-registry+data (new revision of that model) Possible add 2 new leaves for separate registration
Proposal Diagram
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
At least one of either (dmiPlugin) or (dmiDataPlugin + dmiModelPlugin) must be defined in the interface. Otherwise a "Bad Request" error will be returned to calling dmi-plugin.
Interface Sketch
DMI notifies NCMP of new , deleted or changed cmhandles DMI Plugin NCMP. Including initial registration | Scenario : DMI notifies NCMP of new cmhandles Request Body
json attributes:
|
openAPI Updates
To support this the equivalent openAPI will be similar to the below in bold.
...
...
language | yml |
---|---|
theme | Eclipse |
...
RestCmHandle:
...
...
required:
...
...
-
...
cmHandle
...
...
type:
...
object
...
...
properties:
...
...
cmHandle:
...
...
type:
...
string
...
...
example:
...
cmHandle123
...
...
cmHandleProperties:
...
...
$ref:
...
'#/components/schemas/RestCmHandleAdditionalProperties'
...
...
RestCmHandleAdditionalProperties:
...
...
type:
...
object
...
...
additionalProperties:
...
...
type:
...
string
...
...
example:
...
system-001
...
...
...
RestDmiPluginRegistration:
...
...
...
...
type:
...
object
...
...
...
...
properties:
...
...
...
...
...
dmiPlugin:
...
...
...
...
...
...
type:
...
string
...
...
...
...
...
...
required:
...
false
...
...
...
...
...
...
example:
...
onap-dmi-plugin
...
...
...
...
...
dmiDataPlugin:
...
...
...
...
...
...
...
type:
...
string
...
...
...
...
...
...
required:
...
false
...
...
...
...
...
...
example:
...
onap-dmi-data-plugin
...
...
...
...
...
dmiModelPlugin:
...
...
...
...
...
...
...
type:
...
string
...
...
...
...
...
...
required:
...
false
...
...
...
...
...
...
example:
...
onap-dmi-model-plugin
...
...
...
...
...
createdCmHandles:
...
...
...
...
...
...
type:
...
array
...
...
...
...
...
...
items:
...
...
...
...
...
...
...
$ref:
...
'#/components/schemas/RestCmHandle'
...
...
...
...
...
updatedCmHandles:
...
...
...
...
...
...
type:
...
array
...
...
...
...
...
...
items:
...
...
...
...
...
...
...
$ref:
...
'#/components/schemas/RestCmHandle'
...
...
...
...
...
removedCmHandles:
...
...
...
...
...
...
type:
...
array
...
...
...
...
...
...
items:
...
...
...
...
...
...
...
type:
...
string
NCMP-DMI APIs (Data/Model)
# | API | Data/Model | Notes |
---|---|---|---|
1 | /v1/ch/{cmHandle}/modules | Model | |
2 | /v1/inventory/cmHandles | Model | Some ambiguity for this API but it was decided it belongs with model |
3 | /v1/ch/{cmHandle}/moduleResources | Model | |
4 | /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational | Data | |
5 | /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running | Data |