Feature 11001: Robot framework linting for E2E tests
[osm/tests.git] / robot-systest / testsuite / sa_01-vnf_with_vim_metrics.robot
index 2a98e13..871972e 100644 (file)
@@ -1,3 +1,4 @@
+*** Comments ***
 #   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
 #   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
@@ -10,6 +11,7 @@
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 
+
 *** Settings ***
 Documentation   [SA-01] VNF with VIM-based metrics.
 
 *** Settings ***
 Documentation   [SA-01] VNF with VIM-based metrics.
 
@@ -17,13 +19,13 @@ Library   OperatingSystem
 Library   String
 Library   Collections
 
 Library   String
 Library   Collections
 
-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/ssh_lib.robot
-Resource   %{ROBOT_DEVOPS_FOLDER}/lib/prometheus_lib.robot
+Resource   ../lib/vnfd_lib.resource
+Resource   ../lib/nsd_lib.resource
+Resource   ../lib/ns_lib.resource
+Resource   ../lib/ssh_lib.resource
+Resource   ../lib/prometheus_lib.resource
 
 
-Force Tags   sa_01   cluster_sa   daily   regression
+Test Tags   sa_01   cluster_sa   daily   regression
 
 Suite Setup   Run Keyword And Ignore Error   Suite Preparation
 Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
 
 Suite Setup   Run Keyword And Ignore Error   Suite Preparation
 Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
@@ -31,92 +33,81 @@ Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
 
 *** Variables ***
 # NS instantiation parameters
 
 *** Variables ***
 # NS instantiation parameters
-${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+${NS_CONFIG}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
 
 # NS and VNF descriptor package folder and ids
 
 # NS and VNF descriptor package folder and ids
-${vnfd_pkg}   hackfest_basic_metrics_vnf
-${vnfd_name}   hackfest_basic_metrics-vnf
-${nsd_pkg}   hackfest_basic_metrics_ns
-${nsd_name}   hackfest_basic-ns-metrics
+${VNFD_PKG}   hackfest_basic_metrics_vnf
+${VNFD_NAME}   hackfest_basic_metrics-vnf
+${NSD_PKG}   hackfest_basic_metrics_ns
+${NSD_NAME}   hackfest_basic-ns-metrics
 
 # NS instance name
 
 # NS instance name
-${ns_name}   sa_01-vnf_with_vim_metrics_test
+${NS_NAME}   sa_01-vnf_with_vim_metrics_test
 
 # SSH keys and username to be used
 
 # SSH keys and username to be used
-${publickey}   %{HOME}/.ssh/id_rsa.pub
-${privatekey}   %{HOME}/.ssh/id_rsa
+${PUBLICKEY}   %{HOME}/.ssh/id_rsa.pub
+${PRIVATEKEY}   %{HOME}/.ssh/id_rsa
 
 # Prometheus polling interval and retries
 
 # Prometheus polling interval and retries
-${prometheus_poll_retries}   15 times
-${prometheus_poll_timeout}   1 minute
+${PROMETHEUS_POLL_RETRIES}   15 times
+${PROMETHEUS_POLL_TIMEOUT}   1 minute
 
 # Prometheus metrics to retrieve
 
 # Prometheus metrics to retrieve
-${metric_1_name}   osm_cpu_utilization
-${metric_2_name}   osm_average_memory_utilization
+${METRIC_1_NAME}   osm_cpu_utilization
+${METRIC_2_NAME}   osm_average_memory_utilization
 
 
 *** Test Cases ***
 Create VNF Descriptor
 
 
 *** Test Cases ***
 Create VNF Descriptor
-
-    Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'
-
+    [Documentation]   Upload VNF package for the testsuite.
+    Create VNFD   '%{PACKAGES_FOLDER}/${VNFD_PKG}'
 
 Create NS Descriptor
 
 Create NS Descriptor
-
-    Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
-
+    [Documentation]   Upload NS package for the testsuite.
+    Create NSD   '%{PACKAGES_FOLDER}/${NSD_PKG}'
 
 Instantiate Network Service
 
 Instantiate Network Service
-
-    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
-    Set Suite Variable   ${ns_id}   ${id}
-
+    [Documentation]   Instantiate NS for the testsuite.
+    ${id}=   Create Network Service   ${NSD_NAME}   %{VIM_TARGET}   ${NS_NAME}   ${NS_CONFIG}   ${PUBLICKEY}
+    Set Suite Variable   ${NS_ID}   ${id}
 
 Get VNF VIM-based Metrics
 
 Get VNF VIM-based Metrics
-
-    Variable Should Exist   ${prometheus_poll_retries}   msg=Metric polling retries is not available
-    Variable Should Exist   ${prometheus_poll_timeout}   msg=Metric polling timeout is not available
-    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_1_name}   msg=Prometheus first metric name is not available
-    Variable Should Exist   ${metric_2_name}   msg=Prometheus second metric name is not available
-    ${metric_filter}=   Set Variable   ns_id=${ns_id}
-    ${metric_1_value}=   Wait Until Keyword Succeeds   ${prometheus_poll_retries}   ${prometheus_poll_timeout}   Get Metric   ${prometheus_host}   ${prometheus_port}   ${prometheus_user}   ${prometheus_password}   ${metric_1_name}   ${metric_filter}
-    Run Keyword If   ${metric_1_value} <= 0   Fail   msg=The metric '${metric_1_name}' value is '${metric_1_value}'
-    ${metric_2_value}=   Wait Until Keyword Succeeds   ${prometheus_poll_retries}   ${prometheus_poll_timeout}   Get Metric   ${prometheus_host}   ${prometheus_port}   ${prometheus_user}   ${prometheus_password}   ${metric_2_name}   ${metric_filter}
-    Run Keyword If   ${metric_2_value} <= 0   Fail   msg=The metric '${metric_2_name}' value is '${metric_2_value}'
-
+    [Documentation]   Check that the expected metrics are present in Prometheus (pushed from SA modules).
+    Variable Should Exist   ${PROMETHEUS_POLL_RETRIES}   msg=Metric polling retries is not available
+    Variable Should Exist   ${PROMETHEUS_POLL_TIMEOUT}   msg=Metric polling timeout is not available
+    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_1_NAME}   msg=Prometheus first metric name is not available
+    Variable Should Exist   ${METRIC_2_NAME}   msg=Prometheus second metric name is not available
+    ${metric_filter}=   Set Variable   ns_id=${NS_ID}
+    ${metric_1_value}=   Wait Until Keyword Succeeds   ${PROMETHEUS_POLL_RETRIES}   ${PROMETHEUS_POLL_TIMEOUT}   Get Metric   ${PROMETHEUS_HOST}   ${PROMETHEUS_PORT}   ${PROMETHEUS_USER}   ${PROMETHEUS_PASSWORD}   ${METRIC_1_NAME}   ${metric_filter}
+    IF   ${metric_1_value} <= 0   Fail   msg=The metric '${METRIC_1_NAME}' value is '${metric_1_value}'
+    ${metric_2_value}=   Wait Until Keyword Succeeds   ${PROMETHEUS_POLL_RETRIES}   ${PROMETHEUS_POLL_TIMEOUT}   Get Metric   ${PROMETHEUS_HOST}   ${PROMETHEUS_PORT}   ${PROMETHEUS_USER}   ${PROMETHEUS_PASSWORD}   ${METRIC_2_NAME}   ${metric_filter}
+    IF   ${metric_2_value} <= 0   Fail   msg=The metric '${METRIC_2_NAME}' value is '${metric_2_value}'
 
 Delete NS Instance
 
 Delete NS Instance
