Revert "Feature 11001: Robot framework linting for E2E tests"
[osm/tests.git] / robot-systest / testsuite / sa_07-alarms_from_sa-related_vnfs.robot
index a26ca11..d79a762 100644 (file)
@@ -1,4 +1,3 @@
-*** 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
@@ -11,7 +10,6 @@
 #   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-07] Events or alarms coming from SA-related VNFs in the NS.
 
 *** Settings ***
 Documentation   [SA-07] Events or alarms coming from SA-related VNFs in the NS.
 
@@ -20,13 +18,13 @@ Library   String
 Library   Collections
 Library   SSHLibrary
 
 Library   Collections
 Library   SSHLibrary
 
-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
+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
 
 
-Test Tags   sa_07   cluster_sa   daily   regression
+Force Tags   sa_07   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
@@ -34,159 +32,179 @@ 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}   cirros_alarm_vnf
-${VNFD_NAME}   cirros_alarm-vnf
-${VNFD_FILE}   cirros_alarm_vnfd.yaml
-${NEW_VNFD_PKG}   new_cirros_alarm_vnf
-${NSD_PKG}   cirros_alarm_ns
-${NSD_NAME}   cirros_alarm-ns
+${vnfd_pkg}   cirros_alarm_vnf
+${vnfd_name}   cirros_alarm-vnf
+${vnfd_file}   cirros_alarm_vnfd.yaml
+${new_vnfd_pkg}   new_cirros_alarm_vnf
+${nsd_pkg}   cirros_alarm_ns
+${nsd_name}   cirros_alarm-ns
 
 # NS instance name and id
 
 # NS instance name and id
-${NS_ID}   ${EMPTY}
-${NS_NAME}   sa_07-alarm_test
+${ns_id}   ${EMPTY}
+${ns_name}   sa_07-alarm_test
 
 # Webhook NS and VNF descriptor package folder and ids
 
 # Webhook NS and VNF descriptor package folder and ids
-${WS_VNFD_PKG}   hackfest_basic_vnf
-${WS_NSD_PKG}   hackfest_basic_ns
-${WS_VNFD_NAME}   hackfest_basic-vnf
-${WS_NSD_NAME}   hackfest_basic-ns
+${ws_vnfd_pkg}   hackfest_basic_vnf
+${ws_nsd_pkg}   hackfest_basic_ns
+${ws_vnfd_name}   hackfest_basic-vnf
+${ws_nsd_name}   hackfest_basic-ns
 
 # Webhook NS instance name and id
 
 # Webhook NS instance name and id
-${WS_NS_ID}   ${EMPTY}
-${WS_NS_NAME}   sa_07-webhook_service_test
+${ws_ns_id}   ${EMPTY}
+${ws_ns_name}   sa_07-webhook_service_test
 
 # Webhook NS Variables
 
 # Webhook NS Variables
-${WS_VNF_MEMBER_INDEX}   vnf
-${WS_VNF_IP_ADDR}   ${EMPTY}
-${WS_LOG_FILE}   webhook.log
-${WS_PORT}   5212
-${WS_ALARM_MSG}   notify_alarm
+${ws_vnf_member_index}   vnf
+${ws_vnf_ip_addr}   ${EMPTY}
+${ws_log_file}   webhook.log
+${ws_port}   5212
+${ws_alarm_msg}   notify_alarm
 
 # 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
-${USERNAME}   ubuntu
-${PASSWORD}   ${EMPTY}
+${publickey}   %{HOME}/.ssh/id_rsa.pub
+${privatekey}   %{HOME}/.ssh/id_rsa
+${username}   ubuntu
+${password}   ${EMPTY}
 
 # 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_NAME}   osm_cpu_utilization
+${metric_name}   osm_cpu_utilization
 
 
-${SUCCESS_RETURN_CODE}   0
+${success_return_code}   0
 
 
 *** Test Cases ***
 Create Webhook Service VNF Descriptor
 
 
 *** Test Cases ***
 Create Webhook Service VNF Descriptor
-    [Documentation]   Upload VNF package with a webhook service for the testsuite.
-    Create VNFD   '%{PACKAGES_FOLDER}/${WS_VNFD_PKG}'
+
+    Create VNFD   '%{PACKAGES_FOLDER}/${ws_vnfd_pkg}'
+
 
 Create Webhook Service NS Descriptor
 
 Create Webhook Service NS Descriptor
-    [Documentation]   Upload NS package with a webhook service for the testsuite.
-    Create NSD   '%{PACKAGES_FOLDER}/${WS_NSD_PKG}'
+
+    Create NSD   '%{PACKAGES_FOLDER}/${ws_nsd_pkg}'
+
 
 Instantiate Webhook Service Network Service
 
 Instantiate Webhook Service Network Service
