From 71e24ea27944fdc3710aa5eb744c308486f060d7 Mon Sep 17 00:00:00 2001 From: aguilard Date: Thu, 12 Aug 2021 10:44:17 +0200 Subject: [PATCH] Changed the way to access juju data in k8s_08 testsuite. Now juju commands are executed via SSH on the OSM host and it is not necessary to have juju installed on the client. Deleted k8s_08-simple_k8s_scaling_data.py (obsolete). Change-Id: I0cffb5e227f57a6e12555c7120e3faf4956857ca Signed-off-by: aguilard --- robot-systest/lib/juju_lib.robot | 12 +++--- .../k8s_08-simple_k8s_scaling_data.py | 32 -------------- .../testsuite/k8s_08-simple_k8s_scaling.robot | 43 ++++++++++++------- 3 files changed, 32 insertions(+), 55 deletions(-) delete mode 100644 robot-systest/resources/k8s_08-simple_k8s_scaling_data.py diff --git a/robot-systest/lib/juju_lib.robot b/robot-systest/lib/juju_lib.robot index 2eab9bf..94db455 100644 --- a/robot-systest/lib/juju_lib.robot +++ b/robot-systest/lib/juju_lib.robot @@ -16,21 +16,19 @@ ${success_return_code} 0 *** Keywords *** Get Scale Number - [Arguments] ${application_name} ${model_name} + [Arguments] ${host} ${username} ${password} ${privatekey} ${application_name} ${model_name} Should Not Be Empty ${application_name} ${model_name} - ${rc} ${stdout}= Run and Return RC and Output juju show-status ${application_name} --format yaml -m ${model_name} | grep scale | awk -F ': ' '{print $2}' + ${stdout}= Execute Remote Command Check Rc Return Output ${host} ${username} ${password} ${privatekey} juju show-status ${application_name} --format yaml -m ${model_name} | grep scale | awk -F ': ' '{print $2}' log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} [Return] ${stdout} Get Model Name - [Arguments] ${ns_id} ${kdu_name} + [Arguments] ${host} ${username} ${password} ${privatekey} ${ns_id} ${kdu_name} Should Not Be Empty ${ns_id} ${kdu_name} - ${rc} ${stdout}= Run and Return RC and Output juju models | grep -i ${kdu_name} | grep -i ${ns_id} | cut -f1 -d " " + ${stdout}= Execute Remote Command Check Rc Return Output ${host} ${username} ${password} ${privatekey} juju models | grep -i ${kdu_name} | grep -i ${ns_id} | cut -f1 -d " " log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} ${model_name}= Set Variable ${kdu_name}-${ns_id} Should Be Equal As Strings ${model_name} ${stdout} - [Return] ${stdout} \ No newline at end of file + [Return] ${stdout} diff --git a/robot-systest/resources/k8s_08-simple_k8s_scaling_data.py b/robot-systest/resources/k8s_08-simple_k8s_scaling_data.py deleted file mode 100644 index 669ffe0..0000000 --- a/robot-systest/resources/k8s_08-simple_k8s_scaling_data.py +++ /dev/null @@ -1,32 +0,0 @@ -# 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. - -from pathlib import Path - -# Get ${HOME} from local machine -home = str(Path.home()) -# K8s cluster name -k8scluster_name = 'k8s-test' -k8scluster_version = 'v1' -# NS and VNF descriptor package files -vnfd_pkg = 'charm-packages/native_k8s_scale_charm_vnf' -nsd_pkg = 'charm-packages/native_k8s_scale_charm_ns' -# NS and VNF descriptor package files -vnfd_name = 'native_k8s_scale_charm-vnf' -nsd_name = 'native_k8s_scale_charm-ns' -# NS instance name -ns_name = 'native-k8s-scale' -# Scaling group name -scaling_group = 'scale-kdu' -# SSH keys to be used -publickey = home + '/.ssh/id_rsa.pub' -privatekey = home + '/.ssh/id_rsa' diff --git a/robot-systest/testsuite/k8s_08-simple_k8s_scaling.robot b/robot-systest/testsuite/k8s_08-simple_k8s_scaling.robot index 9b7f0f2..b2d33df 100644 --- a/robot-systest/testsuite/k8s_08-simple_k8s_scaling.robot +++ b/robot-systest/testsuite/k8s_08-simple_k8s_scaling.robot @@ -17,32 +17,48 @@ Library OperatingSystem Library String Library Collections Library Process +Library SSHLibrary Resource %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot -Resource %{ROBOT_DEVOPS_FOLDER}/lib/package_lib.robot -Resource %{ROBOT_DEVOPS_FOLDER}/lib/connectivity_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/k8scluster_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/juju_lib.robot -Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_08-simple_k8s_scaling_data.py - -Force Tags k8s_08 cluster_k8s daily regression sanity +Force Tags k8s_08 cluster_k8s daily regression Suite Teardown Run Keyword And Ignore Error Suite Cleanup *** Variables *** +# K8s cluster name and version +${k8scluster_name} k8s-test +${k8scluster_version} v1 + +# NS and VNF descriptor package folder and ids +${vnfd_pkg} charm-packages/native_k8s_scale_charm_vnf +${vnfd_name} native_k8s_scale_charm-vnf +${nsd_pkg} charm-packages/native_k8s_scale_charm_ns +${nsd_name} native_k8s_scale_charm-ns + +# NS instance name and configuration +${ns_name} native-k8s-scale +${ns_config} {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] } ${ns_id} ${EMPTY} +${publickey} %{HOME}/.ssh/id_rsa.pub + +# Username and SSH private key for accessing OSM host +${username} ubuntu +${password} ${EMPTY} +${privatekey} %{OSM_RSA_FILE} + ${model_name} ${EMPTY} -${ns_config} {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] } -${publickey} ${EMPTY} ${vnf_member_index} native_k8s_scale_charm-vnf ${action_name} changecontent ${kdu_name} native-kdu ${application_name} nginx +${scaling_group} scale-kdu *** Test Cases *** Create Simple K8s Scale VNF Descriptor @@ -62,14 +78,14 @@ Get KDU Model Name [Documentation] Get the model name of the network service k8s instance Variable Should Exist ${ns_id} msg=Network service instance is not available - ${name}= Get Model Name ${ns_id} ${kdu_name} + ${name}= Get Model Name %{OSM_HOSTNAME} ${username} ${password} ${privatekey} ${ns_id} ${kdu_name} Set Suite Variable ${model_name} ${name} Get Scale Count Before Scale Out [Documentation] Get the scale count of the application of network service k8s instance Variable Should Exist ${model_name} msg=Model name is not available - ${kdu_count}= Get Scale Number ${application_name} ${model_name} + ${kdu_count}= Get Scale Number %{OSM_HOSTNAME} ${username} ${password} ${privatekey} ${application_name} ${model_name} Set Suite Variable ${initial_kdu_count} ${kdu_count} Perform Manual KDU Scale Out @@ -81,7 +97,7 @@ Check Scale Count After Scale Out [Documentation] Check whether the scale count is more than one. Variable Should Exist ${initial_kdu_count} msg=Initial KDU count is not available - ${kdu_count}= Get Scale Number ${application_name} ${model_name} + ${kdu_count}= Get Scale Number %{OSM_HOSTNAME} ${username} ${password} ${privatekey} ${application_name} ${model_name} Run Keyword Unless ${kdu_count} == ${initial_kdu_count} + 1 Fail msg=There is no new KDU in the model after Scale Out Perform Manual KDU Scale In @@ -92,7 +108,7 @@ Perform Manual KDU Scale In Check Scale Count After Scale In [Documentation] Check whether the scale count is one less. - ${kdu_count}= Get Scale Number ${application_name} ${model_name} + ${kdu_count}= Get Scale Number %{OSM_HOSTNAME} ${username} ${password} ${privatekey} ${application_name} ${model_name} Run Keyword Unless ${kdu_count} == ${initial_kdu_count} Fail msg=There is the same number of KDU in the model after Scale In Delete NS K8s Instance Test @@ -111,11 +127,6 @@ Delete VNF Descriptor Test [Tags] cleanup Delete VNFD ${vnfd_name} -Delete VNF NS Packages - [Tags] cleanup - Delete Package '%{PACKAGES_FOLDER}/${vnfd_pkg}' - Delete Package '%{PACKAGES_FOLDER}/${nsd_pkg}' - *** Keywords *** Suite Cleanup -- 2.17.1