From be7fcd979280bc6f0a9cbce8062d3fa00c294675 Mon Sep 17 00:00:00 2001 From: Kiran Kamineni Date: Tue, 27 Mar 2018 11:23:37 -0700 Subject: Adding CSIT test for SMS Adding CSIT tests for Secret Management Service under AAF. This tests the CRUD operations for SecretDomain and Secret Issue-ID: AAF-189 Change-Id: I3dd070fc30d8504593b933d7b623e6a187399444 Signed-off-by: Kiran Kamineni --- test/csit/plans/aaf/sms-test-plan/setup.sh | 59 ++++++++++++++ test/csit/plans/aaf/sms-test-plan/teardown.sh | 22 +++++ test/csit/plans/aaf/sms-test-plan/testplan.txt | 3 + test/csit/tests/aaf/aaf-sms-suite/__init__.robot | 2 + .../tests/aaf/aaf-sms-suite/aaf-sms-test.robot | 94 ++++++++++++++++++++++ .../aaf/aaf-sms-suite/data/create_domain.json | 3 + .../aaf/aaf-sms-suite/data/create_secret.json | 12 +++ 7 files changed, 195 insertions(+) create mode 100755 test/csit/plans/aaf/sms-test-plan/setup.sh create mode 100644 test/csit/plans/aaf/sms-test-plan/teardown.sh create mode 100644 test/csit/plans/aaf/sms-test-plan/testplan.txt create mode 100644 test/csit/tests/aaf/aaf-sms-suite/__init__.robot create mode 100644 test/csit/tests/aaf/aaf-sms-suite/aaf-sms-test.robot create mode 100644 test/csit/tests/aaf/aaf-sms-suite/data/create_domain.json create mode 100644 test/csit/tests/aaf/aaf-sms-suite/data/create_secret.json (limited to 'test') diff --git a/test/csit/plans/aaf/sms-test-plan/setup.sh b/test/csit/plans/aaf/sms-test-plan/setup.sh new file mode 100755 index 000000000..5d1973ad8 --- /dev/null +++ b/test/csit/plans/aaf/sms-test-plan/setup.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation +# +# 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. +# + +# Not sure why this is needed. +source ${SCRIPTS}/common_functions.sh + +CONFIG_FILE=$(pwd)/config/smsconfig.json + +mkdir -p $(pwd)/config + +cat << EOF > $CONFIG_FILE +{ + "cafile": "auth/selfsignedca.pem", + "servercert": "auth/server.cert", + "serverkey": "auth/server.key", + + "vaultaddress": "http://$HOSTNAME:8200", + "vaulttoken": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", + "disable_tls": true +} +EOF + +docker login -u docker -p docker nexus3.onap.org:10001 +docker pull nexus3.onap.org:10001/onap/aaf/sms +docker pull docker.io/vault:0.9.5 +# +# Running vault in dev server mode here for CSIT +# In HELM it runs in production mode +# +docker run -e "VAULT_DEV_ROOT_TOKEN_ID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \ + -e SKIP_SETCAP=true \ + --name vault -d -p 8200:8200 vault:0.9.5 +docker run --workdir /sms -v "$(pwd)"/config/smsconfig.json:/sms/smsconfig.json \ + --name sms -d -p 10443:10443 nexus3.onap.org:10001/onap/aaf/sms + +echo "###### WAITING FOR ALL CONTAINERS TO COME UP" +sleep 10 + +# +# add here all ROBOT_VARIABLES settings +# +echo "# sms robot variables settings"; +ROBOT_VARIABLES="-v SMS_HOSTNAME:http://localhost -v SMS_PORT:10443" + +echo ${ROBOT_VARIABLES} diff --git a/test/csit/plans/aaf/sms-test-plan/teardown.sh b/test/csit/plans/aaf/sms-test-plan/teardown.sh new file mode 100644 index 000000000..72f134f0d --- /dev/null +++ b/test/csit/plans/aaf/sms-test-plan/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation +# +# 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. +# + +rm -rf config +docker stop sms vault +docker rm sms vault +docker rmi nexus3.onap.org:10001/onap/aaf/sms +docker rmi docker.io/vault:0.9.5 diff --git a/test/csit/plans/aaf/sms-test-plan/testplan.txt b/test/csit/plans/aaf/sms-test-plan/testplan.txt new file mode 100644 index 000000000..c2b3b7b1b --- /dev/null +++ b/test/csit/plans/aaf/sms-test-plan/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +aaf/aaf-sms-suite \ No newline at end of file diff --git a/test/csit/tests/aaf/aaf-sms-suite/__init__.robot b/test/csit/tests/aaf/aaf-sms-suite/__init__.robot new file mode 100644 index 000000000..d1da7f385 --- /dev/null +++ b/test/csit/tests/aaf/aaf-sms-suite/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation Integration - Suite 1 \ No newline at end of file diff --git a/test/csit/tests/aaf/aaf-sms-suite/aaf-sms-test.robot b/test/csit/tests/aaf/aaf-sms-suite/aaf-sms-test.robot new file mode 100644 index 000000000..1302abc79 --- /dev/null +++ b/test/csit/tests/aaf/aaf-sms-suite/aaf-sms-test.robot @@ -0,0 +1,94 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library json + +*** Variables *** +${MESSAGE} {"ping": "ok"} + +#global variables +${generatedAID} + +*** Test Cases *** +SMS Check SMS API Docker Container + [Documentation] Checks if SMS docker container is running + ${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} nexus3.onap.org:10001/onap/aaf/sms + +SMS GetStatus + [Documentation] Gets Backend Status + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Get Request SMS /v1/sms/status headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +SMS CreateDomain + [Documentation] Creates a Secret Domain to hold Secrets + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + ${data} Get Binary File ${CURDIR}${/}data${/}create_domain.json + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Post Request SMS /v1/sms/domain data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 201 + +SMS CreateSecret + [Documentation] Create A Secret within the Domain + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + ${data} Get Binary File ${CURDIR}${/}data${/}create_secret.json + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Post Request SMS /v1/sms/domain/curltestdomain/secret data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 201 + +SMS ListSecret + [Documentation] Lists all Secret Names within Domain + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Get Request SMS /v1/sms/domain/curltestdomain/secret headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +SMS GetSecret + [Documentation] Gets a single Secret with Values from Domain + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Get Request SMS /v1/sms/domain/curltestdomain/secret/curltestsecret1 headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +SMS DeleteSecret + [Documentation] Deletes a Secret referenced by Name from Domain + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Delete Request SMS /v1/sms/domain/curltestdomain/secret/curltestsecret1 headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 204 + +SMS DeleteDomain + [Documentation] Deletes a Domain referenced by Name + Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT} + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Delete Request SMS /v1/sms/domain/curltestdomain headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 204 + +*** Keywords *** diff --git a/test/csit/tests/aaf/aaf-sms-suite/data/create_domain.json b/test/csit/tests/aaf/aaf-sms-suite/data/create_domain.json new file mode 100644 index 000000000..176f44431 --- /dev/null +++ b/test/csit/tests/aaf/aaf-sms-suite/data/create_domain.json @@ -0,0 +1,3 @@ +{ + "name": "curltestdomain" +} diff --git a/test/csit/tests/aaf/aaf-sms-suite/data/create_secret.json b/test/csit/tests/aaf/aaf-sms-suite/data/create_secret.json new file mode 100644 index 000000000..d99f4e2e0 --- /dev/null +++ b/test/csit/tests/aaf/aaf-sms-suite/data/create_secret.json @@ -0,0 +1,12 @@ +{ + "name": "curltestsecret1", + "values": { + "name":"rah", + "age":35, + "map":{ + "mapkey1": "mapvalue1", + "mapkey2": "mapvalue2" + }, + "array":["golang","c++","java","python"] + } +} -- cgit 1.2.3-korg