-    [Documentation]   Instantiate NS with the webhook for the testsuite.
-    ${id}=   Create Network Service   ${WS_NSD_NAME}   %{VIM_TARGET}   ${WS_NS_NAME}   ${NS_CONFIG}   ${PUBLICKEY}
-    Set Suite Variable   ${WS_NS_ID}   ${id}
+
+    ${id}=   Create Network Service   ${ws_nsd_name}   %{VIM_TARGET}   ${ws_ns_name}   ${ns_config}   ${publickey}
+    Set Suite Variable   ${ws_ns_id}   ${id}
+
 
 Get Webhook Service VNF IP Address
 
 Get Webhook Service VNF IP Address
-    [Documentation]   Get the mgmt IP address of the VNF offering the webhook service.
-    ${ip_addr}=   Get Vnf Management Ip Address   ${WS_NS_ID}   ${WS_VNF_MEMBER_INDEX}
+
+    ${ip_addr}=   Get Vnf Management Ip Address   ${ws_ns_id}   ${ws_vnf_member_index}
     Log   ${ip_addr}
     Log   ${ip_addr}
-    Set Suite Variable   ${WS_VNF_IP_ADDR}   ${ip_addr}
+    Set Suite Variable   ${ws_vnf_ip_addr}   ${ip_addr}
+
 
 Start Webhook Service
 
 Start Webhook Service
-    [Documentation]   Launch simple command in webhook VNF to listen to notifications.
-    Variable Should Exist   ${PRIVATEKEY}   msg=SSH private key not available
+
+    Variable Should Exist   ${privatekey}   msg=SSH private key not available
     Sleep   40 seconds   Wait for SSH daemon to be up
     Sleep   40 seconds   Wait for SSH daemon to be up
-    ${stdout}=   Execute Remote Command Check Rc Return Output   ${WS_VNF_IP_ADDR}   ${USERNAME}   ${PASSWORD}   ${PRIVATEKEY}   while true; do { echo -e 'HTTP/1.0 200 OK\r\nContent-Length: 0\r\n\r\n'; test; } | nc -l '${WS_PORT}'; done > '${WS_LOG_FILE}' 2>&1 &
-    Log   ${stdout}
+    ${stdout}=   Execute Remote Command Check Rc Return Output   ${ws_vnf_ip_addr}   ${username}   ${password}   ${privatekey}   while true; do { echo -e 'HTTP/1.0 200 OK\r\nContent-Length: 0\r\n\r\n'; test; } | nc -l '${ws_port}'; done > '${ws_log_file}' 2>&1 &
+
 
 Create VNF Descriptor
 
 Create VNF Descriptor
-    [Documentation]   Upload VNF package for the testsuite.
-    ${rc}   ${stdout}=   Run And Return RC And Output   mkdir '%{PACKAGES_FOLDER}/${NEW_VNFD_PKG}' && WEBHOOK_URL="http://${WS_VNF_IP_ADDR}:${WS_PORT}" envsubst < '%{PACKAGES_FOLDER}/${VNFD_PKG}'/'${VNFD_FILE}' > '%{PACKAGES_FOLDER}/${NEW_VNFD_PKG}'/'${VNFD_FILE}'
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   mkdir '%{PACKAGES_FOLDER}/${new_vnfd_pkg}' && WEBHOOK_URL="http://${ws_vnf_ip_addr}:${ws_port}" envsubst < '%{PACKAGES_FOLDER}/${vnfd_pkg}'/'${vnfd_file}' > '%{PACKAGES_FOLDER}/${new_vnfd_pkg}'/'${vnfd_file}'
     Log   ${stdout}
     Log   ${stdout}
-    Should Be Equal As Integers   ${rc}   ${SUCCESS_RETURN_CODE}
-    Create VNFD   '%{PACKAGES_FOLDER}/${NEW_VNFD_PKG}'
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    Create VNFD   '%{PACKAGES_FOLDER}/${new_vnfd_pkg}'
+
 
 Create NS Descriptor
 
 Create NS Descriptor
-    [Documentation]   Upload NS package for the testsuite.
-    Create NSD   '%{PACKAGES_FOLDER}/${NSD_PKG}'
+
+    Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
 
 Instantiate Network Service
 
 Instantiate Network Service
