From 9d8ae6d68ea8427052ec45326e22f3a2ea7ed081 Mon Sep 17 00:00:00 2001
From: Alexander Dehn <alexander.dehn@highstreet-technologies.com>
Date: Thu, 28 Apr 2022 16:14:09 +0000
Subject: Refactore SDNC/R robot test suite for K-Release

add improvements SDNC ready state detection

Issue-ID: SDNC-1682
Signed-off-by: Alexander Dehn <alexander.dehn@highstreet-technologies.com>
Change-Id: I6b9829b5187f9c27ff9c2fab6b9a7381ce563b25

Former-commit-id: 83da3b4380d992d5891ed8e35b305358db9af4ff
---
 .../devicemanagerlifecycle_netconf.robot           | 42 ++++++++---
 .../20_pnfRegistration/pnfRegistration.robot       |  8 +-
 .../alarmNotificationVes.robot                     |  8 +-
 .../alarmNotificationNetconf.robot                 | 10 +--
 .../tests/sdnr/healthcheck/20_healthcheckSUT.robot | 88 +++++++++++-----------
 5 files changed, 87 insertions(+), 69 deletions(-)

(limited to 'csit/tests/sdnr')

diff --git a/csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot b/csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot
index 084c1556..be94102a 100644
--- a/csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot
+++ b/csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot
@@ -21,6 +21,7 @@ Suite Setup  global suite setup    &{GLOBAL_SUITE_SETUP_CONFIG}
 Suite Teardown  global suite teardown
 
 
+
 *** Variables ***
 ${DEVICE_TYPE}  DEFINE_IN_INIT
 ${DEVICE_NAME}  robot-${DEVICE_TYPE}-sim-lifecycle
@@ -42,8 +43,8 @@ ${DEVICE_TO_DELETE}  devices
 *** Test Cases ***
 
 Add network element connection
-  [Documentation]  Add network-function to device manager 
-  ...              verify correct detection of specific device manager 
+  [Documentation]  Add network-function to device manager
+  ...              verify correct detection of specific device manager
   ...              verify correct entries in connection log
   [Tags]  smoke
 
@@ -52,7 +53,8 @@ Add network element connection
   ${start_time} =  Get Current Date  time_zone=UTC  result_format=%Y-%m-%dT%H:%M:%S.%f
   Sleep  1s  reason=insert time delay to account for time differences of container and host
   Log To Console  ${start_time}
-  ConnectApp.Add network element connection    ${DEVICE_NAME_TEST}    ${True}    ${HOST}    ${PORT}    ${USERNAME}    ${PASSWORD}
+  ConnectApp.Add network element connection    device_name=${DEVICE_NAME_TEST}    is_required=${True}
+  ...  host=${HOST}    port=${PORT}    username=${USERNAME}    password=${PASSWORD}
   Run Keyword And Continue On Failure  ConnectApp.Should Be Equal connection status until time  ${DEVICE_NAME_TEST}  Connected
   SDNCRestconfLibrary.should_be_equal_connection_status_until_time  ${DEVICE_NAME_TEST}  connected  time_in_sec=${10}
   Run Keyword And Continue On Failure  ConnectApp.should_be_equal_network_element_connection_details  ${DEVICE_NAME_TEST}
@@ -84,11 +86,11 @@ Retrieve yang capabilities from network element
   Should be True  ${is_yang_correct}  msg=Yang capabilities are different from expected list
 
 Remove network element connection
-  [Documentation]  remove network element connection from device manager 
-  ...              verify if all ressources are removed 
+  [Documentation]  remove network element connection from device manager
+  ...              verify if all ressources are removed
   ...              verify correct entries in connection log
   [Tags]  smoke
-  
+
   Sleep  1s  reason=insert time gap in log files
   ${start_time} =  Get Current Date  time_zone=UTC  result_format=%Y-%m-%dT%H:%M:%S.%f
   Sleep  1s  reason=insert time delay to account for time differences of container and host
