Reference Material
- - CPS-333Getting issue details... STATUS
- - REQ-717Getting issue details... STATUS
- Release Planning: Istanbul
- https://wiki.onap.org/download/attachments/93006150/CPS-NCMP-Design.pptx?version=1&modificationDate=1614348138000&api=v2
Open Issues & Decisions
# | Description | Notes | Decision |
---|---|---|---|
1 | How to deal with hardcoded E2E NW Slicing model, spike | Discusdons started with E2E NW Slicing Team, to be continued next week | |
2 | Which Simulator to use? NetConf Simulator Netopeer v2
| Rahul Tyagi Ericsson more lightweight, more experience. Swaminathan Seetharaman mentioned 'Honeycomb' simulator they used before. Need to investigate if it supports get-schema method over RESTConf/NetConf Need to check if we can use it with E2E NW Slicing model | |
3 | Should (ONAP) dmi-instance be as separate (springboot) application Could be part of DMI Manager | DMI-Instance interface should be an open standard | Tony Finnerty and Team to allow easy integration of future 3rd part DMI-Plugin instances a separate application with its own REST Interface is required |
4 | What datastores are supported/recognized by NCMP Interface in Istanbul Release | Suggested, see 100895554 section below
| Suggestions in previous column were agreed in CPS Weekly meeting |
5 | What datastores are supported/recognized by (ONAP) DMI-Plugin Interface in Istanbul Release | Suggested exact same as NCMP supported options
| Suggestions in previous column were agreed in CPS Weekly meeting |
6 | How to handle any other (custom) datastore value | Agreed in CPS Weekly meeting : Both NCMP and DMI-Plugin wil not support any other datastore value in the Istanbul timeframe |
Istanbul Roadmap
Priorities & Scope for Istanbul Release
Priority | Description | Notes | Istanbul commitment | Jira(s) |
---|---|---|---|---|
1 | Publish and Share NCMP Rest interface proposal | detailed for Istanbul scope, general structure only for functionality related to later releases | Committed | |
2 | Publish and Share DMI Plugin Rest interface proposal | detailed for Istanbul scope, general structure only for functionality related to later releases | Committed | |
3 | Register a DMI Plugin with NCMP | DMI plugin registration is implicit part of CM handle registration (inventory update), REST endpoint on NCMP (can be multiple calls) | Committed |
-
CPS-350Getting issue details...
STATUS
-
CPS-384Getting issue details...
STATUS
-
CPS-352Getting issue details...
STATUS
-
CPS-353Getting issue details...
STATUS
-
CPS-389Getting issue details...
STATUS
|
4 | Support method to add initial inventory (e.g. hidden REST endpoint on ONAP DMI plugin) | Additional properties for ONAP plugin may need ODL mountpoint, stored by NCMP and later provided to DMI plugin for each request. The mountpoint is created outside of CPS and DMI plugin. Note: This method (hidden REST endpoint) is expected to be a temporary solution, additional options are part of stretch goal (#13). | Committed | |
5 | Support ncmp-datastores:passthrough-operational for reading data (single CM handle, synchronous only) | See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12. | Committed | |
6 | Support | See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12. | Committed | |
7 | Inventory Changes: define and implement interface in NCMP to allow DMI plugin to add, update & remove CM handles | Overlap with #3, used by #4 and #13 | Committed | |
8 | Model discovery (automatic retrieval and caching of model information in NCMP for a CM handle) | NCMP queries DMI plugin that provides information, for ONAP retrieved via SDNC/ODL | Committed | |
9 | Retrieve list of modules (names) for a CM handle | Used by applications to get cached information from NCMP about models | Committed | |
10 | Explicit (initial) data sync for a CM handle | Triggered by client using REST endpoint on NCMP | Committed | |
11 | Support ncmp-datastores:operational for reading data (single CM handle, synchronous only) | See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12. | Committed | |
12 | Support ncmp-datastores:running for reading and writing data (single CM handle, synchronous only) | See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12. | Committed | |
13 | Support dynamic inventory changes (ONAP DMI Plugin) | React to events from AAI sent over DMaaP, in turn using API in #7 for updates Possible in a generic way o it can also listen to similar events sent by SDN-R (as suggested by Ahila P) | Stretch | |
14 | Retrieve list of cm-handles that have a given module | Stretch | ||
15 | Automatic (optional) Data Sync | Metadata (per cmHandle) controls whether this will happen or not | Out of Scope | |
16 | Implement -async option for CRUD and Patch operations | Out of Scope | ||
17 | Support multiple cmHandles in a single call (bulk) | Out of Scope | ||
18 | Support all cmHandles in a single call? | Out of Scope | ||
19 | Invoke YANG modelled RPC or action | Out of Scope |
API Changes
To support the added functionality in NCMP, changes are expected in the CPS external interface CPS-E-05. (For overview of CPS interfaces, see the CPS architecture page.) Changes are planned in the following areas, matching items in the scope/priority table above:
- New APIs for reading data for CM handle
- New APIs for writing data for CM handle
- New API to request data sync for CM handle
- New API to retrieve model information for CM handle
- (stretch goal) New API to retrieve list of CM handles supporting a given module
Some existing CPS-E-05 APIs may be removed or deprecated if not currently used.
In addition to external APIs, extensions may be made to the CPS Core library to support some NCMP use cases. Plugin APIs will also be added to support communication between NCMP and DMI plugins.
Excerpt from CPS-391Spike: Define and Agree NCMP REST Interface :
Expected resourcePath format Fields (filter) Included DataNodes Not Specified N/A Not supported NCMP does not parse Resolve DMI plugin Forward request to plugin The DMI plugin may error if the RP or accept header are not supported. Resolve DMI plugin Forward request to plugin Read from cache output: application/yang-data+json Read from cache output: application/json Output will use DataNode wrapping (as is from CPS-Core) For forwarding (cached config off) dmi-reposne need to be wrapped explicitly in 'DataNode' to be determined in spike, see issue #28 Resolve DMI plugin Convert cpsPath to RESTConfPath* Forward request to plugin | Read from DMI plugin Output application/yang-data+json config + Resolve DMI plugin Convert cpsPath to RESTConfPath* Forward request to plugin | Read from DMI plugin Output application/yang-data+json *Note Convert cpsPath to RESTConfPath wil only support 'absolute' cpsPath for conversion no query-type paths Works Items for above. Expected resourcePath format NCMP does not parse Resolve DMI plugin Forward request to plugin The DMI plugin may error if the RP or content type are not supported. NCMP does not parse Resolve DMI plugin Forward request to plugin The DMI plugin may error if the RP or content type are not supported. NCMP does not parse Resolve DMI plugin Forward request to plugin The DMI plugin may error if the RP or content type are not supported. NCMP does not parse Resolve DMI plugin Forward request to plugin The DMI plugin may error if the RP or content type are not supported. Resolve DMI plugin Convert cpsPath to RESTConfPath Forward request to plugin Output received response (success or failure) Resolve DMI plugin Convert cpsPath to RESTConfPath Forward request to plugin Output received response (success or failure) Resolve DMI plugin Convert cpsPath to RESTConfPath Forward request to plugin Output received response (success or failure) application/yang-data+json (*plain patch) Resolve DMI plugin Convert cpsPath to RESTConfPath Forward request to plugin Output received response (success or failure) Resolve DMI plugin Convert cpsPath to RESTConfPath Forward request to plugin Output received response (success or failure)Datastore, Paths and Format Combinations for Read Operations
State Input Behavior Data Notes # Data-Sync Datastore parameter Accept-Header Data Source
(config)1 On Not Specified cpsPath application/yang-data+json N/A Not supported N/A N/A 2 On Not Specified cpsPath application/json N/A Not supported N/A N/A 3 Off cpsPath application/yang-data+json N/A N/A 4 Off Not Specified cpsPath N/A N/A Not supported N/A N/A there are NO DataNode objects in CPS to output as JSON) 5 Off Not Specified other then cpsPath N/A N/A Not supported N/A N/A Not supported Since NCMP can only convert cpsPaths 6 On | Off ncmp/passthrough-operational NCMP does not parse depends on DMI-Plugin
(supported in ONAP)DMI-Plugin config +
non-config7 On | Off ncmp/passthrough-running NCMP does not parse NCMP does not parse depends on DMI-Plugin
(supported in ONAP)DMI-Plugin config-only 8 On ncmp/operational cpsPath application/yang-data+json CPS-Core config +
non-configNCMP/CPS-Core needs to remove DataNode wrapping 9 On ncmp/operational cpsPath application/json CPS-Core config +
non-config10 Off ncmp/operational cpsPath application/yang-data+json DMI-Plugin
non-config11 On | Off ncmp/running cpsPath application/yang-data+json to be determined in spike, see issue #28 DMI-Plugin config-only Read Example
# Description Component Enables 1 Forward request from NCMP to CPS-Core NCMP 8,9 2 Forward request from NCMP to DMI-Plugin NCMP 6,7 3 Convert json (dataNode) to yang-data+json CPS-Core/NCMP 8 4 Convert cpsPath to RESTConf Path NCMP 10,11 5 Enhance &fields parameter where needed NCMP 10,11+fields option 6 NOT Supported N/A 1,2,3,4,5 Datastore, Paths and Format Combinations for Write Operations
State Input Behavior Notes # Data-Sync Operation Datastore parameter Content-Type 1 On | Off Create ncmp/passthrough-running NCMP only checks it is valid JSON, then embeds the data in a larger JSON structure (see CPS-390 page) 2 On | Off Replace ncmp/passthrough-running NCMP only checks it is valid JSON, then embeds the data in a larger JSON structure (see CPS-390 page) 3 On | Off Delete ncmp/passthrough-running NCMP doesn't expect any input data from application, will create request body to DMI plugin without embedded data. 4 On | Off Patch ncmp/passthrough-running NCMP only checks it is valid JSON, then embeds the data in a larger JSON structure (see CPS-390 page) 5 On | Off Create ncmp/running cpsPath application/yang-data+json 6 On | Off Update ncmp/running cpsPath application/yang-data+json 7 On | Off Delete ncmp/running cpsPath N/A 8 On | Off Patch ncmp/running cpsPath 9 On | Off Patch ncmp/running cpsPath application/yang-patch+json Write Example
Epics Summary
Jira filter all user stories in all epics: Getting issues...
# | Epic | Project/Component | Description | Comments |
---|---|---|---|---|
1 | CPS/NCMP | create rest interface on northbound for GET/POST/PUT/DELETE to access yang data. |
| |
2 | (NCMP) DMI-Registry | Create dmi-registry. Data Model Inventory Interface (DMI) 'Internal service' no public Java or REST API responsibilities are
| ||
3 | DMI-Plugin (ONAP impl.) | Common standard (REST and Java?) interface for extensibility create dmi plugin for onap. Its responsibility of admin to provide instance of dmi. |
| |
4 | DMI-Plugin (ONAP impl.) |
| ||
5 | DMI-Plugin (ONAP impl.) | |||
6 | DMI-Plugin (ONAP impl.) |
| Possibly overlaps with #1 E2E Network Slicing | |
7 | All |
Data Stores
Datastore Mapping in ONAP DMI Plugin impl.
# | Incoming DS value (NCMP & DMI Rest interfaces) | Outgoing (non-NMDA RestConf controller) | Notes |
---|---|---|---|
1 | /ds /ncmp-datastores:operational |
| CT + CF, RO |
2 | /ds/ncmp-datastores:running |
| CT, RW |
3 | /ds/ncmp-datastores:passthrough-operational |
| CT + CF, RO |
4 | /ds/ncmp-datastores:passthrough-running |
| CT, RW |
5 | /ds/ <anything-else> | N/A | Not supported |