-    [Documentation]   Instantiate the main NS for the testsuite.
-    ${id}=   Create Network Service   ${NSD_NAME}   %{VIM_TARGET}   ${NS_NAME}   ${NS_CONFIG}   ${PUBLICKEY}
-    Set Suite Variable   ${NS_ID}   ${id}
+
+    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
+    Set Suite Variable   ${ns_id}   ${id}
+
 
 Get Alarm Metric
 
 Get Alarm Metric
-    [Documentation]   Check that the expected metric is 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_NAME}   msg=Prometheus metric name is not available
-    ${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}
-    IF   ${metric_value} <= 0   Fail   msg=The metric '${METRIC_NAME}' value is '${metric_value}'
+
+    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_name}   msg=Prometheus metric name is not available
+    ${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}'
+
 
 Check Alarms Were Received
 
 Check Alarms Were Received
-    [Documentation]   Check in the webhook VNF that the notification is received.
-    Wait Until Keyword Succeeds   6 times   40 seconds   Execute Remote Command Check Rc Return Output   ${WS_VNF_IP_ADDR}   ${USERNAME}   ${PASSWORD}   ${PRIVATEKEY}   cat '${WS_LOG_FILE}' | grep '${WS_ALARM_MSG}' | grep '${NS_NAME}'
+
+    Wait Until Keyword Succeeds   6 times   40 seconds   Execute Remote Command Check Rc Return Output   ${ws_vnf_ip_addr}   ${username}   ${password}   ${privatekey}   cat '${ws_log_file}' | grep '${ws_alarm_msg}' | grep '${ns_name}'
+
 
 Delete NS Instance
 
 Delete NS Instance
-    [Documentation]   Delete main NS instance.
     [Tags]   cleanup
     [Tags]   cleanup
-    Delete NS   ${NS_NAME}
+
+    Delete NS   ${ns_name}
+
 
 Delete NS Descriptor
 
 Delete NS Descriptor
-    [Documentation]   Delete main NS package.
     [Tags]   cleanup
     [Tags]   cleanup
-    Delete NSD   ${NSD_NAME}
+
+    Delete NSD   ${nsd_name}
+
 
 Delete VNF Descriptor
 
 Delete VNF Descriptor
-    [Documentation]   Delete main VNF package.
     [Tags]   cleanup
     [Tags]   cleanup
-    Delete VNFD   ${VNFD_NAME}
+
+    Delete VNFD   ${vnfd_name}
+
 
 Delete Webhook Service NS Instance
 
 Delete Webhook Service NS Instance
-    [Documentation]   Delete NS instance for the webhook.
     [Tags]   cleanup
     [Tags]   cleanup
-    Delete NS   ${WS_NS_NAME}
+
+    Delete NS   ${ws_ns_name}
+
 
 Delete Webhook Service NS Descriptor
 
 Delete Webhook Service NS Descriptor
-    [Documentation]   Delete NS package for the webhook.
     [Tags]   cleanup
     [Tags]   cleanup
-    Delete NSD   ${WS_NSD_NAME}
+
+    Delete NSD   ${ws_nsd_name}
+
 
 Delete Webhook Service VNF Descriptor
 
 Delete Webhook Service VNF Descriptor
-    [Documentation]   Delete VNF package for the webhook.
     [Tags]   cleanup
     [Tags]   cleanup
-    Delete VNFD   ${WS_VNFD_NAME}
+
+    Delete VNFD   ${ws_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   ${WS_NS_NAME}
-    Run Keyword If Any Tests Failed   Delete NSD   ${WS_NSD_NAME}
-    Run Keyword If Any Tests Failed   Delete VNFD   ${WS_VNFD_NAME}
-    Delete Temporary Descriptor Folder   '%{PACKAGES_FOLDER}/${NEW_VNFD_PKG}'
+
+    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   ${ws_ns_name}
+    Run Keyword If Any Tests Failed   Delete NSD   ${ws_nsd_name}
+    Run Keyword If Any Tests Failed   Delete VNFD   ${ws_vnfd_name}
+    Delete Temporary Descriptor Folder   '%{PACKAGES_FOLDER}/${new_vnfd_pkg}'
+
 
 Delete Temporary Descriptor Folder
     [Documentation]   Removes the temporary package folder created for the test
     [Arguments]   ${folder_name}
 
 Delete Temporary Descriptor Folder
     [Documentation]   Removes the temporary package folder created for the test
     [Arguments]   ${folder_name}
-    ${rc}   ${stdout}=   Run And Return RC And Output   rm -rf '${folder_name}'
-    Log   ${rc},${stdout}
+    ${rc}   ${stdout}=   Run and Return RC and Output   rm -rf '${folder_name}'
+    Log   ${stdout}
+
+