@@ -117,7 +119,8 @@ Add network element connection wrong port
   ${start_time} =  Get Current Date  time_zone=UTC  result_format=%Y-%m-%dT%H:%M:%S.%f
   Sleep  1s  reason=insert time delay to account for time differences of container and host
   Set Test Variable  ${DEVICE_NAME_TEST}  ${DEVICE_NAME}-port-nok
-  ConnectApp.Add network element connection    ${DEVICE_NAME_TEST}    ${True}    ${HOST}    ${PORT_NOK}    ${USERNAME}    ${PASSWORD}
+  ConnectApp.Add network element connection    device_name=${DEVICE_NAME_TEST}    is_required=${True}    host=${HOST}
+  ...  port=${PORT_NOK}    username=${USERNAME}    password=${PASSWORD}
   Run Keyword And Continue On Failure  ConnectApp.Should Be Equal connection status until time  ${DEVICE_NAME_TEST}  Connecting
   SDNCRestconfLibrary.should_be_equal_connection_status_until_time  ${DEVICE_NAME_TEST}  connecting  time_in_sec=${10}
   Run Keyword And Continue On Failure  ConnectApp.should_be_equal_network_element_connection_details  ${DEVICE_NAME_TEST}
@@ -174,7 +177,8 @@ Add network element connection wrong ip
   ${start_time} =  Get Current Date  time_zone=UTC  result_format=%Y-%m-%dT%H:%M:%S.%f
   Sleep  1s  reason=insert time delay to account for time differences of container and host
   Set Test Variable  ${DEVICE_NAME_TEST}  ${DEVICE_NAME}-ip-nok
-  ConnectApp.Add network element connection    ${DEVICE_NAME_TEST}    ${True}    ${HOST_NOK}    ${PORT}    ${USERNAME}    ${PASSWORD}
+  ConnectApp.Add network element connection    device_name=${DEVICE_NAME_TEST}    is_required=${True}    host=${HOST_NOK}
+  ...  port=${PORT}    username=${USERNAME}    password=${PASSWORD}
   Run Keyword And Continue On Failure  ConnectApp.Should Be Equal connection status until time  ${DEVICE_NAME_TEST}  Connecting
   Run Keyword And Continue On Failure  SDNCRestconfLibrary.should_be_equal_connection_status_until_time  ${DEVICE_NAME_TEST}  connecting  time_in_sec=${10}
   Run Keyword And Continue On Failure  ConnectApp.should_be_equal_network_element_connection_details  ${DEVICE_NAME_TEST}
@@ -231,7 +235,8 @@ Add network element connection and change is required to false
   ${start_time} =  Get Current Date  time_zone=UTC  result_format=%Y-%m-%dT%H:%M:%S.%f
   Sleep  1s  reason=insert time delay to account for time differences of container and host
   Set Test Variable  ${DEVICE_NAME_TEST}  ${DEVICE_NAME}-required
-  ConnectApp.Add network element connection    ${DEVICE_NAME_TEST}    ${True}    ${HOST}    ${PORT}    ${USERNAME}    ${PASSWORD}
+  ConnectApp.Add network element connection    device_name=${DEVICE_NAME_TEST}    is_required=${True}    host=${HOST}
+  ...  port=${PORT}    username=${USERNAME}    password=${PASSWORD}
   Run Keyword And Continue On Failure  ConnectApp.Should Be Equal connection status until time  ${DEVICE_NAME_TEST}  Connected
   SDNCRestconfLibrary.should_be_equal_connection_status_until_time  ${DEVICE_NAME_TEST}  connected  time_in_sec=${10}
   Run Keyword And Continue On Failure  ConnectApp.should_be_equal_network_element_connection_details  ${DEVICE_NAME_TEST}
@@ -337,6 +342,19 @@ Mount network element
   Run Keyword And Continue On Failure  Dictionary Should Contain Item  ${conn_status_list_stats}  Connected  1  msg=wrong connection log entries for Connected state
   Run Keyword And Continue On Failure  Dictionary Should Contain Item  ${conn_status_list_stats}  Mounted  1    msg=wrong connection log entries for Mounted state
 
