Versions Compared

Key

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

...

#DescriptionNotesProsCons
1

Each component contains its own docker-compose file listing all the services required for the integration test. Eg : cps-temporal docker-compose would have services  from cps-temporal as well as cps-core

As all the services are included in the docker-compose of cps-temporal, CSIT test setup could directly trigger :

      docker-compose up


  • Faster implementation
  • Every change made in a single service would have to be duplicated in all the other files where the same service is used like addition of new environment variables.
  • Harder to maintain
2 Each component contains its own docker-compose file with the services required for stand alone testing. Eg: cps-temporal docker-compose only containing services cps-temporal, timescaledb, zoopkeeper and kafka. 

As cps-temporal is a client using cps-core, include steps to fetch the docker-compose of cps-core in the cps-temporal setup.sh file in CSIT as shown below:

      git clone https://github.com/onap/cps.git

Combine the docker-compose of cps-temporal and cps while executing 'docker-compose up' 

     docker-compose -f docker-compose.yml -f ../cps/docker-compose/docker-compose.yml up

Subsequent files override and add to their predecessors. For the CSIT test cps-temporal docker-compose could override the properties specified in cps-core docker-compose.

Eg : if the notification.data-updated.enabled=false by default in cps-core docker-compose. By adding the below code in cps-temporal, these values could be overriden

cps-and-ncmp:
notification.data-updated.enabled: 'true'
  • No need for code replication.
  • docker-compose files specific to each component
  • Cloning the dependent repo
  • The configuration to run a test does not belong to the test itself anymore as it stays in another repo. 

3Create a repo for all the common artifacts like the CSIT, documents. Sub modules could be created for different components inside CSIT to include both the docker-compose and test plan.

Eg: cps-temporal CSIT would combine the docker-compose of cps-temporal and cps-core while executing 'docker-compose up' as below :

     docker-compose -f docker-compose.yml -f ../cps/docker-compose.yml up

  • No need to replicate the docker-compose
  • docker-compose files specific to each component maintained in different sub modules
  • No cloning required for the dependent repo to run CSIT
  • ci-management jobs will have to be created, hence time consuming for now
  • Manageability of an additional repo .

...

Jenkins Jobs

Following jobs are serving CSIT for CPS project

...

...

New CI jobs will have to be created for cps-temporal and dmi-plugin (Ref : ci-management/cps-csit.yaml at master · onap/ci-management (github.com))

Selection of Image for CSIT test

#CSIT componentImageDecision
1cps-corecps-and-ncmplatest
2. cps-temporalcps-temporallatest
cps-and-ncmpmost recent stage released stable version 
3(onap) dmi-plugin
ncmp-dmi-plugin
latest
cps-and-ncmpmost recent stage released stable version 

Test Plan:

#ScenarioCoversSteps StatusCPS(cps-core and ncmp)
1.1Health Checkcps-core
  1. Test Liveness Probe Endpoint
  2. Test Readiness Probe Endpoint
Done1.2
CPS Admin Details Insert
cps-core
  1. Create Dataspace 
  2. Create schema set from YANG file
  3. Create Schema set with Zip file
  4. Get schema set info
  5. Create anchor
  6. Get Anchor

To Be Updated

Get Anchor test to be included in the existing test.

1.3CPS Data Node Insert, Update and Deletecps-core
  1. Create Data Node for an anchor
  2. Get Datanode by the dataspace, anchor and xpath

Done

CPS Temporal2.1Health Checkcps-temporal
  1. Test Liveness Probe Endpoint
  2. Test Readiness Probe Endpoint
New2.2Get anchor historycps-core, cps-temporal
  1. Create Data Node using cps api 
  2. Update the Data Node using cps api
  3. Get the history of the anchor using cps-temporal api 
    /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/history
NewONAP DMI PLUGIN3.1Health Checkdmi-plugin
  1. Test Liveness Probe Endpoint
  2. Test Readiness Probe Endpoint
New3.2

Model-Sync

dmi-plugin, ncmp, cps-core
  1. Create Data Node using cps api 
  2. Notify NCMP DMI has new node 
    1. http://localhost:8783/dmi/api/v1/inventory/cmHandles
    2. This will kick off model sync as part of registation
  3. wait till above method call completes and send a 2xx response
  4. Use CPS endpoint that shows anchors & namespaces to conclude test completed

New

Jira
serverONAP Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-615

3.3Write & read data using datastore PassTroughdmi-plugin, ncmp, cps-core

New

JiraserverONAP JiracolumnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutioncolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutionserverId425b2b0a-557c-3c0c-b515-579789cceedbkeyCPS-646