Overview
Project Name | Enter the name of the project |
---|---|
Target Release Name | Jakarta |
Project Lifecycle State | Incubation |
Participating Companies | Bell Canada, Ericsson, Wipro |
Scope
What is this release trying to address?
Further integrate CPS into ONAP architecture through additional components and interfaces such as
- Extending xNF data write forwarding (delete, update, patch)
- Extend Sync to include data sync and maintaining sync state
- AAI integration
- Read access to cached data (datastore ncmp-datastores:operational)
- Support Delete event in CPS Temporal
Minimum Viable Product
N/A
Requirements
Priority legend | Committent Legend | ||||||||
Preliminary | Fixed | In Progress | Paused | Completed | De-scoped | Delivered (on master) | Committed | Study/Investigation No delivery |
ONAP Best Practices (Global Requirements)
ONAP Requirement | Notes | CPS- Jira(s) |
---|---|---|
Only effects new code but we are adding logging during Jakarta time-frame so have to try to follow the recommended standard Concerns about availability of all required fields Robert Heinemann will organize meeting with us | ||
Toine Siebelink checked and all 3 CPS repos are using /onap/integration-java11:8.0.0 as their base image. So no impact for this Req. | N/A |
CPS-CORE / CPS-NCMP Requirements
Priority | Jakarta Requirement Jira | Component(s) | Description | Notes | Jakarta commitment | Jira(s) | |
---|---|---|---|---|---|---|---|
1 | CPS-NCMP | Retrieve list of modules (names) for a CM handle | Used by applications to get cached information from NCMP about models | Delivered in Istanbul | |||
2 | CPS-NCMP | Support ncmp-datastores:passthrough-running for read use-case (single CM handle, synchronous only) | Need more details planning and prioritization for use-case not already supported list in this table : CPS-391Spike: Define and Agree NCMP REST Interface#Datastore,PathsandFormatCombinationsforReadOperations | Delivered in Istanbul | |||
3 | CPS-NCMP | Separate NCMP-DMI interface from northbound facing 'client' interface |
| Committed | |||
4 | CPS-NCMP | Retrieve cm-handles that have a given list modules | Committed | ||||
5 | CPS-NCMP | Allow separate registration of DMIDataPlugin and DmiModelPlugin | Committed | ||||
6 | CPS-NCMP | Support ncmp-datastores:passthrough-running for write use-case (single CM handle, synchronous only) | Replace, Delete & Patch use-cases (#2, #3, #4) in : CPS-391Spike: Define and Agree NCMP REST Interface#Datastore,PathsandFormatCombinationsforWriteOperations | Committed | - CPS-636Getting issue details... STATUS - CPS-637Getting issue details... STATUS - CPS-638Getting issue details... STATUS - CPS-639Getting issue details... STATUS - CPS-640Getting issue details... STATUS - CPS-641Getting issue details... STATUS - CPS-782Getting issue details... STATUS - CPS-777Getting issue details... STATUS - CPS-822Getting issue details... STATUS - CPS-823Getting issue details... STATUS - CPS-824Getting issue details... STATUS - CPS-825Getting issue details... STATUS | ||
7 | CPS-NCMP | Define states and state handling for CM handle, e.g. state of model and data sync | Committed (definition only) | ||||
8 | CPS-NCMP | NCMP should publish notifications for any newly added ( | Includes implementation of state handling (state persistence) as far as applicable as defined by #7 above | ||||
9 Partial | CPS-NCMP | Support public CM handle properties | Basic support for public properties + query capability | Partial Delivery (query part might not make Jakarta) | |||
10 | CPS-Core / CPS-NCMP | Investigate Horizontal Scaling | Study & Test only | ||||
11 | CPS-NCMP | Implement -async option for CRUD and Patch operations (for one CM-Handle) | Required for potentially long running requests Note below to be agreed.,,
Responses always published by NCMP to the client topic. dmi-plugin may publish to NCMP on a local/private topic. Response event payload contains the public topic name. | ||||
12 | CPS-NCMP | Read access at datastore level | This allows applications to query top-level data nodes without explicitly addressing them. | ||||
13 | CPS-Core | YANG language extension support | Investigation | Committed (investigation only) | |||
14 | CPS-Core | E2E Slicing Impacts Jakarta | J-delivery wil just include CPS-Core output alignment. But CPS Team will continue to work on cache-related items during Jakarta to be ready for inclusion of that functionality in K to such an extend that in can be used by E2E Sling | ||||
15 | Move to Kohn | CPS-NCMP | 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. Note: This item doesn't include accessing cached data as data sync is not available yet. | |||
16 | Move to Kohn | CPS-NCMP | Support update of cached data through a message driven solution E.g. TBDMT/SND-R will write to device and can send message on NCMP provide message topic to keep cache up to date | Need to investigate if DMaap or new Kafka/Strimzi message bus should be used | |||
17 | Move to Kohn | CPS-NCMP | Explicit (initial) data-sync for a CM handle (extend model-sync delivered in Istanbul) | Triggered by client using REST endpoint on NCMP. Note: This item includes extended support for datastores to access the synced data. | |||
18 | Move to Kohn | CPS-NCMP | Send notification for updated CM handle metadata (public CM handle properties or YANG modules) | ||||
19 | Move to Kohn | CPS-NCMP | [investigation/spec] CM data notifications from NCMP to applications including subscriptions | Includes definition of notification and payload format | |||
20 | Move to Kohn | CPS-NCMP | Implementation of CM data notifications forwarded by NCMP from DMI to application | ||||
21 | Move to Kohn | CPS-Core / CPS-NCMP | Support for HTTPS and authentication | ||||
22 | Move to Kohn | CPS-Core / CPS-NCMP | Access control for public interfaces (NCMP, CPS-Core, DMI?) | ||||
23 | TBC | Dell, support of XML Payload | Dell has decided not to pursue this for now | ||||
24 | TBC | CPS-NCMP | 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. | |||
25 | TBC | CPS-Core / CPS-NCMP | Support ncmp-datastores:running for writing data (single CM handle, synchronous only) | ||||
26 | TBC | CPS-Core | Send notifications hon write operation in ncmp-datastores:running for (single CM handle, synchronous only) | ||||
27 | CPS-Core / CPS-NCMP | Support for list as top level data node | |||||
28 | CPS-Core / CPS-NCMP | Support for multiple roots from different modules in one CM handle/anchor | |||||
29 | CPS-NCMP | Support retrieval of YANG module sources for CM handle on the NCMP interface | |||||
30 | CPS-Core / CPS-NCMP | Update YANG schema-set for CM handle without removing and adding it | Cached data is not in scope. Need to specify orphan handling of YANG modules. | ||||
31 | CPS-Core / CPS-NCMP | schema-set update for CM handle with cached data present | Need to address case with incompatible model changes. | ||||
32 | (ONAP) E2E Slicing Use-Case | Support dynamic inventory changes (ONAP DMI Plugin) | React to events from AAI sent over DMaaP, in turn using Inventory API for updates. Possible in a generic way or it can also listen to similar events sent by SDN-R (as suggested by Ahila P) | ||||
33 | CPS-NCMP | Automatic (optional) Data Sync | Metadata (per cmHandle) controls whether this will happen or not | ||||
34 | CPS-NCMP | Fine-grained cache configuration | |||||
35 | CPS-Core / CPS-NCMP | Existing CPS-path based queries across multiple CM handles for cached data | |||||
36 | CPS-NCMP | Invoke YANG modelled action | |||||
37 | CPS-NCMP | Invoke YANG modelled RPC |
Temporal DB Requirements
Functionalities
Stories
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 able to sync CM Models and Data on any xNF in the network
- MCMP wil support the query capabilities as CPS-Core and be extend with options similar to RESTConf's 'fields' and 'depth'
- CPS Temporal aims to complement CPS Core by providing an historical view on CPS data.
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 R10 (incl. offered APIs and release note) |
docs.onap.org/projects/onap-cps-ncmp-dmi-plugin | ONAP DMI-Plugin Documentation for R10 (incl. offered APIs and release note) |
docs.onap.org/projects/onap-cps-cps-temporal | CPS-Temporal Documentation for R10 (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
- 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: Istanbul 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 | Version |
---|---|---|
Docker | VM Container | 18 and above |
ODL Yang Tools | Yang model and Data Parser | 6.0.1 |
Postgres Docker image | VM container for Postgres | 13.2-alpine |
onap/integration-java11 | Java Base image | 8.0.0 |
Swagger | OpenAPI library | 2.1.4 |
SpringFox | OpenAPI library | 3.0.0 |
Hibernate types | Support for Postgres datatype JSONB | 2.10.0 |
Spring Boot | Application Framework | 2.5.5 |
cglib-nodep | 3pp | 3.1 |
commons-lang3 | 3pp | 3.12.0 |
antlr4-runtime | Language parser | 4.9.2 |
liquibase | DB Schema (version) management | 4.4.2 |
modelmapper | Model mapper library | 2.3.8 |
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 test 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:
Risks
No Risks identified, see also Jakarta Risk Table
Resources
Name | Code Contributor | Committer | Organization | Time Zones | CPS Daily Scrums* | |||
---|---|---|---|---|---|---|---|---|
Winter | Summer (DST) | Focus Team 1 | Focus Team 2 | DT Sub Team | ||||
Toine Siebelink (PTL) | Yes | Yes | Ericsson | GMT/UTC | IST/UTC+1 | X (SM) |
|
|
kieran mccarthy(stakeholder) | No | No | Ericsson | CET/UTC+1 | CEST/UTC+2 |
|
|
|
Peter Turcsanyi (stakeholder) | No | No | Ericsson | CET/UTC+1 | CEST/UTC+2 |
|
|
|
Csaba Kocsis (stakeholder) | No | No | Ericsson | CET/UTC+1 | CEST/UTC+2 |
|
|
|
Tony Finnerty (architect) | No | No | Ericsson | GMT/UTC | IST/UTC+1 |
|
|
|
No | No | Ericsson | GMT/UTC | IST/UTC+1 |
|
|
| |
Yes | No | Tech Mahindra | IST/UTC+5:30 | IST/UTC+5:30 |
|
| X | |
Yes | Yes | Ericsson | GMT/UTC | IST/UTC+1 |
| X |
| |
Yes | No | Ericsson | GMT/UTC | IST/UTC+1 |
| X |
| |
Yes | No | Ericsson | GMT/UTC | IST/UTC+1 | X |
|
| |
Yes | Yes | Ericsson | GMT/UTC | IST/UTC+1 |
| X (SM) |
| |
Yes | No | Ericsson | CET/UTC+1 | CEST/UTC+2 | X |
|
| |
Yes | Yes | Ericsson | GMT/UTC | IST/UTC+1 |
| X | X (SM) | |
Yes | No | Tech Mahindra | IST/UTC+5:30 | IST/UTC+5:30 |
|
| X | |
Yes | No | Tech Mahindra | IST/UTC+5:30 | IST/UTC+5:30 |
|
| X | |
Yes | No | Ericsson | GMT/UTC | IST/UTC+1 |
| X |
| |
Yes | Yes | Ericsson | GMT/UTC | IST/UTC+1 | X |
|
|
*The scrum attendance for each member is the current 'typical' attendance. Each team member can potentially attend any Scrum as needed
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: Jakarta 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.