From 670a20f33a2b741a6a5e7c7c4f7dfc9e16378a75 Mon Sep 17 00:00:00 2001 From: Konrad Bańka Date: Wed, 10 Jul 2019 12:11:32 +0200 Subject: Provide wrapper functions for issuing k8splugin API calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In plugin.sh and plugin_edgex.sh test scenarios, there are executed many curl calls to API endpoint. As curl's default behavior for handling 4xx and 5xx status code is not perfect, wrapper functions have been created to easily ensure correctness of issued API call. Issue-ID: MULTICLOUD-686 Signed-off-by: Konrad Bańka Change-Id: I0c6dd5e4f896972245a6fa6c8c2a10d8df8ec406 --- kud/tests/_functions.sh | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/kud/tests/_functions.sh b/kud/tests/_functions.sh index a885bc50..483aed5c 100755 --- a/kud/tests/_functions.sh +++ b/kud/tests/_functions.sh @@ -33,6 +33,44 @@ function get_ovn_central_address { echo "$(echo ${ansible_ifconfig#*>>} | tr '\n' ':')6641" } +function call_api { + #Runs curl with passed flags and provides + #additional error handling and debug information + + #Function outputs server response body + #and performs validation of http_code + + local status + local curl_response_file="$(mktemp -p /tmp)" + local curl_common_flags=(-s -w "%{http_code}" -o "${curl_response_file}") + local command=(curl "${curl_common_flags[@]}" "$@") + + echo "[INFO] Running '${command[@]}'" >&2 + if ! status="$("${command[@]}")"; then + echo "[ERROR] Internal curl error! '$status'" >&2 + cat "${curl_response_file}" + rm "${curl_response_file}" + return 2 + else + echo "[INFO] Server replied with status: ${status}" >&2 + cat "${curl_response_file}" + rm "${curl_response_file}" + if [[ "${status:0:1}" =~ [45] ]]; then + return 1 + else + return 0 + fi + fi +} + +function delete_resource { + #Issues DELETE http call to provided endpoint + #and further validates by following GET request + + call_api -X DELETE "$1" + ! call_api -X GET "$1" >/dev/null +} + # init_network() - This function creates the OVN resouces required by the test function init_network { local fname=$1 -- cgit 1.2.3-korg From c64b7f1c913310782f3b767fd116e506efe269d8 Mon Sep 17 00:00:00 2001 From: Konrad Bańka Date: Wed, 10 Jul 2019 12:19:16 +0200 Subject: Correct plugin_edgex testcase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plugin_edgex.sh script hasn't been updated to few changes that happened in k8splugin API and CSAR definitions. This commit rewrites previous test scenario to be up to date with current plugin state. Issue-ID: MULTICLOUD-686 Signed-off-by: Konrad Bańka Change-Id: Id235f4549e10f57451bf2b6195df8c95230e1c7e --- kud/tests/_common.sh | 12 ++ kud/tests/plugin_edgex.sh | 135 ++++++++++++++-------- kud/tests/vnfs/edgex/profile/manifest.yaml | 4 + kud/tests/vnfs/edgex/profile/override_values.yaml | 1 + 4 files changed, 106 insertions(+), 46 deletions(-) create mode 100644 kud/tests/vnfs/edgex/profile/manifest.yaml create mode 100644 kud/tests/vnfs/edgex/profile/override_values.yaml diff --git a/kud/tests/_common.sh b/kud/tests/_common.sh index 3120dad7..bfb6ec4b 100755 --- a/kud/tests/_common.sh +++ b/kud/tests/_common.sh @@ -1132,3 +1132,15 @@ function populate_CSAR_rbdefinition { gzip $rbd_content_tarball popd } + +# populate_CSAR_edgex_rbdefinition() - Function that populates CSAR folder +# for testing resource bundle definition of edgex scenario +function populate_CSAR_edgex_rbdefinition { + _checks_args "$1" + pushd "${CSAR_DIR}/$1" + print_msg "Create Helm Chart Archives" + rm -f *.tar.gz + tar -czf rb_profile.tar.gz -C $test_folder/vnfs/edgex/profile . + tar -czf rb_definition.tar.gz -C $test_folder/vnfs/edgex/helm edgex + popd +} diff --git a/kud/tests/plugin_edgex.sh b/kud/tests/plugin_edgex.sh index 4e806e6f..929961c0 100755 --- a/kud/tests/plugin_edgex.sh +++ b/kud/tests/plugin_edgex.sh @@ -15,57 +15,100 @@ set -o pipefail source _common_test.sh source _functions.sh +source _common.sh -base_url="http://localhost:8081/v1/vnf_instances/" -cloud_region_id="kud" -namespace="default" +base_url="http://localhost:9015/v1" +kubeconfig_path="$HOME/.kube/config" csar_id=cb009bfe-bbee-11e8-9766-525400435678 +rb_name="edgex" +rb_version="plugin_test" +chart_name="edgex" +profile_name="test_profile" +release_name="test-release" +namespace="plugin-tests-namespace" +cloud_region_id="kud" +cloud_region_owner="localhost" # Setup install_deps -_checks_args ${csar_id} -cp -R ./edgex/* ${CSAR_DIR}/${csar_id}/ +populate_CSAR_edgex_rbdefinition "$csar_id" + +print_msg "Registering resource bundle" +payload="$(cat </dev/null #massive output + +print_msg "Creating EdgeX VNF Instance" +payload="$(cat <