Fix bug 1931: adds missing parameter 84/11784/6
authoraktas <emin.aktas@ulakhaberlesme.com.tr>
Fri, 25 Mar 2022 03:04:25 +0000 (06:04 +0300)
committerbeierlm <mark.beierl@canonical.com>
Tue, 17 May 2022 01:34:05 +0000 (03:34 +0200)
ns_config now includes initial replicaCount to set a start point for the deployment.
Also, the logic for pod number counting is change with `kubectl` command to get
real time pod count. `Get Vnf Kdu Replica Count` method gets the replicaCount information
from osm configs.

Change-Id: I92cdb88c562a4297f6d09b773710c7c6b371e05e
Signed-off-by: aktas <emin.aktas@ulakhaberlesme.com.tr>
robot-systest/lib/kubectl_lib.robot [new file with mode: 0644]
robot-systest/lib/ns_lib.robot
robot-systest/testsuite/k8s_11-simple_helm_k8s_scaling.robot

diff --git a/robot-systest/lib/kubectl_lib.robot b/robot-systest/lib/kubectl_lib.robot
new file mode 100644 (file)
index 0000000..508f947
--- /dev/null
@@ -0,0 +1,24 @@
+#   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.
+
+*** Variables ***
+${success_return_code}   0
+
+
+*** Keywords ***
+Count Pod Number
+    [Arguments]   ${host}   ${username}   ${password}   ${privatekey}   ${namespace}   ${application_selector}
+
+    Should Not Be Empty   ${namespace}   ${application_selector}
+    ${stdout}=   Execute Remote Command Check Rc Return Output   ${host}   ${username}   ${password}   ${privatekey}   kubectl get pods --namespace ${namespace} --output name --selector=${application_selector} | wc -l
+    log   Pod count is ${stdout} for ${application_selector} in ${namespace} namespace
+    [Return]  ${stdout}
index 0976241..623d43e 100644 (file)
@@ -312,3 +312,15 @@ Get VDU Affinity Group Name
     log   ${affinity_group_name}
     Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${affinity_group_name}   values=False
     [Return]   ${affinity_group_name}
+
+
+Get Vnf Namespace
+    [Documentation]    Return the KDU's namespace
+
+    [Arguments]   ${vnf_id}
+
+    ${rc}  ${stdout}=  Run and Return RC and Output  osm vnf-show ${vnf_id} --literal | yq '.kdur[]."k8s-namespace"' | tr -d \\"
+    Should Be Equal As Integers  ${rc}  ${success_return_code}  msg=${stdout}  values=False
+    Should Not Be Empty   ${stdout}
+    log  namespace: ${stdout}
+    [Return]  ${stdout}
index 78611e5..e23f4cc 100644 (file)
@@ -25,8 +25,9 @@ Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_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/kubectl_lib.robot
 
-Force Tags   k8s_11   cluster_k8s   regression
+Force Tags   k8s_11   cluster_k8s   daily   regression
 
 Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
 
@@ -42,10 +43,6 @@ ${vnfd_name}   openldap_scale_knf
 ${nsd_pkg}   openldap_scale_ns
 ${nsd_name}   openldap_scale_ns
 
-# NS instance name and configuration
-${ns_name}   openldap-scale
-${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
-
 # Username and SSH private key for accessing OSM host
 ${username}   ubuntu
 ${password}   ${EMPTY}
@@ -54,8 +51,14 @@ ${privatekey}   %{OSM_RSA_FILE}
 ${ns_id}   ${EMPTY}
 ${publickey}   %{HOME}/.ssh/id_rsa.pub
 ${vnf_member_index}   openldap
-${kdu_name}   native-kdu
+${kdu_name}   ldap
 ${scaling_group}   scale-kdu
+${replica_count}   1
+${application_selector}   app=openldap
+
+# NS instance name and configuration
+${ns_name}   openldap-scale
+${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ], additionalParamsForVnf: [ {"member-vnf-index": "${vnf_member_index}", additionalParamsForKdu: [{kdu_name: "${kdu_name}", "additionalParams": {"replicaCount": "${replica_count}"}} ]} ]}
 
 *** Test Cases ***
 Create Simple K8s Scale VNF Descriptor
@@ -68,20 +71,24 @@ Add K8s Cluster To OSM
     Create K8s Cluster  %{K8S_CREDENTIALS}  ${k8scluster_version}  %{VIM_TARGET}  %{VIM_MGMT_NET}  ${k8scluster_name}
 
 Create Network Service Instance
-    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}  ${publickey}
+    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
     Set Suite Variable   ${ns_id}   ${id}
 
 Get Vnf Id
     Variable Should Exist  ${ns_id}  msg=Network service instance is not available
-    @{vnfr_list}=  Get Ns Vnfr Ids  ${ns_id}
-    Log List  ${vnfr_list}
-    Set Suite Variable  ${vnf_id}  ${vnfr_list}[0]
+    ${id}=  Get Vnf Id  ${ns_id}  ${vnf_member_index}
+    Set Suite Variable  ${vnf_id}  ${id}
+
+Get Vnf Namespace
+    Variable Should Exist  ${vnf_id}  msg=VNF instance is not available
+    ${namespace}=  Get Vnf Namespace  ${vnf_id}
+    Set Suite Variable  ${vnf_namespace}  ${namespace}
 
 Get Scale Count Before Scale Out
     [Documentation]     Get the scale count of the application of network service k8s instance
 
-    Variable Should Exist  ${ns_id}  msg=Network service instance is not available
-    ${kdu_count}=   Get Vnf Kdu Replica Count   ${vnf_id}   ${kdu_name}
+    Variable Should Exist  ${vnf_namespace}  msg=Network service instance is not available
+    ${kdu_count}=   Count Pod Number   %{OSM_HOSTNAME}   ${username}   ${password}   ${privatekey}   ${vnf_namespace}   ${application_selector}
     log   ${kdu_count}
     Set Suite Variable  ${initial_kdu_count}  ${kdu_count}
 
@@ -89,12 +96,13 @@ Perform Manual KDU Scale Out
     [Documentation]     Scale out the application of network service k8s instance.
 
     ${ns_op_id_1}=   Execute Manual VNF Scale  ${ns_name}  ${vnf_member_index}  ${scaling_group}  SCALE_OUT
+    log   ${ns_op_id_1}
 
 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 Vnf Kdu Replica Count   ${vnf_id}   ${kdu_name}
+    ${kdu_count}=   Count Pod Number   %{OSM_HOSTNAME}   ${username}   ${password}   ${privatekey}   ${vnf_namespace}   ${application_selector}
     log   ${kdu_count}
     Run Keyword Unless  ${kdu_count} == ${initial_kdu_count} + 2  Fail  msg=There is no new KDU in the model after Scale Out
 
@@ -102,11 +110,12 @@ Perform Manual KDU Scale In
     [Documentation]     Scale in the application of network service k8s instance.
 
     ${ns_op_id_2}=   Execute Manual VNF Scale  ${ns_name}  ${vnf_member_index}  ${scaling_group}  SCALE_IN
+    log   ${ns_op_id_2}
 
 Check Scale Count After Scale In
     [Documentation]     Check whether the scale count is one less.
 
-    ${kdu_count}=   Get Vnf Kdu Replica Count   ${vnf_id}   ${kdu_name}
+    ${kdu_count}=   Count Pod Number   %{OSM_HOSTNAME}   ${username}   ${password}   ${privatekey}   ${vnf_namespace}   ${application_selector}
     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