Overview
Project Name | Enter the name of the project |
---|---|
Target Release Name | Montreal |
Project Lifecycle State | Incubation |
Participating Companies | Deutsche Telecom (Tech Mahindra) , Ericsson, Fujitsu, Wipro |
Scope
What is this release trying to address?
- TBC
Minimum Viable Product
N/A
Requirements
Priority legend | |||||
Preliminary | Planned for current ONAP Release | In Progress | Paused | 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
PriorityEpic/Component/Owner/Team/Target | Description | Notes | Jira(s) | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
| Data Write/Read Performance | See also CPS-Core Read & Write (large load) Test Results from Wipro/Fujitsu See Montreal Read/Write Performance for latest performance results (23/08) |
| ||||||||||||||||||||||||||||||||||||||||||||
2 |
|
| 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). | Notifications
Subscriptions
| ||||||||||||||||||||||||||||||||||||||||||||
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.
|
| ||||||||||||||||||||||||||||||||||||||||||||
5 |
| 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 |
|
| ||||||||||||||||||||||||||||||||||||||||||||
7 |
| Merge CM data subscriptions in NCMP when forwarding it to DMI |
| |||||||||||||||||||||||||||||||||||||||||||||
8 |
| Event Digest | Additional field to help clients filter CM AVC Events (S) | |||||||||||||||||||||||||||||||||||||||||||||
9 |
| 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) | |||||||||||||||||||||||||||||||||||||||||||||
10 |
| Support for list as top level data node |
| |||||||||||||||||||||||||||||||||||||||||||||
11 |
| CPS & NCMP Feature Enhancement for M Release |
| |||||||||||||||||||||||||||||||||||||||||||||
12 |
| Spike for documenting Kafka interfaces using AsyncAPI | - Documentation Generation - Code Generation (contract first, stubs) | |||||||||||||||||||||||||||||||||||||||||||||
13 |
| Refactor legacy NCMP ASync Response Events to use Cloud Events format | (M) |
| ||||||||||||||||||||||||||||||||||||||||||||
14 | TBC | Support NCMP-CPS 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, |
| ||||||||||||||||||||||||||||||||||||||||||||
15 | TBC | Support multiple identifiers (alternatives for CM Handle ID) | (M) - Not sure. Scope not known yet. | |||||||||||||||||||||||||||||||||||||||||||||
16 | Access control for topics which are created by NCMP . | Spike needs to be conducted. | ||||||||||||||||||||||||||||||||||||||||||||||
17 | 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. | ||||||||||||||||||||||||||||||||||||||||||||||
18 | 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) . | ||||||||||||||||||||||||||||||||||||||||||||||
19 | 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) | ||||||||||||||||||||||||||||||||||||||||||||||
20 | 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) | |||||||||||||||||||||||||||||||||||||||||||||
21 | TBC | Support ncmp-datastores:running for writing data (single CM handle, synchronous only) | (S) As per #18 | |||||||||||||||||||||||||||||||||||||||||||||
22 | TBC | Support relationships for 'Instance Identifier' | Should be possible to identify a cmhandle using multiple instance identifiers. (M) - Not sure. Scope not known yet. |
| ||||||||||||||||||||||||||||||||||||||||||||
23 | Retrieve single module resource | /v1/ch/{cm-handle}/modules/definitions/{moduleName} (S) | ||||||||||||||||||||||||||||||||||||||||||||||
24 | Access control for public interfaces (NCMP, CPS-Core, DMI?) | KMC : What level of access control is there today - both on CPS and NCMP interfaces? | ||||||||||||||||||||||||||||||||||||||||||||||
25 | Fine-grained cache configuration | |||||||||||||||||||||||||||||||||||||||||||||||
26 | Support for HTTPS and authentication
| Validation required whether this is still needed. |
| |||||||||||||||||||||||||||||||||||||||||||||
27 | TBC | Send notifications on write operation in ncmp-datastores:running for (single CM handle, synchronous only) | ||||||||||||||||||||||||||||||||||||||||||||||
28 | 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. | ||||||||||||||||||||||||||||||||||||||||||||||
29 | Invoke YANG modelled RPC | Specification required. Rebbot/Reset type of actions on node. | ||||||||||||||||||||||||||||||||||||||||||||||
30 |
| CM data subscriptions from application to DMI [Part 2] | This epic was created to take on additional scope which got added to |
| ||||||||||||||||||||||||||||||||||||||||||||
31 |
| DMI Audit for DMI restarts |
|
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 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
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.
Deliverable Name | Deliverable Description |
---|---|
| Container running CPS and NCMP |
onap/cps-temporal | Container running CPS Temporal |
onap/ncmp-dmi-plugin | Container running OMAP DMI Plugin |
docs.onap.org/projects/onap-cps | CPS-NCMP Documentation for R12 (incl. offered APIs and release note) |
docs.onap.org/projects/onap-cps-ncmp-dmi-plugin | ONAP DMI-Plugin Documentation for R12 (incl. offered APIs and release note) |
docs.onap.org/projects/onap-cps-cps-temporal | CPS-Temporal 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.
API Name | API Description | API Definition Date | API Delivery date | API Definition link (i.e.swagger) |
---|---|---|---|---|
CPS-E-01 | CPS Model LifeCycle CPS Data Write CPS Data Read | Swagger Sources (openapi.yaml) | ||
CPS-E-04 | Change notifications | |||
CPS-E-05 | xNF Data Access | Swagger Sources (openapi.yaml) | ||
CPS-E-06 | Temporal Data Access (no other component currently depends on this or plan to use it in Istanbul) | Swagger Sources (openapi.yml) |
Third Party Products Dependencies
Third Party Products mean products that are mandatory to provide services for your components.
Name | Description | CPS-Core | CPS-NCMP | CPS-Temporal |
---|---|---|---|---|
3PP Version | ||||
Docker | VM Container | 18 and above | 18 and above | 18 and above |
ODL Yang Tools | Yang model and Data Parser | 8.0.6 | 8.0.6 | N/A |
Postgres Docker image | VM container for Postgres | 14.1-alpine | 14.1-alpine | N/A |
onap/integration-java11 | Java Base image | 8.0.0 | 8.0.0 | 8.0.0 |
Swagger | OpenAPI library | 2.1.4 | 2.1.4 | springdoc-openapi-ui:1.5.9 |
SpringFox | OpenAPI library | 3.0.0 | 3.0.0 | 3.0.0 |
Hibernate types | Support for Postgres datatype JSONB | 2.10.0 | 2.10.0 | 2.10.0 |
Spring Boot | Application Framework | 2.6.14 | 2.6.14 | 2.6.9 |
Commons-lang3 | 3pp | 3.11 | 3.11 | 3.12.0 |
Antlr4-runtime | Language parser | 4.9.2 | 4.9.2 | N/A |
Liquibase | DB Schema (version) management | 4.14.0-nordix | 4.14.0-nordix | 4.14.0-nordix |
Hazelcast | Distributed Cache | 4.2.5 | N/A | N/A |
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:
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Risks
Risk identified related to scope-creep, see London Risk Table
Resources
Insert excerpt | ||||
---|---|---|---|---|
|
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 Information
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.