summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKiran Kamineni <kiran.k.kamineni@intel.com>2019-03-13 12:24:23 -0700
committerKiran Kamineni <kiran.k.kamineni@intel.com>2019-03-13 14:26:43 -0700
commitac3438c8b2795c6ef5dce99ecda10889c577ddf5 (patch)
tree26d9b6a5e76f213b7657531bb652ca7f396bc6d5
parent0b23a1e44f8b9f5b449cdca9f63568b222418f58 (diff)
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 <kiran.k.kamineni@intel.com>
-rwxr-xr-xplans/multicloud-k8s/functionality1/setup.sh38
-rwxr-xr-xplans/multicloud-k8s/functionality1/teardown.sh16
-rw-r--r--plans/multicloud-k8s/functionality1/testplan.txt3
-rw-r--r--tests/multicloud-k8s/data/create_rbdefinition.json7
-rw-r--r--tests/multicloud-k8s/multicloud-k8s-test.robot66
5 files changed, 130 insertions, 0 deletions
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