...
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.
...
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 |