aboutsummaryrefslogtreecommitdiffstats
path: root/csit/tests
diff options
context:
space:
mode:
Diffstat (limited to 'csit/tests')
-rw-r--r--csit/tests/osdf/__init__.robot4
-rw-r--r--csit/tests/osdf/data/pci-opt-request.json20
-rw-r--r--csit/tests/osdf/data/placement_request.json102
-rw-r--r--csit/tests/osdf/data/termination_request.json14
-rw-r--r--csit/tests/osdf/optf_osdf_nxi_termination.robot69
-rw-r--r--csit/tests/osdf/optf_osdf_setup.robot12
-rw-r--r--csit/tests/osdf/optf_osdf_test.robot42
-rw-r--r--csit/tests/osdf/resources/common-keywords.robot51
8 files changed, 314 insertions, 0 deletions
diff --git a/csit/tests/osdf/__init__.robot b/csit/tests/osdf/__init__.robot
new file mode 100644
index 0000000..fb654d7
--- /dev/null
+++ b/csit/tests/osdf/__init__.robot
@@ -0,0 +1,4 @@
+*** Settings ***
+Documentation Integration - Suite 1
+
+
diff --git a/csit/tests/osdf/data/pci-opt-request.json b/csit/tests/osdf/data/pci-opt-request.json
new file mode 100644
index 0000000..09a2f97
--- /dev/null
+++ b/csit/tests/osdf/data/pci-opt-request.json
@@ -0,0 +1,20 @@
+{
+ "requestInfo": {
+ "transactionId": "xxx-xxx-xxxx",
+ "requestId": "yyy-yyy-yyyy",
+ "callbackUrl": "https://wiki.onap.org:5000/callbackUrl/",
+ "sourceId": "SO",
+ "requestType": "create",
+ "numSolutions": 1,
+ "optimizers": [
+ "placement"
+ ],
+ "timeout": 600
+ },
+ "cellInfo": {
+ "networkId": "netw1000",
+ "cellIdList": [
+ "cell0"
+ ]
+ }
+} \ No newline at end of file
diff --git a/csit/tests/osdf/data/placement_request.json b/csit/tests/osdf/data/placement_request.json
new file mode 100644
index 0000000..d9b16ca
--- /dev/null
+++ b/csit/tests/osdf/data/placement_request.json
@@ -0,0 +1,102 @@
+{
+ "requestInfo": {
+ "transactionId": "xxx-xxx-xxxx",
+ "requestId": "yyy-yyy-yyyy",
+ "callbackUrl": "https://wiki.onap.org:5000/callbackUrl/",
+ "sourceId": "SO",
+ "requestType": "create",
+ "numSolutions": 1,
+ "optimizers": ["placement"],
+ "timeout": 600
+ },
+ "placementInfo": {
+ "requestParameters": { "customerLatitude": 32.89748, "customerLongitude": -97.040443, "customerName": "xyz" },
+ "subscriberInfo": {"globalSubscriberId": "xxx-xx-xxx", "subscriberName": "subscriber_x"},
+ "placementDemands": [
+ {
+ "resourceModuleName": "vGMuxInfra",
+ "serviceResourceId": "vGMuxInfra-xx",
+ "tenantId": "vGMuxInfra-tenant",
+ "resourceModelInfo": {
+ "modelInvariantId": "vGMuxInfra-modelInvariantId",
+ "modelVersionId": "vGMuxInfra-versionId",
+ "modelName": "vGMuxInfra-model",
+ "modelType": "resource",
+ "modelVersion": "1.0",
+ "modelCustomizationName": "vGMuxInfra-customeModelName"
+ }
+ },
+ {
+ "resourceModuleName": "vG",
+ "serviceResourceId": "71d563e8-e714-4393-8f99-cc480144a05e",
+ "tenantId": "vG-tenant",
+ "resourceModelInfo": {
+ "modelInvariantId": "vG-modelInvariantId",
+ "modelVersionId": "vG-versionId",
+ "modelName": "vG-model",
+ "modelType": "resource",
+ "modelVersion": "1.0",
+ "modelCustomizationName": "vG-customeModelName"
+ },
+ "existingCandidates": [
+ {
+ "identifierType": "serviceInstanceId",
+ "cloudOwner": "",
+ "identifiers": ["gjhd-098-fhd-987"]
+ }
+ ],
+ "excludedCandidates": [
+ {
+ "identifierType": "serviceInstanceId",
+ "cloudOwner": "",
+ "identifiers": ["gjhd-098-fhd-987"]
+ },
+ {
+ "identifierType": "vimId",
+ "cloudOwner": "vmware",
+ "identifiers": ["NYMDT67"]
+ }
+ ],
+ "requiredCandidates": [
+ {
+ "identifierType": "vimId",
+ "cloudOwner": "amazon",
+ "identifiers": ["TXAUS219"]
+ }
+ ]
+ }
+ ]
+ },
+ "serviceInfo": {
+ "serviceInstanceId": "d61b2543-5914-4b8f-8e81-81e38575b8ec",
+ "serviceName": "vCPE",
+ "modelInfo": {
+ "modelInvariantId": "vCPE-invariantId",
+ "modelVersionId": "vCPE-versionId",
+ "modelName": "vCPE-model",
+ "modelType": "service",
+ "modelVersion": "1.0",
+ "modelCustomizationName": "vCPE-customeModelName"
+ }
+ },
+ "licenseInfo": {
+ "licenseDemands": [
+ {
+ "resourceModuleName": "vGMuxInfra",
+ "serviceResourceId": "vGMuxInfra-xx",
+ "resourceModelInfo": {
+ "modelInvariantId": "vGMuxInfra-modelInvariantId",
+ "modelVersionId": "vGMuxInfra-versionId",
+ "modelName": "vGMuxInfra-model",
+ "modelType": "resource",
+ "modelVersion": "1.0",
+ "modelCustomizationName": "vGMuxInfra-customeModelName"
+ },
+ "existingLicenses": {
+ "entitlementPoolUUID": ["87257b49-9602-4ca1-9817-094e52bc873b", "43257b49-9602-4fe5-9337-094e52bc9435"],
+ "licenseKeyGroupUUID": ["87257b49-9602-4ca1-9817-094e52bc873b", "43257b49-9602-4fe5-9337-094e52bc9435"]
+ }
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/csit/tests/osdf/data/termination_request.json b/csit/tests/osdf/data/termination_request.json
new file mode 100644
index 0000000..b219645
--- /dev/null
+++ b/csit/tests/osdf/data/termination_request.json
@@ -0,0 +1,14 @@
+{
+ "requestInfo": {
+ "transactionId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
+ "requestId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
+ "callbackUrl": "http://0.0.0.0:9000/osdfCallback/",
+ "sourceId": "SO",
+ "timeout": 5,
+ "addtnlArgs": {}
+ },
+ "type":"NSI",
+ "NxIId":"9629e36c-a3d9-4aed-8368-f72b8be1cd34",
+ "UUID":"9629e36c-a3d9-4aed-8368-f72b8be1cd34",
+ "invariantUUID":"9629e36c-a3d9-4aed-8368-f72b8be1cd34"
+} \ No newline at end of file
diff --git a/csit/tests/osdf/optf_osdf_nxi_termination.robot b/csit/tests/osdf/optf_osdf_nxi_termination.robot
new file mode 100644
index 0000000..881d4cd
--- /dev/null
+++ b/csit/tests/osdf/optf_osdf_nxi_termination.robot
@@ -0,0 +1,69 @@
+*** Settings ***
+Library copy
+Library json
+Library Collections
+Library OperatingSystem
+Resource ./resources/common-keywords.robot
+
+Suite Teardown Delete All Sessions
+
+*** Variables ***
+&{placement_auth} = username=test password=testpwd
+
+*** Keywords ***
+
+NxiTerminationRequest
+ [Documentation] Sends request to NxiTermination API
+ [Arguments] ${data}
+ ${data_str}= json.dumps ${data}
+ ${resp}= Http Post host=${osdf_host} restUrl=/api/oof/terminate/nxi/v1 data=${data_str} auth=${placement_auth}
+ ${response_json} json.loads ${resp.content}
+ Should Be Equal As Integers ${resp.status_code} 200
+ [Return] ${response_json}
+
+*** Test Cases ***
+
+TerminationRequestGeneration
+ [Documentation] This test case will generate request json for different scenarios
+ ${data}= Get Binary File ${CURDIR}${/}data${/}termination_request.json
+ ${nsi_termination_request}= json.loads ${data}
+ Set Global Variable ${nsi_termination_request}
+ ${nssi_termination_request}= copy.deepcopy ${nsi_termination_request}
+ Set To Dictionary ${nssi_termination_request} type=NSSI
+ Set Global Variable ${nssi_termination_request}
+ ${nsi_termination_request_args}= copy.deepcopy ${nsi_termination_request}
+ ${request_info}= Set Variable ${nsi_termination_request_args["requestInfo"]}
+ ${addtnl_args}= Create Dictionary serviceInstanceId=660ca85c-1a0f-4521-a559-65f23e794699
+ Set To Dictionary ${request_info} addtnlArgs=${addtnl_args}
+ Set To Dictionary ${nsi_termination_request_args} requestInfo=${request_info}
+ Set Global Variable ${nsi_termination_request_args}
+ ${nssi_termination_request_args}= copy.deepcopy ${nssi_termination_request}
+ ${request_info}= Set Variable ${nssi_termination_request_args["requestInfo"]}
+ ${addtnl_args}= Create Dictionary serviceInstanceId=660ca85c-1a0f-4521-a559-65f23e794699
+ Set To Dictionary ${request_info} addtnlArgs=${addtnl_args}
+ Set To Dictionary ${nssi_termination_request_args} requestInfo=${request_info}
+ Set Global Variable ${nssi_termination_request_args}
+
+NSITermination
+ [Documentation] It sends a NSI termination request with no additional arguments
+ ${response_json}= NxiTerminationRequest ${nsi_termination_request}
+ Should Be Equal success ${response_json['requestStatus']}
+ Should Be True ${response_json['terminateResponse']}
+
+NSSITermination
+ [Documentation] It sends a NSSI termination request with no additional arguments
+ ${response_json}= NxiTerminationRequest ${nssi_termination_request}
+ Should Be Equal success ${response_json['requestStatus']}
+ Should Be True ${response_json['terminateResponse']}
+
+NSITerminationWithAddtnlArgs
+ [Documentation] It sends a NSSI termination request with additional arguments
+ ${response_json}= NxiTerminationRequest ${nsi_termination_request_args}
+ Should Be Equal success ${response_json['requestStatus']}
+ Should Be True ${response_json['terminateResponse']}
+
+NSSITerminationWithAddtnlArgs
+ [Documentation] It sends a NSSI termination request with additional arguments
+ ${response_json}= NxiTerminationRequest ${nssi_termination_request_args}
+ Should Be Equal success ${response_json['requestStatus']}
+ Should Be True ${response_json['terminateResponse']}
diff --git a/csit/tests/osdf/optf_osdf_setup.robot b/csit/tests/osdf/optf_osdf_setup.robot
new file mode 100644
index 0000000..ae3c271
--- /dev/null
+++ b/csit/tests/osdf/optf_osdf_setup.robot
@@ -0,0 +1,12 @@
+*** Settings ***
+Documentation Suite description
+Resource ./resources/common-keywords.robot
+
+*** Test Cases ***
+Check OSDF_SIM Docker Container
+ [Documentation] It checks osdf_simulator docker container is running
+ Verify Docker RC Status osdf_sim
+
+Check OSDF Docker Container
+ [Documentation] It checks optf-osdf docker container is running
+ Verify Docker RC Status optf-osdf
diff --git a/csit/tests/osdf/optf_osdf_test.robot b/csit/tests/osdf/optf_osdf_test.robot
new file mode 100644
index 0000000..292df64
--- /dev/null
+++ b/csit/tests/osdf/optf_osdf_test.robot
@@ -0,0 +1,42 @@
+*** Settings ***
+Library json
+Library OperatingSystem
+Resource ./resources/common-keywords.robot
+
+Suite Teardown Delete All Sessions
+
+*** Variables ***
+&{placement_auth} = username=test password=testpwd
+&{wrong_authorization} = username=test password=test
+&{pci_auth}= username=pci_test password=pci_testpwd
+
+*** Test Cases ***
+Healthcheck
+ [Documentation] It sends a REST GET request to healthcheck url
+ ${resp}= Http Get ${osdf_host} /api/oof/v1/healthcheck
+ Should Be Equal As Integers ${resp.status_code} 200
+
+SendPlacementWithInvalidAuth
+ [Documentation] It sends a POST request to osdf fail authentication
+ ${data}= Get Binary File ${CURDIR}${/}data${/}placement_request.json
+ ${resp}= Http Post host=${osdf_host} restUrl=/api/oof/v1/placement data=${data} auth=${wrong_authorization}
+ ${response_json} json.loads ${resp.content}
+ Should Be Equal Unauthorized, check username and password ${response_json['serviceException']['text']}
+ Should Be Equal As Integers ${resp.status_code} 401
+
+SendPlacementWithValidAuth
+ [Documentation] It sends a POST request to osdf with correct authentication
+ ${data}= Get Binary File ${CURDIR}${/}data${/}placement_request.json
+ ${resp}= Http Post host=${osdf_host} restUrl=/api/oof/v1/placement data=${data} auth=${placement_auth}
+ ${response_json} json.loads ${resp.content}
+ Should Be Equal As Integers ${resp.status_code} 202
+ Should Be Equal accepted ${response_json['requestStatus']}
+
+SendPCIOptimizationWithAuth
+ [Documentation] It sends a POST request PCI Optimization service
+
+ ${data}= Get Binary File ${CURDIR}${/}data${/}pci-opt-request.json
+ ${resp}= Http Post host=${osdf_host} restUrl=/api/oof/v1/pci data=${data} auth=${pci_auth}
+ ${response_json} json.loads ${resp.content}
+ Should Be Equal As Integers ${resp.status_code} 202
+ Should Be Equal accepted ${response_json['requestStatus']}
diff --git a/csit/tests/osdf/resources/common-keywords.robot b/csit/tests/osdf/resources/common-keywords.robot
new file mode 100644
index 0000000..114c8a0
--- /dev/null
+++ b/csit/tests/osdf/resources/common-keywords.robot
@@ -0,0 +1,51 @@
+*** Settings ***
+Documentation Suite description
+Library OperatingSystem
+Library RequestsLibrary
+Library json
+Library RequestsLibrary
+*** Variables ***
+&{headers}= Content-Type=application/json Accept=application/json
+${osdf_host} ${OSDF_HOSTNAME}:${OSDF_PORT}
+*** Keywords ***
+Verify Docker RC Status
+ [Documentation] Method to verify whether docker instance is up and running
+ [Arguments] ${process_name}
+ ${rc} ${output}= Run and Return RC and Output docker ps
+ Log To Console *********************
+ Log To Console retrurn_code = ${rc}
+ Log To Console output = ${output}
+ Should Be Equal As Integers ${rc} 0
+ Should Contain ${output} ${process_name}
+
+Http Get
+ [Documentation] Wrapper for Http GET
+ [Arguments] ${host} ${restUrl}
+ Create Session optf-osdf ${host}
+ ${resp}= Get Request optf-osdf ${restUrl}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ [Return] ${resp}
+
+Http Post
+ [Documentation] Wrapper for Http POST
+ [Arguments] ${host} ${restUrl} ${auth} ${data}
+ ${pci_auth}= Create List ${auth['username']} ${auth['password']}
+ Create Session optf-osdf ${host} headers=${headers} auth=${pci_auth}
+ ${resp}= Post Request optf-osdf ${restUrl} data=${data} headers=${headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ [Return] ${resp}
+
+Http Put
+ [Documentation] Wrapper for Http PUT
+ [Arguments] ${host} ${restUrl} ${auth} ${data}
+ ${pci_auth}= Create List ${auth['username']} ${auth['password']}
+ Create Session optf-osdf ${host} headers=${headers} auth=${pci_auth}
+ ${resp}= Put Request optf-osdf ${restUrl} data=${data} headers=${headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ [Return] ${resp}