Versions Compared

Key

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

...

#

Issue

Notes/Jira

Decision

1There are 2 separate query objects defined in OpenAPI
Combine them into one 'Conditions' has the better structure but 'cmHandleQueryRestParameters' is a better  name
2Exact format of  'legacy' Conditions unclear and maybe not generic enoughStudy demo: https://wikilf-onap.onapatlassian.orgnet/wiki/download/attachments/9300039216450241/CPS644.mkv?version=1&modificationDate=1636566033000&api=v2
3Definition of 'Conditions' is not Generic enough

$ref: '#/components/schemas/ModuleNamesAsJsonArray

Should be something like '#/components/ConditionParametersNameValuePairs 


4Agree backward incompatibilityDiscuss with stakeholders

...

#LayerProposed Changes
1REST Layer
  1. openapi.yaml
    1. change /v1/data/ch/searches to  /v1/ch/id-searches
  2. ncmp.yaml
    1. change queryCmHandles method to executeCmHandleIdSearch
    2. Use the CmHandleQueryRestParameters schema to both of them
  3. components.yaml
    1. merge Conditions schema to CmHandleQueryRestParameters schema
    2. delete Conditions schema
2Controller Layer
  1. NetworkCmProxyController
    1. Update controller methods to use the new schema
    2. Both component method call separated service method
    3. Rename queryCmHandles method to executeCmHandleIdSearch
3Service Layer
  1. NetworkCmProxyDataService
    1. Create new method for query cmHandles
    2. Keep queryCmHandles method and rename it to queryCmHandleIds
    3. Both method should be calling separate methods in CpsDataService
    4. Validation logic should be moved to an separated method and call it from both method
  2. CpsDataService
    1. Update queryCmHandles method return type to Set<CmHandles>
    2. Use separate methods to CmHandlesId search to just return a collection of CmHandleIds (extract from DataNode Objects) 
  3. CpsAdminPersistenceService
    1. Update queryCmHandles will always return complet DataNode object(s). No updates can be done
4Persistence Layer
  1. ModuleReferenceQuery
    1. Update queryCmHandles method return type to Set<CmHandles>
    2. Update queryCmHandles method to handle both filtering parameters
    3. Create to separete method for CmHandlesId searches with new filtering parameters (use the original queryCmHandles method code)

New Rest Request Input Format

...