blob: a91eb0178a3f6bdba3576c301d8f9bd15105a807 [file] [log] [blame]
Ruslan Kashapov55dc6542021-03-02 16:48:41 +02001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3.. Copyright (C) 2021 Pantheon.tech
4.. _modeling:
5
Ruslan Kashapov55dc6542021-03-02 16:48:41 +02006.. toctree::
7 :maxdepth: 1
8
lukegleesone1308ac2021-09-30 13:36:37 +01009CPS Modeling
10############
11
12CPS-Core Modeling
13=================
14
15Data Model
16----------
Ruslan Kashapov55dc6542021-03-02 16:48:41 +020017
18.. image:: _static/cps-modeling-concepts.png
19 :alt: Basic entities relationship
20
lukegleesone1308ac2021-09-30 13:36:37 +010021Basic Concepts
22--------------
23
Ruslan Kashapov55dc6542021-03-02 16:48:41 +020024Administrative entities
25
26- **Dataspace** is a primary logical separation of data.
27
28 Any application can define its own dataspace to store the model(s) and data it owns.
29 Dataspace is uniquely identified by it's name.
30
31- **Schema Set** describes a data model(s).
32
33 Schema Set holds reference(s) to single or multiple YANG modules. Schema Set belongs to dataspace
34 and uniquely identified by its name (within its own dataspace). Same YANG resources (source files) can be
35 referenced by multiple schema sets from different dataspaces.
36
lukegleesone1308ac2021-09-30 13:36:37 +010037- **Anchor** identifies the unique data set (data record) within a dataspace.
Ruslan Kashapov55dc6542021-03-02 16:48:41 +020038
39 Anchor always references a schema set within same dataspace which describes a data model of associated data.
40 Multiple anchors may reference same schema set. Anchor is uniquely identified by its name (within own dataspace).
41
42Data
43
44- **Data Node** represents a data fragment.
45
46 Each data node can have zero or more descendants and together they form a data instance tree.
47 The data node tree belongs to an anchor.
48
49 Data node is representing a data fragment described in a YANG model as a *container* and/or a *list*.
50 The data described as a *leaf* and/or a *leaf-list* are stored within a parent data node.
51
52 The data node position within a tree is uniquely identified by the node's unique **xpath** which can be used
53 for partial data query.
ToineSiebelink98c07872021-04-20 17:33:09 +010054
55Querying
56
lukegleesone1308ac2021-09-30 13:36:37 +010057- **CPS Path** is used to query data nodes. The CPS Path is described in detail in :doc:`cps-path`.
lukegleeson209c3852021-09-28 16:07:25 +010058
lukegleesone1308ac2021-09-30 13:36:37 +010059NCMP Modeling
60=============
lukegleeson209c3852021-09-28 16:07:25 +010061
lukegleesone1308ac2021-09-30 13:36:37 +010062Data Model
63----------
lukegleeson209c3852021-09-28 16:07:25 +010064
DylanB95EST3fcf8692021-10-11 16:29:16 +010065NCMP stores DMI-Plugin and CM Handle relations using a data model described as per this Yang module.
lukegleeson209c3852021-09-28 16:07:25 +010066
lukegleesone1308ac2021-09-30 13:36:37 +010067:download:`DMI Yang Module <api/yang/dmiYangResource.yang>`
68
69Basic Concepts
70--------------
71
72- **CM-Handle** represents an instance a modeled Network Function(node) in ONAP.
73
74 These are stored as Anchors within CPS-Core.
75
76- **Datastores** represent different views of the cm data.
77
78 Datastores are defined for NCMP to access the CPS running or operational datastores. Currently supported datastores are:
79
80 +--------------------------------+-------------------------------------+-------------------------+
81 | Datastore | Configurations | Data access type |
82 +================================+=====================================+=========================+
83 | Passthrough-operational | config-true, config-false | read-only |
84 +--------------------------------+-------------------------------------+-------------------------+
85 | Passthrough-running | config-true | read-write |
86 +--------------------------------+-------------------------------------+-------------------------+