+Mount Nts Network Function with VALID TLS Key ID
+  IF    'DOCKER_TLS_PORT' in ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']}
+       Run Keyword And Continue On Failure  Add Network Element Connection     device_name=${DEVICE_NAME}_sim_key_0
+                                  ...  is_required=${True}
+                                  ...  host=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}
+                                  ...  port=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['DOCKER_TLS_PORT']}
+                                  ...  username=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}
+                                  ...  tls_key=ODL_private_key_0
+                                  ...  check_connection_status=Connected
+                                  ...  time_to_wait=60
+       ConnectApp.remove_network_element_connection    ${DEVICE_NAME}_sim_key_0
+  END
+
 Remove network element connection
   [Tags]  prio2
   Sleep  1s  reason=insert time gap in log files
@@ -348,7 +366,7 @@ Remove network element connection
   Run Keyword And Continue On Failure  SDNCRestconfLibrary.should_be_equal_connection_status_until_time  ${DEVICE_NAME_TEST}  not existing  time_in_sec=${10}
 
   # Check connection status log entries
-  Sleep  1s  reason=insert time gap to avoid time constrains
+  Sleep  5s  reason=insert time gap to avoid time constrains
   ${connection_status_list} =  FaultManagementApp.get_connection_log_list  node-id=${DEVICE_NAME_TEST}
                                                                      ...   timestamp=>=${start_time}
   Log  ${connection_status_list}
@@ -370,7 +388,8 @@ Remove unmounted network element connection
   ${start_time} =  Get Current Date  time_zone=UTC  result_format=%Y-%m-%dT%H:%M:%S.%f
   Sleep  1s  reason=insert time delay to account for time differences of container and host
   Set Test Variable  ${DEVICE_NAME_TEST}  ${DEVICE_NAME}-required-true
-  ConnectApp.Add network element connection    ${DEVICE_NAME_TEST}    ${True}    ${HOST}    ${PORT}    ${USERNAME}    ${PASSWORD}
+  ConnectApp.Add network element connection    device_name=${DEVICE_NAME_TEST}    is_required=${True}    host=${HOST}
+  ...  port=${PORT}    username=${USERNAME}    password=${PASSWORD}
   Run Keyword And Continue On Failure  ConnectApp.Should Be Equal connection status until time  ${DEVICE_NAME_TEST}  Connected
   Run Keyword And Continue On Failure  SDNCRestconfLibrary.should_be_equal_connection_status_until_time  ${DEVICE_NAME_TEST}  connected  time_in_sec=${10}
 
@@ -398,4 +417,3 @@ Remove unmounted network element connection
   Run Keyword And Continue On Failure  Dictionary Should Contain Key  ${conn_status_list_stats}  Unmounted  msg=no connection log entries for Unmounted state
   ConnectApp.Remove Network Element Connection    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}
 
-
diff --git a/csit/tests/sdnr/functional/devicemanager/_templates/20_pnfRegistration/pnfRegistration.robot b/csit/tests/sdnr/functional/devicemanager/_templates/20_pnfRegistration/pnfRegistration.robot
index 3fadf223..669ceb01 100644
--- a/csit/tests/sdnr/functional/devicemanager/_templates/20_pnfRegistration/pnfRegistration.robot
+++ b/csit/tests/sdnr/functional/devicemanager/_templates/20_pnfRegistration/pnfRegistration.robot
@@ -29,10 +29,10 @@ ${PNF_REGISTRATION_TIMEOUT}  180
 Setup NTS function
   [Tags]  nts  bringup
   [Documentation]  configure NTS manager to support restconf registration
-  Add Network Element Connection   ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    ${True}
-  ...  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}     ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PORT']}
-  ...  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PASSWORD']}
-  ...  Connected
+  Add Network Element Connection   device_name=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    is_required=${True}
+  ...  host=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}     port=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PORT']}
+  ...  username=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}    password=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PASSWORD']}
+  ...  check_connection_status=Connected
   SDNCRestconfLibrary.Should Be Equal Connection Status Until Time    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    Connected
 
 Start pnf ves registration from NTS function
