Requirements
Scope
What is this release trying to address?
- TBC
Minimum Viable Product
N/A
Requirements
ONAP Best Practices (Global Requirements) and similar
ONAP Requirement | Notes | CPS-Priority legend | |||||
---|---|---|---|---|---|---|---|
Preliminary | Planned for current ONAP Release | In Progress | Paused/Blocked | Completed | De-scoped |
ONAP Best Practices (Global Requirements) and similar
ONAP Requirement | Notes | CPS- Jira(s) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
ONAP script might help us with common quality issues and save reviewing time |
|
CPS-CORE / CPS-NCMP Requirements
Priority | Epic/Component/Owner/Team/Target | Description | Notes | Jira(s) | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
| 1
| Data Write/Read Performance | See also CPS-Core Read & Write (large load) Test Results from Wipro/Fujitsu | |||||||||||||||||||||||||||||||||||||||||||
Jira Legacy | server | SystemSee Montreal Read/Write Performance for latest performance results (23/08) |
| ||||||||||||||||||||||||||||||||||||||||||||
2 |
| Implementation of
| forwarded
| Implementing Data Notifications & Subscription Notifications on a US by US basisNote. These items is now incorporated in | Notifications
| ||||||||||||||||||||||||||||||||||||||||||
columnIds | issuekey,summary,assignee,status | ||||||||||||||||||||||||||||||||||||||||||||||
maximumIssues | 20 | key,summary,assignee,status |
Subscriptions
| ||||||||||||||||||||||||||||||||||||||||||||
columnIds | issuekey,summary,assignee,status | ||||||||||||||||||||||||||||||||||||||||||||||
columns | key,summary,assignee,status | ||||||||||||||||||||||||||||||||||||||||||||||
maximumIssues | 20 | jqlQuery |
| ||||||||||||||||||||||||||||||||||||||||||||
3 |
| Support update of cached data through a message driven solution. Respond to VES Events from Devices in ONAP | Receive VES Event and transform it into a 'standard DMI→NCMP events (schema owned by NCMP) |
| |||||||||||||||||||||||||||||||||||||||||||
4 |
| Batch ( | Allow batch operations for NCMP REST and CPS-Core Java Interfaces. All new events will comply to cloudevents.
|
| |||||||||||||||||||||||||||||||||||||||||||
columnIds | issuekey,summary,assignee,status | ||||||||||||||||||||||||||||||||||||||||||||||
columns | key,summary,assignee,status | ||||||||||||||||||||||||||||||||||||||||||||||
maximumIssues | 20 | ||||||||||||||||||||||||||||||||||||||||||||||
jqlQuery | "Epic Link" = CPS-1515 |
| |||||||||||||||||||||||||||||||||||||||||||||
5 |
| 2
| CM Handle Connectivity Freshness/Staleness | Need to model what staleness is (current CPS only has concept of model-sync state, nothing about connectivity) |
| ||||||||||||||||||||||||||||||||||||||||||
6 |
|
| Update YANG schema-set for CM handle using ModuleSetTag |
| top
|
| |||||||||||||||||||||||||||||||||||||||||
7 | TBC9 | ||||||||||||||||||||||||||||||||||||||||||||||
Jira Legacy | |||||||||||||||||||||||||||||||||||||||||||||||
server | System Jira |
| Event Digest | Additional field to help clients filter CM AVC Events (S) | 8 |
| AVC Subscription, advance filter | Filter on 'Type' instead of list of CM Handle IDs → 'Type' could be defined as the yang module set containing a specific module (name and version)
| Merge CM data subscriptions in NCMP when forwarding it to DMI | Implementing Data Notifications & Subscription Notifications on a US by US basis Scope add: What kind of access controls are required on topics? Spike is required for this. Work Item created (23/05). |
| ||||||||||||||||||||||||||||||||||||
key | CPS-1630 | ||||||||||||||||||||||||||||||||||||||||||||||
Support for list as top level data node | 8 |
| |||||||||||||||||||||||||||||||||||||||||||||
maximumIssues | 20 | ||||||||||||||||||||||||||||||||||||||||||||||
jqlQuery | "Epic Link" = CPS-1630 | ||||||||||||||||||||||||||||||||||||||||||||||
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 | 10 | |||||||||||||||||||||||||||||||||||||||||||||
Jira Legacy | |||||||||||||||||||||||||||||||||||||||||||||||
server | System Jira | serverId | 4733707d-2057-
| 1632
| CORE (&
| TBC)CPS & NCMP Feature Enhancement for M Release |
| Access Control for resources to ensure that operators can restrict access control to only those users (human/machines) that are authorized to execute CRUD operations on those resources. |
| 1632
| |||||||||||||||||||||||||||||||||||||
9 |
| ||||||||||||||||||||||||||||||||||||||||||||||
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 | ||||||||||||||||||||||||||||||||||||||||||||||
key | CPS-1796 | Spike for documenting Kafka interfaces using AsyncAPI | - Documentation Generation
| CM data subscriptions from application to DMI [Part 2]. It includes creating subscription with wildcard cmhandles. | This epic was created to take on additional scope which got added to | Refactor legacy NCMP ASync Response Events to use Cloud Events format | (M) | ||||||||||||||||||||||||||||||||||||||||
Jira Legacy | |||||||||||||||||||||||||||||||||||||||||||||||
server | System Jira | ||||||||||||||||||||||||||||||||||||||||||||||
columnIds | issuekey,summary,assignee,status |
| |||||||||||||||||||||||||||||||||||||||||||||
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 | ||||||||||||||||||||||||||||||||||||||||||||||
key | CPS-1704 |
| 1704
| ||||||||||||||||||||||||||||||||||||||||||||
10 |
| Support NCMP
| CPS upgrade
| Event Digest | Additional field to help clients filter CM AVC Events (S) | ||||||||||||||||||||||||||||||||||||||||||
11 |
| AVC Subscription, advance filter | Filter on 'Type' instead of list of CM Handle IDs → 'Type' could be defined as the yang module set containing a specific module (name and version) (S) | ||||||||||||||||||||||||||||||||||||||||||||
12 | 17 | Enhanced query support (fields) | 18 | Enhanced query support (scope) | 19 | TBC | Support ncmp-datastores:running 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.20 | TBC | Support ncmp-datastores:running for writing data (single CM handle, synchronous only) | (S) As per #18 | 21 | TBCSupport relationships for 'Instance Identifier' | Should be possible to identify a cmhandle using multiple instance identifiers.||||||||||||||||||||||||||||||||||
Jira Legacy | |||||||||||||||||||||||||||||||||||||||||||||||
server | System Jira | ||||||||||||||||||||||||||||||||||||||||||||||
columnIds | issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution | ||||||||||||||||||||||||||||||||||||||||||||||
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
| |||||||||||||||||||||||||||||||||||||||||||||
columnIds | issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution | ||||||||||||||||||||||||||||||||||||||||||||||
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution | ||||||||||||||||||||||||||||||||||||||||||||||
serverId | 4733707d-2057-3a0f-ae5e-4fd8aff50176 | ||||||||||||||||||||||||||||||||||||||||||||||
key | CPS-1345 | 14 | TBC | Support multiple identifiers (alternatives for CM Handle ID) | (M) - Not sure. Scope not known yet. | 15 | Access control for topics which are created by NCMP . | Spike needs to be conducted. | 16 | Invoke YANG modelled action |
| Support for list as top level data node |
| ||||||||||||||||||||||||||||||||||
13 |
| CPS & NCMP Feature Enhancement for M Release |
| ||||||||||||||||||||||||||||||||||||||||||||
14 |
| Yet to agree priority | A decision was made to abandon json+problem format |
| |||||||||||||||||||||||||||||||||||||||||||
15 |
| 118022 | Retrieve single module resource | /v1/ch/{cm-handle}/modules/definitions/{moduleName}23 | Access control for public interfaces (NCMP, CPS-Core, DMI?) | KMC : What level of access control is there today - both on CPS and NCMP interfaces?24 | Fine-grained cache configuration | 25 | Support for HTTPS and authentication
| Validation required whether this is still needed. | |||||||||||||||||||||||||||||||||||||
Jira Legacy | |||||||||||||||||||||||||||||||||||||||||||||||
server | System Jira | serverId | 4733707d-2057-3a0f-ae5e
| Spike for documenting Kafka interfaces using AsyncAPI | - Documentation Generation - Code Generation (contract first, stubs) | ||||||||||||||||||||||||||||||||||||||||||
16 |
| 703
| 2629 |
| Send notifications on write operation in ncmp-datastores:running for (single CM handle, synchronous only) | 27 | schema-set update for CM handle with cached data present | Need to address case with incompatible model changes.28 | Invoke YANG modelled RPC | Specification required. Rebbot/Reset type of actions on node. |
| Refactor legacy NCMP ASync Response Events to use Cloud Events format | (M) |
| issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
| type,created,updated,due,
| reporter,priority,status,resolution
| ||||||||||||||||||||||||||||||
17 | keyTBC | Support NCMP-CPS | -1781CM data subscriptions from application to DMI [Part 2] | This epic was created to take on additional scope which got added to |
|
Spin-off user stories, yet to be prioritized
upgrade | Currently only custom upgrade is supported. (upon request) Requirement: It shall be possible to upgrade NCMP-CPS from release N-1 to N (without requiring manual intervention/workarounds). N is defined as any release requested by ESH
Technical Debt to be addressed: Liquibase is used in CPS to manage data(upgrades) in CPS Study: Resolve technical debt (mixed data). NCMP Data upgrade. CPS Core need to support model upgrade so that NCMP can use it, |
|
|
18 |
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Functionalities
User Stories
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
title | Closed Stories |
---|
TBC | Support multiple identifiers (alternatives for CM Handle ID) | (M) - Not sure. Scope not known yet. | ||||||||
19 | Access control for topics which are created by NCMP . | Spike needs to be conducted. | ||||||||
20 | Invoke YANG modelled action | Always on operational datastore. Supported for nmcp:passthrough-operational and if executed against ncmp:operational then it is always forwarded to dmi plugin. Is there another story for forwarding to be included as a dependency? Always run as async request. Is this dependent on CPS-1127 - see spin-off user stories table below this on. KMC : Can we deprioritize - this can be run against passthrough-operational for now. Just have to agree on the API / URL for the action to progress at this stage so that the passthrough-operational form is aligned with final operational form. | ||||||||
21 | Enhanced query support (fields) | Currently the passthrough has an 'fields' parameter to do a scoped query. Propose to support this in non-passthrough so it is promoted to a fully supported option, e.g. {ncmp-root}/ncmp/v1/ch/335ff/data/ds/ncmp-datastore:passthrough-operational? KMC : Do we support restconf like queries or xpath only? (L) . | ||||||||
22 | Enhanced query support (scope) | Currently the passthrough has an 'fields' parameter to do a scoped query. KMC : Do we support restconf like queries or xpath only? (L) | ||||||||
23 | TBC | Support ncmp-datastores:running 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. Read from operations. (S) - Forward only. No validation or data enhancements (add prefixis) | |||||||
24 | TBC | Support ncmp-datastores:running for writing data (single CM handle, synchronous only) | (S) As per #18 | |||||||
25 | TBC | Support relationships for 'Instance Identifier' | Should be possible to identify a cmhandle using multiple instance identifiers. (M) - Not sure. Scope not known yet. |
|
|
Longer term roadmap
- CPS-Core will have extended query capabilities based on XPath expression.
- CPS-Core will enforce and control ownership of data it holds
- NCMP will be to able to 'detect' and sync xNF in the network
- Fine-cache cache control will determine what get cache for what xNF
- NCMP will support the query capabilities as CPS-Core and be extend with options similar to RESTConf's 'fields' and 'depth'
Release Deliverables
Indicate the outcome (Executable, Source Code, Library, API description, Tool, Documentation, Release Note, etc) of this release.
onap/cps-and-ncmp
onap/cps-temporal
onap/ncmp-dmi-plugin
CPS-NCMP Documentation for R12 (incl. offered APIs and release note)
Sub-Components
- CPS-Core
- cps-service
- cps-rest
- cps-ri (reference implementation)
- NCMP
- cps-ncmp-service
- cps-ncmp-rest
- dmi-inventory
- Temporal DB (no longer active)
- DMI-Plugin
- DMI Data Access
- DMI Model Access
Architecture
High level architecture diagram
CPS is a new shared service in the ONAP Architecture:
Platform Maturity
See the centralized wiki page: London Release Platform Maturity
API Incoming Dependencies
No Incoming API changes required
API Outgoing Dependencies
API this project is delivering to other projects.
CPS-E-01
CPS-E-02
CPS-E-03
CPS Data Write
CPS Data Read
(no other component currently depends on this or plan to use it in Istanbul)
Third Party Products Dependencies
Third Party Products mean products that are mandatory to provide services for your components.
springdoc-openapi-ui:1.5.9
Testing and Integration Plans
- CPS has high level of built jUnit test (>97 on all components) which is enforced by our maven build scripts
- CPS has built in Persistence Layer test ie. test that integrate with real DB instance covering all use cases and are part of WoW
- CIST tests are part of CPS -Repo, see https://gerrit.onap.org/r/gitweb?p=cps.git;a=tree;f=csit;h=8505b66089f62b6431c1091edf820cbdbf4363d4;hb=HEAD
And executed automatically through the cps-review-verification-maven-master CI Job - E2E Integration with ONAP components was introduced in I-release and is now included in aforementioned CIST tests
Gaps
No gaps Identified
Known Defects and Issues
See dynamic Jira filter:
| ||||||||||||||||||||||||||||||
26 | Retrieve single module resource | /v1/ch/{cm-handle}/modules/definitions/{moduleName} (S) | ||||||||||||||||||||||||||||
27 | Access control for public interfaces (NCMP, CPS-Core, DMI?) | KMC : What level of access control is there today - both on CPS and NCMP interfaces? | ||||||||||||||||||||||||||||
28 | Fine-grained cache configuration | |||||||||||||||||||||||||||||
29 | Support for HTTPS and authentication
| Validation required whether this is still needed. |
| |||||||||||||||||||||||||||
30 | TBC | Send notifications on write operation in ncmp-datastores:running for (single CM handle, synchronous only) | ||||||||||||||||||||||||||||
31 | schema-set update for CM handle with cached data present | Need to address case with incompatible model changes. Scope: Upgrade of model that is cached? Lee Anjella to confirm. | ||||||||||||||||||||||||||||
32 | Invoke YANG modelled RPC | Specification required. Rebbot/Reset type of actions on node. | ||||||||||||||||||||||||||||
33 |
| DMI Audit for DMI restarts |
| |||||||||||||||||||||||||||
34 |
| Fetch a list of cmhandles along with their private properties as response from NCMP. |
Spin-off user stories, yet to be prioritized
Jira | Component(s) | Related Work Item | Description | Notes | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CPS-NCMP | |||||||||||||||
| CPS-NCMP | |||||||||||||||
| CPS-NCMP | |||||||||||||||
| CPS-NCMP | |||||||||||||||
| CPS | Now handled by Fujitsu/Wpri (Work Item ?) ? | ||||||||||||||
| CPS |
Functionalities
User Stories
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Expand | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
|
|
Risks
Risk identified related to scope-creep, see London Risk Table
Resources
Release Milestone
The milestones are defined at the Release Planning and all the supporting project agreed to comply with these dates.
Team Internal Milestone
This section is optional and may be used to document internal milestones within a project team or multiple project teams. For instance, in the case the team has made agreement with other team to deliver some artifacts on a certain date that are not in the release milestone, it is recommended to provide these agreements and dates in this section.
Documentation, Training
See the following centralized wiki: London Documentation
Other InformationExpand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Other Information
Platform Maturity
See the centralized wiki page: London Release Platform Maturity
Vendor Neutral
If this project is coming from an existing proprietary codebase, ensure that all proprietary trademarks, logos, product names, etc. have been removed. All ONAP deliverables must comply with this rule and be agnostic of any proprietary symbols.
Free and Open Source Software
FOSS activities are critical to the delivery of the whole ONAP initiative. The information may not be fully available at Release Planning, however to avoid late refactoring, it is critical to accomplish this task as early as possible.
List all third party Free and Open Source Software used within the release and provide License type (BSD, MIT, Apache, GNU GPL,... ).
In the case non Apache License are found inform immediately the TSC and the Release Manager and document your reasoning on why you believe we can use a non Apache version 2 license.
Each project must edit its project table available at Project FOSS.
Charter Compliance
The project team comply with the ONAP Charter.