+    [Documentation]   Delete NS instance.
     [Tags]   cleanup
     [Tags]   cleanup
-
-    Delete NS   ${ns_name}
-
+    Delete NS   ${NS_NAME}
 
 Delete NS Descriptor
 
 Delete NS Descriptor
+    [Documentation]   Delete NS package.
     [Tags]   cleanup
     [Tags]   cleanup
-
-    Delete NSD   ${nsd_name}
-
+    Delete NSD   ${NSD_NAME}
 
 Delete VNF Descriptor
 
 Delete VNF Descriptor
+    [Documentation]   Delete VNF package.
     [Tags]   cleanup
     [Tags]   cleanup
-
-    Delete VNFD   ${vnfd_name}
+    Delete VNFD   ${VNFD_NAME}
 
 
 *** Keywords ***
 Suite Preparation
     [Documentation]   Test Suite Preparation: Setting Prometheus Testsuite Variables
 
 
 *** Keywords ***
 Suite Preparation
     [Documentation]   Test Suite Preparation: Setting Prometheus Testsuite Variables
-
     Set Testsuite Prometheus Variables
 
     Set Testsuite Prometheus Variables
 
-
 Suite Cleanup
     [Documentation]   Test Suite Cleanup: Deleting descriptors and NS instance
 Suite Cleanup
     [Documentation]   Test Suite Cleanup: Deleting descriptors and NS instance
-
-    Run Keyword If Any Tests Failed   Delete NS   ${ns_name}
-
-    Run Keyword If Any Tests Failed   Delete NSD   ${nsd_name}
-
-    Run Keyword If Any Tests Failed   Delete VNFD   ${vnfd_name}
+    Run Keyword If Any Tests Failed   Delete NS   ${NS_NAME}
+    Run Keyword If Any Tests Failed   Delete NSD   ${NSD_NAME}
+    Run Keyword If Any Tests Failed   Delete VNFD   ${VNFD_NAME}