CPS-1000 Data Synchronization Watchdog

CPS-1000: Create Data Synchronization watchdogClosed



The Data Synchronization watchdog updates the cps database with RAN CM Handle data. The Synchronization uses DMI passthrough service and SDNC to get the data from RAN. Refer here for more information.

The steps involved in this process,

Step 1:

Query the CM handles that are in 'READY' & 'UNSYNCHRONIZED' from DB. Select a random CM handle from the collection. 

CPS Path
//state[@cm-handle-state="READY"]/ancestor::cm-handles | //state/datastore/operational[@sync-state="UNSYNCHRONIZED"]/ancestor::cm-handles

CPS do not support AND operation in the query. Create a new user story to introduce this feature. CPS-1055: AND Condition in CPS PathClosed

The agreed solution is to split the query to get the CM Handles where the operational sync state in UNSYNCHRONIZED and select a random CM Handle and check the status of the CM Handle in READY state.

CPS Path
Query 1: //state/datastore/operational[@sync-state="UNSYNCHRONIZED"]/ancestor::cm-handles Query 2: //cm-handles[@id='some-cm-handle']/state[@cm-handle-state="READY"]

Step 2: 

Get the CM Handle data from RAN through DMI passthrough service.

Note: At the moment the DMI passthrough service requires resource Identifier eg: stores:bookstore. The SDNC has the capability to get all the resources from the Mounted device but how to identify the resource for cm handle data?

A PNF Simulator is used with YANG Model.

Bookstore YANG Model
module stores { yang-version 1.1; namespace "org:onap:ccsdk:sample"; prefix book-store; import ietf-yang-types { prefix yang; } import ietf-inet-types { prefix inet; } revision "2020-09-15" { description "Sample Model"; } typedef year { type uint16 { range "1000..9999"; } } container bookstore { leaf bookstore-name { type string; } list categories { key "code"; leaf code { type string; } leaf name { type string; } list books { key title; leaf title { type string; } leaf lang { type string; } leaf-list authors { type string; } leaf pub_year { type year; } leaf price { type uint64; } } } } }



This PNF Simulator is mounted in SDNC and the response from SDNC to get all the resources from RAN,

SDNC Url



The DMI passthrough service is used to write the data to the RAN Simulator and the response from it through SDNC is shown below,

SDNC Response

The data received from the RAN should be updated in the CPS DB. The CPS currently supports the persist of the data in the format below. eg: stores:bookstore in the format <module>:<top level container>

The PNF simulator returns multiple resources but the actual RAN will return just one resource. So it is agreed to persist the first resource that is received from the RAN. 

Data from RAN