[CSIT] Testing DataOperations Request with positive Scenario 49/135349/13
authorraviteja.karumuri <raviteja.karumuri@est.tech>
Thu, 6 Jul 2023 12:48:31 +0000 (13:48 +0100)
committerRaviteja Karumuri <raviteja.karumuri@est.tech>
Thu, 13 Jul 2023 15:18:43 +0000 (15:18 +0000)
# Sending CMHandle with ready state to the NCMP then it forwarded to DMI to complete the read operation once done with success it produces a message to the client topic'

Issue-ID: CPS-1560
Signed-off-by: raviteja.karumuri <raviteja.karumuri@est.tech>
Change-Id: I0af68fdf97bf0a5063361ae08475dee38dbe7b8e

csit/data/dataOperationRequest.json [new file with mode: 0644]
csit/plans/cps/setup.sh
csit/plans/cps/testplan.txt
csit/prepare-csit.sh
csit/tests/cps-data-operations/cps-data-operations.robot [new file with mode: 0644]

diff --git a/csit/data/dataOperationRequest.json b/csit/data/dataOperationRequest.json
new file mode 100644 (file)
index 0000000..1b94a29
--- /dev/null
@@ -0,0 +1,12 @@
+{
+  "operations": [
+    {
+      "operation": "read",
+      "operationId": "operational-12",
+      "datastore": "ncmp-datastore:passthrough-operational",
+      "options": "(fields=schemas/schema)",
+      "resourceIdentifier": "parent/child",
+      "targetIds": ["850117873c9a4936856a5081be96e6a8"]
+    }
+  ]
+}
\ No newline at end of file
index e7ad67e..269d3cb 100755 (executable)
@@ -129,4 +129,4 @@ check_health $DMI_HOST:$DMI_MANAGEMENT_PORT 'dmi-plugin'
 
 ###################### ROBOT Configurations ##########################
 # Pass variables required for Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v CPS_CORE_MANAGEMENT_PORT:$CPS_CORE_MANAGEMENT_PORT -v DATADIR:$WORKSPACE/data --exitonfailure"
+ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v DMI_CSIT_STUB_HOST:$LOCAL_IP -v DMI_CSIT_STUB_PORT:$DMI_DEMO_STUB_PORT -v CPS_CORE_MANAGEMENT_PORT:$CPS_CORE_MANAGEMENT_PORT -v DATADIR:$WORKSPACE/data --exitonfailure"
index c597123..cca11fb 100644 (file)
@@ -22,4 +22,5 @@ cps-data
 cps-model-sync
 cps-data-sync
 ncmp-passthrough
-cm-handle-query
\ No newline at end of file
+cm-handle-query
+cps-data-operations
\ No newline at end of file
index 78f0fbd..fbd5dc5 100755 (executable)
@@ -69,5 +69,9 @@ python3 -m pip install --upgrade --extra-index-url="https://nexus3.onap.org/repo
 
 echo "Versioning information:"
 python3 --version
+
+echo "Installing confluent kafka library for robot framework:"
+pip install robotframework-confluentkafkalibrary
+
 pip freeze
 python3 -m robot.run --version || :
\ No newline at end of file
diff --git a/csit/tests/cps-data-operations/cps-data-operations.robot b/csit/tests/cps-data-operations/cps-data-operations.robot
new file mode 100644 (file)
index 0000000..451fb0a
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ *  ============LICENSE_START=======================================================
+ *  Copyright (C) 2023 Nordix Foundation
+ *  ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *  SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+*** Settings ***
+Documentation         NCMP
+
+Library               Collections
+Library               OperatingSystem
+Library               RequestsLibrary
+Library               BuiltIn
+Library               ConfluentKafkaLibrary
+
+Suite Setup           Create Session      CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
+
+*** Variables ***
+
+${auth}                                 Basic Y3BzdXNlcjpjcHNyMGNrcyE=
+${topic}                                data-operation-client-topic
+${ncmpBasePath}                         /ncmp
+${expectedRequestId}                    ${EMPTY}
+${dmipluginCsitStubUrl}                 http://${DMI_CSIT_STUB_HOST}:${DMI_CSIT_STUB_PORT}
+${newCmHandleRequestBody}               {"dmiPlugin":"${dmipluginCsitStubUrl}","createdCmHandles":[{"cmHandle":"850117873c9a4936856a5081be96e6a8"}]}
+
+*** Test Cases ***
+
+NCMP Data Operation, forwarded to DMI, response on Client Topic
+        ${uri}=                          Set Variable        ${ncmpBasePath}/v1/data
+        ${dataOperationReqBody}=         Get Binary File     ${DATADIR}${/}dataOperationRequest.json
+        ${params}=                       Create Dictionary   topic=${topic}
+        ${headers}=                      Create Dictionary   Content-Type=application/json         Authorization=${auth}
+                                         POST On Session     CPS_URL   ncmpInventory/v1/ch         headers=${headers}     data=${newCmHandleRequestBody}
+        Sleep                            5                   wait some time to get updated the cm handle state to READY
+        ${response}=                     POST On Session     CPS_URL   ${uri}   params=${params}   headers=${headers}     data=${dataOperationReqBody}
+        Set Global Variable              ${expectedRequestId}       ${response.json()}[requestId]
+        Should Be Equal As Strings       ${response.status_code}   200
+        Sleep                            5                         wait some time to get published a message to the client topic
+
+Consume cloud event from client topic
+    ${group_id}=         Create Consumer     port=19092               auto_offset_reset=earliest
+    Subscribe Topic      topics=${topic}     group_id=${group_id}
+    ${messages}=         Poll                group_id=${group_id}     only_value=false
+    ${event}                        Set Variable                      ${messages}[0]
+    ${headers}                      Set Variable                      ${event.headers()}
+    ${specVersionHeaderValue}       Set Variable                      ${headers[1][1]}
+    ${sourceHeaderValue}            Set Variable                      ${headers[3][1]}
+    ${typeHeaderValue}              Set Variable                      ${headers[4][1]}
+    ${correlationIdHeaderValue}     Set Variable                      ${headers[8][1]}
+    Should Be Equal As Strings      ${specVersionHeaderValue}         1.0
+    Should Be Equal As Strings      ${sourceHeaderValue}              DMI
+    Should Be Equal As Strings      ${correlationIdHeaderValue}       ${expectedRequestId}
+    Should Be Equal As Strings      ${typeHeaderValue}                org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent
+    [Teardown]                      Basic Teardown                    ${group_id}
+
+*** Keywords ***
+
+Basic Teardown
+    [Arguments]     ${group_id}
+    Unsubscribe     ${group_id}
+    Close Consumer  ${group_id}
+