diff --git a/csit/tests/sdnr/functional/devicemanager/_templates/21_alarmNotificationVES/alarmNotificationVes.robot b/csit/tests/sdnr/functional/devicemanager/_templates/21_alarmNotificationVES/alarmNotificationVes.robot
index 068a6b89..842a3d82 100644
--- a/csit/tests/sdnr/functional/devicemanager/_templates/21_alarmNotificationVES/alarmNotificationVes.robot
+++ b/csit/tests/sdnr/functional/devicemanager/_templates/21_alarmNotificationVES/alarmNotificationVes.robot
@@ -34,10 +34,10 @@ ${PROCESS_TIME_NOTIF}  30s
 Setup NTS function
   [Tags]  nts  bringup
   [Documentation]  add network function to trigger alarm notification via VES in next tests
-  Add Network Element Connection   ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    ${True}
-  ...  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}     ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PORT']}
-  ...  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PASSWORD']}
-  ...  Connected
+  Add Network Element Connection   device_name=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}  is_required=${True}
+  ...  host=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}     port=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PORT']}
+  ...  username=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}    password=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PASSWORD']}
+  ...  check_connection_status=Connected
   SDNCRestconfLibrary.Should Be Equal Connection Status Until Time    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    Connected
 
 Set alarm notification
diff --git a/csit/tests/sdnr/functional/devicemanager/_templates/22_alarmNotificationNETCONF/alarmNotificationNetconf.robot b/csit/tests/sdnr/functional/devicemanager/_templates/22_alarmNotificationNETCONF/alarmNotificationNetconf.robot
index df023c41..b0b8f0e1 100644
--- a/csit/tests/sdnr/functional/devicemanager/_templates/22_alarmNotificationNETCONF/alarmNotificationNetconf.robot
+++ b/csit/tests/sdnr/functional/devicemanager/_templates/22_alarmNotificationNETCONF/alarmNotificationNetconf.robot
@@ -43,10 +43,10 @@ ${TIME_PERIOD_SEND_NOTIF}  22s
 Setup NTS function
   [Tags]  nts  bringup
   [Documentation]  configure NTS manager to support restconf registration
-  Add Network Element Connection   ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    ${True}
-  ...  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}     ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PORT']}
-  ...  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PASSWORD']}
-  ...  Connected
+  Add Network Element Connection   device_name=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}  is_required=${True}
+  ...  host=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['IP']}     port=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PORT']}
+  ...  username=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['USER']}    password=${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['PASSWORD']}
+  ...  check_connection_status=Connected
   SDNCRestconfLibrary.Should Be Equal Connection Status Until Time    ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}    Connected
 
 Set alarm notification
@@ -63,7 +63,7 @@ Set alarm notification
   ${alarm_status_start} =  FaultManagementApp.get_alarm_status
   Set Global Variable  ${alarm_status_start}
   NTSimManagerNG.set_fault_delay_list_nf  ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}  delay-period=${fault_delay}
-  
+
   Log  Send notification every ${FAULT_DELAY} sec for ${TIME_PERIOD_SEND_NOTIF}  level=INFO  html=False  console=True  repr=False
   Sleep  ${TIME_PERIOD_SEND_NOTIF}
 
