From ac3438c8b2795c6ef5dce99ecda10889c577ddf5 Mon Sep 17 00:00:00 2001 From: Kiran Kamineni Date: Wed, 13 Mar 2019 12:24:23 -0700 Subject: [PATCH] Add CSIT for multicloud-k8s Add CSIT for the multicloud-k8s plugin POST, GET and DELETE are tested for definition API Change-Id: I936071de176430ec05a9c087c34908057f1cc5bb Issue-ID: MULTICLOUD-403 Signed-off-by: Kiran Kamineni --- plans/multicloud-k8s/functionality1/setup.sh | 38 +++++++++++++ plans/multicloud-k8s/functionality1/teardown.sh | 16 ++++++ plans/multicloud-k8s/functionality1/testplan.txt | 3 + tests/multicloud-k8s/data/create_rbdefinition.json | 7 +++ tests/multicloud-k8s/multicloud-k8s-test.robot | 66 ++++++++++++++++++++++ 5 files changed, 130 insertions(+) create mode 100755 plans/multicloud-k8s/functionality1/setup.sh create mode 100755 plans/multicloud-k8s/functionality1/teardown.sh create mode 100644 plans/multicloud-k8s/functionality1/testplan.txt create mode 100644 tests/multicloud-k8s/data/create_rbdefinition.json create mode 100644 tests/multicloud-k8s/multicloud-k8s-test.robot diff --git a/plans/multicloud-k8s/functionality1/setup.sh b/plans/multicloud-k8s/functionality1/setup.sh new file mode 100755 index 00000000..182fb8b7 --- /dev/null +++ b/plans/multicloud-k8s/functionality1/setup.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# +# Copyright (c) 2018 Intel Corporation, Inc +# +# 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. + +pushd ${SCRIPTS} + +# start mongodb +./run-instance.sh docker.io/mongo:4.0 multicloud-k8s-mongodb +MONGO_IP=$(./get-instance-ip.sh multicloud-k8s-mongodb) + +# start multicloud-k8s +./run-instance.sh nexus3.onap.org:10001/onap/multicloud/k8s:latest multicloud-k8s "-e PLUGINS_DIR=/opt/multicloud/k8s -e DATABASE_TYPE=mongo -e DATABASE_IP=$MONGO_IP" +SERVICE_IP=$(./get-instance-ip.sh multicloud-k8s) +SERVICE_PORT=8081 +popd + +if [[ $no_proxy && $no_proxy != *$SERVICE_IP* ]]; then + export no_proxy+=$no_proxy,$SERVICE_IP +fi + +for i in {1..50}; do + curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} " +ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} " diff --git a/plans/multicloud-k8s/functionality1/teardown.sh b/plans/multicloud-k8s/functionality1/teardown.sh new file mode 100755 index 00000000..ed4c0a80 --- /dev/null +++ b/plans/multicloud-k8s/functionality1/teardown.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# +# Copyright (c) 2018 Intel Corporation, Inc +# +# 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. + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh multicloud-k8s +kill-instance.sh multicloud-k8s-mongodb diff --git a/plans/multicloud-k8s/functionality1/testplan.txt b/plans/multicloud-k8s/functionality1/testplan.txt new file mode 100644 index 00000000..02d23d47 --- /dev/null +++ b/plans/multicloud-k8s/functionality1/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration/csit.git]/tests/. +# Place the suites in run order. +multicloud-k8s/multicloud-k8s-test.robot diff --git a/tests/multicloud-k8s/data/create_rbdefinition.json b/tests/multicloud-k8s/data/create_rbdefinition.json new file mode 100644 index 00000000..370c3c79 --- /dev/null +++ b/tests/multicloud-k8s/data/create_rbdefinition.json @@ -0,0 +1,7 @@ +{ + "uuid": "7eb09e38-4363-9942-1234-3beb2e95fd85", + "name": "test-rbdef", + "chart-name": "testchart", + "description": "testing resource bundle definition api", + "service-type": "firewall" +} \ No newline at end of file diff --git a/tests/multicloud-k8s/multicloud-k8s-test.robot b/tests/multicloud-k8s/multicloud-k8s-test.robot new file mode 100644 index 00000000..36d4e668 --- /dev/null +++ b/tests/multicloud-k8s/multicloud-k8s-test.robot @@ -0,0 +1,66 @@ +*** Settings *** +Suite Setup Run keywords Check k8splugin API Docker Container Created header Created session +Library OperatingSystem +Library RequestsLibrary + +*** Variables *** + +*** Test Cases *** +Create Definition + [Template] Post template + /v1/rb/definition create_rbdefinition.json + +Get Definition + [Template] Get template + /v1/rb/definition + /v1/rb/definition/7eb09e38-4363-9942-1234-3beb2e95fd85 + +Delete Definition + [Template] Delete template + /v1/rb/definition/7eb09e38-4363-9942-1234-3beb2e95fd85 + +*** Keywords *** +Created session + Create Session multicloud_k8s_session http://${SERVICE_IP}:${SERVICE_PORT} + Set Suite Variable ${suite_multicloud_k8s_session} multicloud_k8s_session + +Created header + ${headers}= Create Dictionary Content-Type=application/json Accept=application/json + Set Suite Variable ${suite_headers} ${headers} + +Delete template + [Documentation] Deletes from Definition + [Arguments] ${topic} + ${resp}= Delete Request ${suite_multicloud_k8s_session} ${topic} headers=${suite_headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 204 + +Post template + [Documentation] Create A Definition + [Arguments] ${topic} ${file} + ${data} Get Binary File ${CURDIR}${/}data${/}${file} + ${resp}= Post Request ${suite_multicloud_k8s_session} ${topic} data=${data} headers=${suite_headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 201 + +Get template + [Documentation] Gets from Definition + [Arguments] ${topic} + ${resp}= Get Request ${suite_multicloud_k8s_session} ${topic} headers=${suite_headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Check k8splugin API Docker Container + [Documentation] Checks if k8splugin 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/multicloud/k8s -- 2.16.6