diff options
Diffstat (limited to 'csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot')
-rw-r--r-- | csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot | 401 |
1 files changed, 401 insertions, 0 deletions
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 new file mode 100644 index 00000000..084c1556 --- /dev/null +++ b/csit/tests/sdnr/functional/devicemanager/_templates/10_lifecycleNetconfSsh/devicemanagerlifecycle_netconf.robot @@ -0,0 +1,401 @@ +*** Settings *** +Documentation devicemanager lifecycle via netconf only +... Verify network element connection +... Actions are triggered via server interface as used by ODLUX +... Status verifcation is done by dataprovider interface and restconf mdsal +... to detect asynchron connection status entries +Default Tags dm-lifecycle netconf ssh + +Library ConnectLibrary +Library SDNCBaseLibrary +Library SDNCDataProvider +Library SDNCRestconfLibrary +Library ConnectApp +Library FaultManagementApp +Library FaultManagementAppBackend +Library Collections +Library DateTime +Library utility + +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 +${HOST} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][NETCONF_HOST] +${PORT} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][BASE_PORT] +${USERNAME} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][USER] +${PASSWORD} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][PASSWORD] +${HOST_NOK} 192.168.240.240 +${PORT_NOK} ${4711} +${USERNAME_NOK} wrong-username +${PASSWORD_NOK} wrong-password +${CORE_MODEL} Unsupported +${UNDEFINED} undefined +${DEVICE_TO_DELETE} devices + +# set log level https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html + + +*** Test Cases *** + +Add network element connection + [Documentation] Add network-function to device manager + ... verify correct detection of specific device manager + ... verify correct entries in connection log + [Tags] smoke + + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ok + 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 + Log To Console ${start_time} + ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT} ${USERNAME} ${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} + ... node-id=${DEVICE_NAME_TEST} + ... is-required=${True} + ... status=Connected + ... host=${HOST} + ... port=${PORT} + ... core-model-capability=${CORE_MODEL} + ... device-type=${DEVICE_TYPE_GUI} + # Check connection status log entries + Sleep 1s 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} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Connected 1 msg=wrong connection log entries for Connected state + Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state + +Retrieve yang capabilities from network element + [Documentation] get yang capabilities from network element and compare with reference file + [Tags] smoke netconf yang + + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ok + ${yang_capabilities} = get_yang_capabilities_as_list node_id=${DEVICE_NAME_TEST} + Log ${yang_capabilities} + ${is_yang_correct} = compare_yang_capability_list_to_file ${yang_capabilities} ${YANG_CAPABILITIES_FILE} + 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 + ... 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ok + ConnectApp.Remove network element connection ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should be equal connection status until time ${DEVICE_NAME_TEST} not existing + SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10} + + # Check connection status log entries + Sleep 6s 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} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state + +Add network element connection wrong port + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-port-nok + ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT_NOK} ${USERNAME} ${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} + ... node-id=${DEVICE_NAME_TEST} + ... is-required=${True} + ... status=Connecting + ... host=${HOST} + ... port=${PORT_NOK} + # Check connection status log entries + Sleep 1s 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} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Dictionary Should Not Contain Key ${conn_status_list_stats} Unmounted + +Remove network element connection wrong port + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-port-nok + ConnectApp.Remove network element connection ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should be equal connection status until time ${DEVICE_NAME_TEST} not existing + 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 + ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted + +Add network element connection wrong ip + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ip-nok + ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST_NOK} ${PORT} ${USERNAME} ${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} + ... node-id=${DEVICE_NAME_TEST} + ... is-required=${True} + ... status=Connecting + ... host=${HOST_NOK} + ... port=${PORT} + # Check connection status log entries + Sleep 1s 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} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Dictionary Should Not Contain Key ${conn_status_list_stats} Unmounted + +Remove network element connection wrong ip + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ip-nok + ConnectApp.Remove network element connection ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should be equal connection status until time ${DEVICE_NAME_TEST} not existing + 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 + ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted + +Add network element connection and change is required to false + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required + ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT} ${USERNAME} ${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} + ... node-id=${DEVICE_NAME_TEST} + ... is-required=${True} + + ConnectApp.edit network element connection ${DEVICE_NAME_TEST} ${False} + Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST} + ... node-id=${DEVICE_NAME_TEST} + ... is-required=${False} + # Check connection status log entries + Sleep 1s 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} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + 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 + +Edit network element connection: is required to true + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required + ConnectApp.edit network element connection ${DEVICE_NAME_TEST} ${True} + Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST} + ... node-id=${DEVICE_NAME_TEST} + ... is-required=${True} + # Check connection status log entries + Sleep 1s 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} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Unmounted + #Dictionary Should Not Contain Key ${conn_status_list_stats} Connecting + +Unmount network element + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required + ConnectApp.unmount_network_element ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Disconnected + 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 + ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted + #Dictionary Should Not Contain Key ${conn_status_list_stats} Connecting + + +Mount network element + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required + ConnectApp.mount_network_element ${DEVICE_NAME_TEST} + 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} + + # Check connection status log entries + Sleep 1s 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} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + 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 + +Remove network element connection + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required + ConnectApp.remove network element connection ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} not existing + 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 + ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected + Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted + #Dictionary Should Not Contain Key ${conn_status_list_stats} Connecting + +Remove unmounted network element connection + [Tags] prio2 + 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 + Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required-true + ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT} ${USERNAME} ${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} + + ConnectApp.unmount_network_element ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Disconnected + Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10} + + ConnectApp.remove_network_element_connection ${DEVICE_NAME_TEST} + Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} not existing + + # Check connection status log entries + Sleep 1s 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} + ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST} + Log ${connection_status_list_debug} + ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST} + ... timestamp=>=${start_time} + Log ${connection_status_list_debug_backend} + ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status + Log Dictionary ${conn_status_list_stats} + Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state + 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 Key ${conn_status_list_stats} Unmounted msg=no connection log entries for Unmounted state + ConnectApp.Remove Network Element Connection ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']} + + |