2 Documentation devicemanager lifecycle via netconf only
3 ... Verify network element connection
4 ... Actions are triggered via server interface as used by ODLUX
5 ... Status verifcation is done by dataprovider interface and restconf mdsal
6 ... to detect asynchron connection status entries
7 Default Tags dm-lifecycle netconf ssh
10 Library SDNCBaseLibrary
11 Library SDNCDataProvider
12 Library SDNCRestconfLibrary
14 Library FaultManagementApp
15 Library FaultManagementAppBackend
20 Suite Setup global suite setup &{GLOBAL_SUITE_SETUP_CONFIG}
21 Suite Teardown global suite teardown
25 ${DEVICE_TYPE} DEFINE_IN_INIT
26 ${DEVICE_NAME} robot-${DEVICE_TYPE}-sim-lifecycle
27 ${HOST} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][NETCONF_HOST]
28 ${PORT} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][BASE_PORT]
29 ${USERNAME} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][USER]
30 ${PASSWORD} ${NETWORK_FUNCTIONS}[${DEVICE_TYPE}][PASSWORD]
31 ${HOST_NOK} 192.168.240.240
33 ${USERNAME_NOK} wrong-username
34 ${PASSWORD_NOK} wrong-password
35 ${CORE_MODEL} Unsupported
36 ${UNDEFINED} undefined
37 ${DEVICE_TO_DELETE} devices
39 # set log level https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html
44 Add network element connection
45 [Documentation] Add network-function to device manager
46 ... verify correct detection of specific device manager
47 ... verify correct entries in connection log
50 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ok
51 Sleep 1s reason=insert time gap in log files
52 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
53 Sleep 1s reason=insert time delay to account for time differences of container and host
54 Log To Console ${start_time}
55 ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT} ${USERNAME} ${PASSWORD}
56 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Connected
57 SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} connected time_in_sec=${10}
58 Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST}
59 ... node-id=${DEVICE_NAME_TEST}
60 ... is-required=${True}
64 ... core-model-capability=${CORE_MODEL}
65 ... device-type=${DEVICE_TYPE_GUI}
66 # Check connection status log entries
67 Sleep 1s reason=insert time gap to avoid time constrains
68 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
69 ... timestamp=>=${start_time}
70 Log ${connection_status_list}
71 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
72 Log Dictionary ${conn_status_list_stats}
73 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Connected 1 msg=wrong connection log entries for Connected state
74 Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state
76 Retrieve yang capabilities from network element
77 [Documentation] get yang capabilities from network element and compare with reference file
78 [Tags] smoke netconf yang
80 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ok
81 ${yang_capabilities} = get_yang_capabilities_as_list node_id=${DEVICE_NAME_TEST}
82 Log ${yang_capabilities}
83 ${is_yang_correct} = compare_yang_capability_list_to_file ${yang_capabilities} ${YANG_CAPABILITIES_FILE}
84 Should be True ${is_yang_correct} msg=Yang capabilities are different from expected list
86 Remove network element connection
87 [Documentation] remove network element connection from device manager
88 ... verify if all ressources are removed
89 ... verify correct entries in connection log
92 Sleep 1s reason=insert time gap in log files
93 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
94 Sleep 1s reason=insert time delay to account for time differences of container and host
95 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ok
96 ConnectApp.Remove network element connection ${DEVICE_NAME_TEST}
97 Run Keyword And Continue On Failure ConnectApp.Should be equal connection status until time ${DEVICE_NAME_TEST} not existing
98 SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10}
100 # Check connection status log entries
101 Sleep 6s reason=insert time gap to avoid time constrains
102 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
103 ... timestamp=>=${start_time}
104 Log ${connection_status_list}
105 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
106 Log ${connection_status_list_debug}
107 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
108 ... timestamp=>=${start_time}
109 Log ${connection_status_list_debug_backend}
110 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
111 Log Dictionary ${conn_status_list_stats}
112 Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state
114 Add network element connection wrong port
116 Sleep 1s reason=insert time gap in log files
117 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
118 Sleep 1s reason=insert time delay to account for time differences of container and host
119 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-port-nok
120 ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT_NOK} ${USERNAME} ${PASSWORD}
121 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Connecting
122 SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} connecting time_in_sec=${10}
123 Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST}
124 ... node-id=${DEVICE_NAME_TEST}
125 ... is-required=${True}
126 ... status=Connecting
129 # Check connection status log entries
130 Sleep 1s reason=insert time gap to avoid time constrains
131 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
132 ... timestamp=>=${start_time}
133 Log ${connection_status_list}
134 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
135 Log Dictionary ${conn_status_list_stats}
136 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
137 Log ${connection_status_list_debug}
138 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
139 ... timestamp=>=${start_time}
140 Log ${connection_status_list_debug_backend}
141 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state
142 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
143 Dictionary Should Not Contain Key ${conn_status_list_stats} Unmounted
145 Remove network element connection wrong port
147 Sleep 1s reason=insert time gap in log files
148 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
149 Sleep 1s reason=insert time delay to account for time differences of container and host
150 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-port-nok
151 ConnectApp.Remove network element connection ${DEVICE_NAME_TEST}
152 Run Keyword And Continue On Failure ConnectApp.Should be equal connection status until time ${DEVICE_NAME_TEST} not existing
153 SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10}
155 # Check connection status log entries
156 Sleep 1s reason=insert time gap to avoid time constrains
157 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
158 ... timestamp=>=${start_time}
159 Log ${connection_status_list}
160 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
161 Log ${connection_status_list_debug}
162 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
163 ... timestamp=>=${start_time}
164 Log ${connection_status_list_debug_backend}
165 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
166 Log Dictionary ${conn_status_list_stats}
167 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state
168 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
169 Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted
171 Add network element connection wrong ip
173 Sleep 1s reason=insert time gap in log files
174 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
175 Sleep 1s reason=insert time delay to account for time differences of container and host
176 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ip-nok
177 ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST_NOK} ${PORT} ${USERNAME} ${PASSWORD}
178 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Connecting
179 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} connecting time_in_sec=${10}
180 Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST}
181 ... node-id=${DEVICE_NAME_TEST}
182 ... is-required=${True}
183 ... status=Connecting
186 # Check connection status log entries
187 Sleep 1s reason=insert time gap to avoid time constrains
188 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
189 ... timestamp=>=${start_time}
190 Log ${connection_status_list}
191 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
192 Log ${connection_status_list_debug}
193 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
194 ... timestamp=>=${start_time}
195 Log ${connection_status_list_debug_backend}
196 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
197 Log Dictionary ${conn_status_list_stats}
198 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state
199 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
200 Dictionary Should Not Contain Key ${conn_status_list_stats} Unmounted
202 Remove network element connection wrong ip
204 Sleep 1s reason=insert time gap in log files
205 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
206 Sleep 1s reason=insert time delay to account for time differences of container and host
207 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-ip-nok
208 ConnectApp.Remove network element connection ${DEVICE_NAME_TEST}
209 Run Keyword And Continue On Failure ConnectApp.Should be equal connection status until time ${DEVICE_NAME_TEST} not existing
210 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10}
212 # Check connection status log entries
213 Sleep 1s reason=insert time gap to avoid time constrains
214 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
215 ... timestamp=>=${start_time}
216 Log ${connection_status_list}
217 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
218 Log ${connection_status_list_debug}
219 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
220 ... timestamp=>=${start_time}
221 Log ${connection_status_list_debug_backend}
222 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
223 Log Dictionary ${conn_status_list_stats}
224 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state
225 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
226 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted
228 Add network element connection and change is required to false
230 Sleep 1s reason=insert time gap in log files
231 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
232 Sleep 1s reason=insert time delay to account for time differences of container and host
233 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required
234 ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT} ${USERNAME} ${PASSWORD}
235 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Connected
236 SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} connected time_in_sec=${10}
237 Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST}
238 ... node-id=${DEVICE_NAME_TEST}
239 ... is-required=${True}
241 ConnectApp.edit network element connection ${DEVICE_NAME_TEST} ${False}
242 Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST}
243 ... node-id=${DEVICE_NAME_TEST}
244 ... is-required=${False}
245 # Check connection status log entries
246 Sleep 1s reason=insert time gap to avoid time constrains
247 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
248 ... timestamp=>=${start_time}
249 Log ${connection_status_list}
250 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
251 Log ${connection_status_list_debug}
252 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
253 ... timestamp=>=${start_time}
254 Log ${connection_status_list_debug_backend}
255 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
256 Log Dictionary ${conn_status_list_stats}
257 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Connected 1 msg=wrong connection log entries for Connected state
258 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state
260 Edit network element connection: is required to true
262 Sleep 1s reason=insert time gap in log files
263 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
264 Sleep 1s reason=insert time delay to account for time differences of container and host
265 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required
266 ConnectApp.edit network element connection ${DEVICE_NAME_TEST} ${True}
267 Run Keyword And Continue On Failure ConnectApp.should_be_equal_network_element_connection_details ${DEVICE_NAME_TEST}
268 ... node-id=${DEVICE_NAME_TEST}
269 ... is-required=${True}
270 # Check connection status log entries
271 Sleep 1s reason=insert time gap to avoid time constrains
272 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
273 ... timestamp=>=${start_time}
274 Log ${connection_status_list}
275 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
276 Log ${connection_status_list_debug}
277 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
278 ... timestamp=>=${start_time}
279 Log ${connection_status_list_debug_backend}
280 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
281 Log Dictionary ${conn_status_list_stats}
282 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
283 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted
284 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Unmounted
285 #Dictionary Should Not Contain Key ${conn_status_list_stats} Connecting
287 Unmount network element
289 Sleep 1s reason=insert time gap in log files
290 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
291 Sleep 1s reason=insert time delay to account for time differences of container and host
292 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required
293 ConnectApp.unmount_network_element ${DEVICE_NAME_TEST}
294 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Disconnected
295 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10}
297 # Check connection status log entries
298 Sleep 1s reason=insert time gap to avoid time constrains
299 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
300 ... timestamp=>=${start_time}
301 Log ${connection_status_list}
302 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
303 Log ${connection_status_list_debug}
304 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
305 ... timestamp=>=${start_time}
306 Log ${connection_status_list_debug_backend}
307 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
308 Log Dictionary ${conn_status_list_stats}
309 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state
310 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
311 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted
312 #Dictionary Should Not Contain Key ${conn_status_list_stats} Connecting
315 Mount network element
317 Sleep 1s reason=insert time gap in log files
318 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
319 Sleep 1s reason=insert time delay to account for time differences of container and host
320 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required
321 ConnectApp.mount_network_element ${DEVICE_NAME_TEST}
322 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Connected
323 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} connected time_in_sec=${10}
325 # Check connection status log entries
326 Sleep 1s reason=insert time gap to avoid time constrains
327 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
328 ... timestamp=>=${start_time}
329 Log ${connection_status_list}
330 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
331 Log ${connection_status_list_debug}
332 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
333 ... timestamp=>=${start_time}
334 Log ${connection_status_list_debug_backend}
335 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
336 Log Dictionary ${conn_status_list_stats}
337 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Connected 1 msg=wrong connection log entries for Connected state
338 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state
340 Remove network element connection
342 Sleep 1s reason=insert time gap in log files
343 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
344 Sleep 1s reason=insert time delay to account for time differences of container and host
345 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required
346 ConnectApp.remove network element connection ${DEVICE_NAME_TEST}
347 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} not existing
348 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10}
350 # Check connection status log entries
351 Sleep 1s reason=insert time gap to avoid time constrains
352 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
353 ... timestamp=>=${start_time}
354 Log ${connection_status_list}
355 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
356 Log ${connection_status_list_debug}
357 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
358 ... timestamp=>=${start_time}
359 Log ${connection_status_list_debug_backend}
360 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
361 Log Dictionary ${conn_status_list_stats}
362 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Unmounted 1 msg=wrong connection log entries for Unmounted state
363 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Connected
364 Run Keyword And Continue On Failure Dictionary Should Not Contain Key ${conn_status_list_stats} Mounted
365 #Dictionary Should Not Contain Key ${conn_status_list_stats} Connecting
367 Remove unmounted network element connection
369 Sleep 1s reason=insert time gap in log files
370 ${start_time} = Get Current Date time_zone=UTC result_format=%Y-%m-%dT%H:%M:%S.%f
371 Sleep 1s reason=insert time delay to account for time differences of container and host
372 Set Test Variable ${DEVICE_NAME_TEST} ${DEVICE_NAME}-required-true
373 ConnectApp.Add network element connection ${DEVICE_NAME_TEST} ${True} ${HOST} ${PORT} ${USERNAME} ${PASSWORD}
374 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Connected
375 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} connected time_in_sec=${10}
377 ConnectApp.unmount_network_element ${DEVICE_NAME_TEST}
378 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} Disconnected
379 Run Keyword And Continue On Failure SDNCRestconfLibrary.should_be_equal_connection_status_until_time ${DEVICE_NAME_TEST} not existing time_in_sec=${10}
381 ConnectApp.remove_network_element_connection ${DEVICE_NAME_TEST}
382 Run Keyword And Continue On Failure ConnectApp.Should Be Equal connection status until time ${DEVICE_NAME_TEST} not existing
384 # Check connection status log entries
385 Sleep 1s reason=insert time gap to avoid time constrains
386 ${connection_status_list} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
387 ... timestamp=>=${start_time}
388 Log ${connection_status_list}
389 ${connection_status_list_debug} = FaultManagementApp.get_connection_log_list node-id=${DEVICE_NAME_TEST}
390 Log ${connection_status_list_debug}
391 ${connection_status_list_debug_backend} = FaultManagementAppBackend.get_connection_log_list node-id=${DEVICE_NAME_TEST}
392 ... timestamp=>=${start_time}
393 Log ${connection_status_list_debug_backend}
394 ${conn_status_list_stats} = get_counts_from_list ${connection_status_list} status
395 Log Dictionary ${conn_status_list_stats}
396 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Mounted 1 msg=wrong connection log entries for Mounted state
397 Run Keyword And Continue On Failure Dictionary Should Contain Item ${conn_status_list_stats} Connected 1 msg=wrong connection log entries for Connected state
398 Run Keyword And Continue On Failure Dictionary Should Contain Key ${conn_status_list_stats} Unmounted msg=no connection log entries for Unmounted state
399 ConnectApp.Remove Network Element Connection ${NETWORK_FUNCTIONS['${DEVICE_TYPE}']['NAME']}