diff --git a/csit/tests/sdnr/healthcheck/20_healthcheckSUT.robot b/csit/tests/sdnr/healthcheck/20_healthcheckSUT.robot
index e11fbf03..2d29c9f0 100644
--- a/csit/tests/sdnr/healthcheck/20_healthcheckSUT.robot
+++ b/csit/tests/sdnr/healthcheck/20_healthcheckSUT.robot
@@ -1,44 +1,44 @@
-*** Settings ***
-Documentation  healthcheck of system under test: sdnc server, sdnrdb are available
-Library  ConnectLibrary
-Library  SDNCBaseLibrary
-Library  Collections
-Library  ElasticSearchLibrary
-Library  ConnectApp
-Library  RequestsLibrary
-
-Suite Setup  global suite setup    &{GLOBAL_SUITE_SETUP_CONFIG}
-Suite Teardown  global suite teardown
-
-*** Variables ***
-&{headers}  Content-Type=application/json  Authorization=Basic
-
-*** Test Cases ***
-Test Is SDNR Node Available
-    ${server_status}=    Server Is Ready
-    should be true    ${server_status}
-
-Test Is SDNRDB Available
-    ${es_version_info}=    Get Sdnrdb Version Info As Dict
-    ${length_of_response}=    Get Length    ${es_version_info}
-    should be true    ${length_of_response}>${0}
-
-Test Is SDNRDB Initialized
-    ${res}=  Check Aliases
-    Log  ${res}  level=INFO  html=False  console=False  repr=False
-
-Test Is VES Collector available
-    # curl -k -u sample1:sample1 https://172.40.0.1:8443
-    ${auth}=  Create List  ${VESCOLLECTOR}[USERNAME]  ${VESCOLLECTOR}[PASSWORD]
-    ${IPV6_ENABLED}=  Get Variable Value    ${ENABLE_IPV6}  ${False}
-    Log To Console    ${VESCOLLECTOR}[SCHEME]://[${VESCOLLECTOR}[IP]]:${VESCOLLECTOR}[PORT]
-    IF    ${IPV6_ENABLED} != ${True}
-        RequestsLibrary.Create Session  alias=ves  url=${VESCOLLECTOR}[SCHEME]://${VESCOLLECTOR}[IP]:${VESCOLLECTOR}[PORT]  headers=${headers}  auth=${auth}
-    ELSE
-        RequestsLibrary.Create Session  alias=ves  url=${VESCOLLECTOR}[SCHEME]://[${VESCOLLECTOR}[IP]]:${VESCOLLECTOR}[PORT]  headers=${headers}  auth=${auth}
-    END
-    ${resp}=  RequestsLibrary.GET On Session  ves  /
-    Should Be Equal As Strings  ${resp.text}  Welcome to VESCollector
-    Should Be Equal As Strings  ${resp.status_code}  200
-    RequestsLibrary.Delete All Sessions
-
+*** Settings ***
+Documentation  healthcheck of system under test: sdnc server, sdnrdb are available
+Library  ConnectLibrary
+Library  SDNCBaseLibrary
+Library  Collections
+Library  ElasticSearchLibrary
+Library  ConnectApp
+Library  RequestsLibrary
+
+Suite Setup  global suite setup    &{GLOBAL_SUITE_SETUP_CONFIG}
+Suite Teardown  global suite teardown
+
+*** Variables ***
+&{headers}  Content-Type=application/json  Authorization=Basic
+
+*** Test Cases ***
+Test Is SDNR Node Available
+    ${server_status}=    Server Is Ready
+    should be true    ${server_status}
+
+Test Is SDNRDB Available
+    ${es_version_info}=    Get Sdnrdb Version Info As Dict
+    ${length_of_response}=    Get Length    ${es_version_info}
+    should be true    ${length_of_response}>${0}
+
+Test Is SDNRDB Initialized
+    ${res}=  Check Aliases
+    Log  ${res}  level=INFO  html=False  console=False  repr=False
+
+Test Is VES Collector available
+    # curl -k -u sample1:sample1 https://172.40.0.1:8443
+    ${auth}=  Create List  ${VESCOLLECTOR}[USERNAME]  ${VESCOLLECTOR}[PASSWORD]
+    ${IPV6_ENABLED}=  Get Variable Value    ${ENABLE_IPV6}  ${False}
+    Log To Console    ${VESCOLLECTOR}[SCHEME]://[${VESCOLLECTOR}[IP]]:${VESCOLLECTOR}[PORT]
+    IF    ${IPV6_ENABLED} != ${True}
+        RequestsLibrary.Create Session  alias=ves  url=${VESCOLLECTOR}[SCHEME]://${VESCOLLECTOR}[IP]:${VESCOLLECTOR}[PORT]  headers=${headers}  auth=${auth}
+    ELSE
+        RequestsLibrary.Create Session  alias=ves  url=${VESCOLLECTOR}[SCHEME]://[${VESCOLLECTOR}[IP]]:${VESCOLLECTOR}[PORT]  headers=${headers}  auth=${auth}
+    END
+    ${resp}=  RequestsLibrary.GET On Session  ves  /
+    Should Be Equal As Strings  ${resp.text}  Welcome to VESCollector
+    Should Be Equal As Strings  ${resp.status_code}  200
+    RequestsLibrary.Delete All Sessions
+
-- 
cgit 1.2.3-korg