*** 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}
+++ /dev/null
-# 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'
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
[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
[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
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
[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