Versions Compared

Key

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

...

#IssueNotes Decision
1Performance issue with current solutionCurrent solution used inefficient query to populate (first) prefix property for ALL fragments although only used for top level 

Will be handled by separate Jira already in progress, see

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

2Top level container is not always defined in first moduleThis might not be required as the first short-term solution is delivered first

Will be handled by separate Jira

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

3Add prefix for container in same module

This is allowed but not done normally. Team concerned about performance issues and impact on URLs when using this

Ahila P will check need with her team.

4Add prefix to first container when this is not the top level for the module it is definedretrieve B or C directly (without parent), in that case should the prefix stil be used ie. Module1:/B
5Insert prefix or name, or last token of namespace

See sample from https://github.com/YangModels/yang/blob/main/vendor/cisco/xr/534/ietf-inet-types.yang

Code Block
languagexml
titleietf-inet-types.yang
module ietf-inet-types {

  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
  prefix "inet";


(Unfortunately in above example module name and last token of namespace are the same, not sure if this just convention or mandatory
Use 'ietf-inet-types' or 'inet' to insert 

CPS Team (made-up) example

Code Block
titlebookstore.yang
module stores {
    yang-version 1.1;
    namespace "org:onap:ccsdk:sample";

    prefix book-store;


Ahila P to check RFC to find out what is required

6Prefix for (additional) leaves that are defined in a separate module then the container itselfRequired, not sure how common this is. DB Solution for this might be quite difficult. Toine's POC should handle it (to be tested)
7How to handle lists (instead of container)Possibly ignore [@key=value] part. Small neglectable change of same model defined both under same parent... Toine's Poc can be modified to handle this with help from establish regular-expressions from other use cases
8Performance Considerations

SchemaContext generation is expensive. 

  1. Consider distributed cache (already used for other things in CPS) to store resolved paths 
  2. Consider normal cache for schemaContext object has they are not serializable)
  3. Consider generating matcher for all possible paths upon SChemaContext creation (would be limited number) and store in (distributed) cache (with a reasonable time to live)
Use Hazelcast to store 'simplified Model' as defined in Poc Toine
9


...