Add CSIT for multicloud-k8s 87/82187/2
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Wed, 13 Mar 2019 19:24:23 +0000 (12:24 -0700)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Wed, 13 Mar 2019 21:26:43 +0000 (14:26 -0700)
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>
plans/multicloud-k8s/functionality1/setup.sh [new file with mode: 0755]
plans/multicloud-k8s/functionality1/teardown.sh [new file with mode: 0755]
plans/multicloud-k8s/functionality1/testplan.txt [new file with mode: 0644]
tests/multicloud-k8s/data/create_rbdefinition.json [new file with mode: 0644]
tests/multicloud-k8s/multicloud-k8s-test.robot [new file with mode: 0644]

diff --git a/plans/multicloud-k8s/functionality1/setup.sh b/plans/multicloud-k8s/functionality1/setup.sh
new file mode 100755 (executable)
index 0000000..182fb8b
--- /dev/null
@@ -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 (executable)
index 0000000..ed4c0a8
--- /dev/null
@@ -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 (file)
index 0000000..02d23d4
--- /dev/null
@@ -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 (file)
index 0000000..370c3c7
--- /dev/null
@@ -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 (file)
index 0000000..36d4e66
--- /dev/null
@@ -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