X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=robot-systest%2Ftestsuite%2Fsa_02-vnf_with_vim_metrics_and_autoscaling.robot;h=b5910f5fa4636e4f57da2f7f83423b1272aa47df;hb=23ff8f980f66ef57fb4d254336a018e3a697a187;hp=76b32298d1ce68865c50069254c2a5d31613896d;hpb=063677c719bd33d8674903ed5b7f11e7368da23a;p=osm%2Ftests.git diff --git a/robot-systest/testsuite/sa_02-vnf_with_vim_metrics_and_autoscaling.robot b/robot-systest/testsuite/sa_02-vnf_with_vim_metrics_and_autoscaling.robot index 76b3229..b5910f5 100644 --- a/robot-systest/testsuite/sa_02-vnf_with_vim_metrics_and_autoscaling.robot +++ b/robot-systest/testsuite/sa_02-vnf_with_vim_metrics_and_autoscaling.robot @@ -24,10 +24,9 @@ Resource %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot Resource %{ROBOT_DEVOPS_FOLDER}/lib/prometheus_lib.robot -Variables %{ROBOT_DEVOPS_FOLDER}/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py - -Force Tags sa_02 cluster_sa daily regression sanity +Force Tags sa_02 cluster_sa daily regression sanity azure +Suite Setup Run Keyword And Ignore Error Suite Preparation Suite Teardown Run Keyword And Ignore Error Suite Cleanup @@ -72,13 +71,19 @@ Create VNF Descriptor Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}' -Get Scale-Out Threshold From VNF +Get Thresholds From VNF - ${rc} ${stdout}= Run and Return RC and Output osm vnfpkg-show ${vnfd_name} --literal | yq '.df[0]."scaling-aspect"[0]."scaling-policy"[0]."scaling-criteria"[0]."scale-out-threshold"' | tr -d \\" + ${rc} ${stdout}= Run and Return RC and Output osm vnfpkg-show ${vnfd_name} --literal | yq -r '.df[0]."scaling-aspect"[0]."scaling-policy"[0]."scaling-criteria"[0]."scale-out-threshold"' Should Be Equal As Integers ${rc} ${success_return_code} msg=${stdout} values=False ${scaleout_threshold}= Convert To Number ${stdout} Set Suite Variable ${metric_threshold} ${scaleout_threshold} - log ${metric_threshold} + Log ${metric_threshold} + + ${rc} ${stdout}= Run and Return RC and Output osm vnfpkg-show ${vnfd_name} --literal | yq -r '.df[0]."scaling-aspect"[0]."scaling-policy"[0]."threshold-time"' + Should Be Equal As Integers ${rc} ${success_return_code} msg=${stdout} values=False + ${threshold_time_value}= Convert To Number ${stdout} + Set Suite Variable ${threshold_time} ${threshold_time_value} + Log ${threshold_time} Create NS Descriptor @@ -102,7 +107,7 @@ Get VNF Id Get VNF IP Address ${ip_addr}= Get Vnf Management Ip Address ${ns_id} ${vnf_member_index} - log ${ip_addr} + Log ${ip_addr} Set Suite Variable ${vnf_ip_addr} ${ip_addr} @@ -113,7 +118,8 @@ Get VNF VIM-based Metric Before Auto-scaling Variable Should Exist ${prometheus_host} msg=Prometheus address is not available Variable Should Exist ${prometheus_port} msg=Prometheus port is not available Variable Should Exist ${metric_name} msg=Prometheus metric name is not available - ${metric_value}= Wait Until Keyword Succeeds ${prometheus_poll_retries} ${prometheus_poll_timeout} Get Metric ${prometheus_host} ${prometheus_port} ${prometheus_user} ${prometheus_password} ${metric_name} + ${metric_filter}= Set Variable ns_id=${ns_id} + ${metric_value}= Wait Until Keyword Succeeds ${prometheus_poll_retries} ${prometheus_poll_timeout} Get Metric ${prometheus_host} ${prometheus_port} ${prometheus_user} ${prometheus_password} ${metric_name} ${metric_filter} Run Keyword If ${metric_value} <= 0 Fail msg=The metric '${metric_name}' value is '${metric_value}' Run Keyword If ${metric_value} >= ${metric_threshold} Fail msg=The metric '${metric_name}' value is higher than '${metric_threshold}' before scaling @@ -121,7 +127,7 @@ Get VNF VIM-based Metric Before Auto-scaling Increase VIM-based Metric To Force Auto-scaling Variable Should Exist ${privatekey} msg=SSH private key not available - Execute Remote Command Check Rc Return Output ${vnf_ip_addr} ${username} ${password} ${privatekey} for i in {1..9}; do yes > /dev/null & done + Execute Remote Command Check Rc Return Output ${vnf_ip_addr} ${username} ${password} ${privatekey} for i in {1..9}; do yes &> /dev/null & done Wait VIM-based Metric To Exceed Threshold @@ -131,6 +137,17 @@ Wait VIM-based Metric To Exceed Threshold Wait Until Keyword Succeeds ${prometheus_poll_retries} ${prometheus_poll_timeout} Check VIM-based Metric Exceeds Threshold +Wait Threshold Time + + ${threshold_time_sleep}= Evaluate ${threshold_time} + 1 + Sleep ${threshold_time_sleep} minutes Wait scale-out threshold time plus 1 minute + + +Check VIM-based Metric Exceeds Threshold After Threshold-time + + Check VIM-based Metric Exceeds Threshold + + Get VDUs After Auto-scaling Sleep 2 minutes Wait for auto-scale to take place @@ -159,6 +176,12 @@ Delete VNF Descriptor *** Keywords *** +Suite Preparation + [Documentation] Test Suite Preparation: Setting Prometheus Testsuite Variables + + Set Testsuite Prometheus Variables + + Suite Cleanup [Documentation] Test Suite Cleanup: Deleting descriptors and NS instance @@ -173,7 +196,6 @@ Check VIM-based Metric Exceeds Threshold Variable Should Exist ${prometheus_host} msg=Prometheus address is not available Variable Should Exist ${prometheus_port} msg=Prometheus port is not available Variable Should Exist ${metric_name} msg=Prometheus metric name is not available - ${metric_value}= Get Metric ${prometheus_host} ${prometheus_port} ${prometheus_user} ${prometheus_password} ${metric_name} + ${metric_filter}= Set Variable ns_id=${ns_id} + ${metric_value}= Get Metric ${prometheus_host} ${prometheus_port} ${prometheus_user} ${prometheus_password} ${metric_name} ${metric_filter} Run Keyword If ${metric_value} <= ${metric_threshold} Fail msg=The metric '${metric_name}' value is '${metric_value}' which is lower than '${metric_threshold}' - -