Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There is no automatic fallback The client will have the specify the datastore


Description

Notes

Decision

1Priority of async calls
In Istanbul, async calls are required only in pass-through cases. NCMP does not have to handle these requests 
2Will we use the data node wrapper on GET rest operations?

Currently, we wrap the response of GET operations using the data node wrapper.

we should mainly support yang-data/json

the default option for NCMP should be yang but we want to support both options - yang and the data node wrapper

for pass through - yang data 

operational  - data node (json)

3In the URI will we distinguish between data and operations (RFC calls) as part of the path?

This only applies to pass-through

yes, we will distinguish between data and operation

4Which query parameters will NCMP support?

Parent data resource identifier can handle any path using the same query parameter 

  1. cpsPath
  2. RESTConf Path (pass-through)
  3. Proprietary Path (pass-through)
5

Yml should include return types and examples of the payload


Legacy and new API docuemtnation needs to include output examples.

Task created, see 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-401

6camel case or dash in URI

We will use a dash for param names e.g. cm-handle (although it has since been agreed we use 'ch' in this particular case)

See no.3 https://restfulapi.net/resource-naming/

7Insert /resource-path in front of the resource path to prevent ambiguous paths<OP>/ncmp/<v{v-number}>/ch/<cm-handle>/<data|operations|{ncmp-operation}>/ds/{datastore}/[rp:]{resource-path}?{query}Optionally insert the resource path ('rp:') if it clashes with the current
8Granularity of update scenarios (and priority)
  1. Add child and its descendants (supported in cps core)
  2. Add all list elements (supported in cps core)
  3. Replace child and its descendants (supported in cps core)
  4. Replace all list elements (pending in cps core)
  5. Update single leaf (new)
  6. Add list entry (new)

Priority is pass-through only so it depends on the RETSConf protocol that is supported.

In Jakarta or if required by other projects more fine-grained 'operation' datastore update options can be implemented

9Fallback option for datastore in release IIn future releases, we hope to have the automatic fallback option
Yes, Istanbul will choose datastore based on presence of data (assuming model is always there)
10fields is a rest conf option, investigate is it fully supported by onap
Supported in pass-through for ONAP DMI plugin but depending on the support by the actual target. The intention is to increase support 'fields' in future requirements following RFC-8040 for operational datastore etc.
11Agree on URI syntax 

Proposed syntax by CPS team 

<OP>/ncmp/<v{v-number}>/ch/<cm-handle>/<data|operations|{ncmp-operation}>/ds/{datastore}/[rp:]{resource-path}?{query}

review completed and proposed URI agreed 
12Will we combine query capabilities with update capabilities?
We have decided not to combine query capabilities with update capabilities
13Description of header limitations

HTTP Header Limitations
Some servers put size limitations on HTTP headers, making them unsuitable for storing cmHandle information.

LIMITATION NOTE: server implementations put size limits on the headers meaning header contents should be designed carefully :
Apache - 8K
Nginx - 4K-8K
IIS - 8K-16K
Tomcat - 8K – 48K

14Will NCMP support paths for pass-through:running

The plugin will not do transformation or validation of paths in the case of pass-through:running

15Specification of path per cm handle
DMI Plugin can take cps paths or resconf paths and it needs to specify that per cm handle when cm handle is created
16What is the default path for NCMP
In NCMP default will always be cps path and depending on the adapter we can change it as needed per cm handle
17Fields parameter for datastore:operational?
The fields parameter is ignored in datastore:operational
18Is specifying the datastore mandatory?
Datastore is optional depending on the data being persisted or not
19Can the user request config=false data with ds:'ncmp-datastores:operational'  if so what should NCMP do ignore throw exception?
20Combining RESTConf without explicit pass-through, possibly not allowed?Suggestion: only accept RESTConf paths with explicit passthrough-running
21

DMI plugin is a part of cm handle registration. The rest endpoint on NCMP can be multiple calls
22

Retrieve a list of module names for cm handle - this will be used by ncmp to get the models. - assuming ncmp model discovery is complete and it is stored in cps core, this will come from cached information
23Where will sync be implemented?
Implement sync in the dmi plugin and then have ncmp be able to pass on the request. This is not a bulk operation


RESTCONF/NETCONF relationship

...

#UsecaseNCMP DatastorePath?fields?topicQueryTime frame
1Readpassthrough-runningRESTConf Path onlyImplemented by SDNC/NodeImplemented by DMI PluginNot supportedIstanbul
2Readncmp-datastores:operational CPSPath onlyTBDTBDLimited xpath functionalityIstanbul
3Createpassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
4Createncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
5Deletepassthrough-runningRESTConf Path onlyN/AN/ANot supportedIstanbul
6Deletencmp-datastores:runningCPSPath onlyN/AN/ANot supported> Istanbul
7Updatepassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
8Updatencmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
9Patchespassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
10Patchesncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
11Bulk passthrough-runningRESTConf Path onlyN/AN/AN/A> Istanbul
12Bulkncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
13Actionpassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul?
14Actionncmp-datastores:runningCPSPath onlyN/AN/AN/AIstanbul?

Outline of decisions and use cases for Istanbul

DescriptionDatastoreTime frame1DescDMI plugin is a part of cm handle registration. The rest endpoint on NCMP can be multiple callspassthrough-runningIstanbul2DescRetrieve a list of module names for cm handle - this will be used by ncmp to get the models. - assuming ncmp model discovery is complete and it is stored in cps core, this will come from cached informationpassthrough-runningIstanbul3DescImplement sync in the plugin and then have ncmp be able to pass on the request. This is not a bulk operationpassthrough-runningIstanbul


Datastore, paths and format combinations

#User DS ChoiceData Synced
in CPS-Core*
Expected path-formataccept-headerRequired Transformations

Data Source

'config'
support

NotesPriority

1Not SpecifiedYescpsPathapplication/yang-data+jsoninput: none
output: json to yang-data+json
CPS-CoretrueNCMP needs to remove DataNode wrapping
2Not SpecifiedYescpsPathapplication/jsoninput:none
output:none
CPS-Coretrue

3Not SpecifiedNocpsPathapplication/yang-data+json

input: ONAP DMI-Plugin converts cpsPath to RESTConf Path
output: none

xNFtrue
false

NCMP can provide a helper method for transformation of path

2
4Not SpecifiedNocpsPathapplication/jsonN/AN/AN/ANOT Supported (there are NO DataNode objects in CPS to output as JSON)
5**Not SpecifiedNoRESTConfapplication/yang-data+jsoninput:none
output:none
xNFtrue
false


6**Not SpecifiedNoRESTConfapplication/jsonNANAN/ANOT Supported (there are NO DataNode objects in CPS to output as JSON)
7ncmp-datastores:passthrough-runningN/ARESTConfapplication/yang-data+jsoninput:none
output:none
xNFtrue
false

1
8ncmp-datastores:passthrough-runningN/ARESTConfapplication/jsonNAN/A

N/A

NOT Supported (there are NO DataNode objects in CPS to output as JSON)
9ncmp-datastores:passthrough-runningN/AcpsPathN/ANAN/ANANOT Supported
10ncmp-datastores:operational YescpsPathapplication/yang-data+jsoninput: none
output: json to yang-data+json
CPS-CoretrueNCMP needs to remove DataNode wrapping


11ncmp-datastores:operational YescpsPathapplication/jsoninput:none
output:none
CPS-Coretrue

12**ncmp-datastores:operational YesRESTConfN/AN/AN/AN/ANOT supported

*Note: data not (never) synced but model IS present in CPS Core and associated with the cm-handle

...