Test Statistics

Total Statistics
Total
Pass
Fail
Skip
Elapsed
Pass / Fail / Skip
All Tests
1385385000:27:09
Statistics by Tag
Total
Pass
Fail
Skip
Elapsed
Pass / Fail / Skip
critical
31130000:21:47
101000:00:00
Statistics by Suite
Total
Pass
Fail
Skip
Elapsed
Pass / Fail / Skip
1385385000:27:55
624000:21:43
624000:21:43
101000:00:00
101000:00:00
49490000:00:09
49490000:00:09
58256000:04:51
29128000:02:31
29128000:02:20
11011000:00:42
11011000:00:42
808000:00:11
808000:00:11
505000:00:18
505000:00:18

Test Execution Errors

20250324 22:08:16.509 WARN Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='10.30.170.95', port=8182): Read timed out. (read timeout=2.0)")': /rests/data/network-topology:network-topology/topology=topology-netconf

Test Execution Log

00:27:54.897 SUITE netconf-gate-userfeatures-netty.txt
00:21:42.818 SUITE Ready
00:21:42.815 SUITE Netconfready
00:00:03.160 SETUP Setup_Everything  
00:00:00.076 TEARDOWN Teardown_Everything  
00:00:15.669 TEST Check_Whether_Netconf_Topology_Is_Ready
00:00:00.150 SETUP SetupUtils . Setup_Test_With_Logging_And_Without_Fast_Failing  
00:00:00.000 KEYWORD BuiltIn . Pass Execution If   ${USE_NETCONF_CONNECTOR}==${True} Netconf connector is used. Next testcases do their job in this case.
00:00:15.506 KEYWORD BuiltIn . Wait Until Keyword Succeeds   10x 1s Check_Netconf_Topology_Ready
00:00:00.543 KEYWORD Check_Netconf_Topology_Ready  
00:00:00.542 FOR ${idx} IN @{ClusterManagement__member_index_list}  
00:00:00.542 ITERATION ${idx} = 1  
00:00:00.541 KEYWORD Verify_Netconf_Topology_Ready_For_Node   ${idx}
00:00:00.002 KEYWORD ${session} = ClusterManagement . Resolve_Http_Session_For_Member   member_index=${node_index}
00:00:00.390 KEYWORD Configure_Netconf_Device   ${DEVICE_NAME} ${session} ${ODL_SYSTEM_${node_index}_IP}
00:00:00.388 KEYWORD NetconfKeywords . Configure_Device_In_Netconf   ${device_name} device_type=full-uri-device device_port=${DEVICE_PORT} device_address=${device_ip} device_user=admin device_password=admin session=${session}
00:00:00.016 KEYWORD ${version} = CompareStream . Set_Variable_If_At_Least_Scandium   scandium calcium
00:00:00.001 KEYWORD ${mapping} = BuiltIn . Create Dictionary   DEVICE_IP=${device_address} DEVICE_NAME=${device_name} DEVICE_PORT=${device_port} DEVICE_USER=${device_user} DEVICE_PASSWORD=${device_password} DEVICE_KEY=${device_key} SCHEMA_DIRECTORY=${schema_directory}
00:00:00.001 IF '${http_method}'=='post'  
00:00:00.353 ELSE  
00:00:00.353 KEYWORD TemplatedRequests . Put_As_Xml_Templated   folder=${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${version}${/}${device_type} mapping=${mapping} session=${session} http_timeout=${http_timeout}
00:00:00.349 KEYWORD ${response_text} = TemplatedRequests . Put_Templated   folder=${folder} base_name=data extension=xml accept=${ACCEPT_XML} content_type=${HEADERS_XML} mapping=${mapping} session=${session} normalize_json=False endline=${\n} iterations=${iterations} iter_start=${iter_start} http_timeout=${http_timeout} iter_j_offset=${iter_j_offset}
00:00:00.158 KEYWORD ${uri} = TemplatedRequests . Resolve_Text_From_Template_Folder   folder=${folder} base_name=location extension=uri mapping=${mapping} percent_encode=True
00:00:00.134 KEYWORD ${data} = TemplatedRequests . Resolve_Text_From_Template_Folder   folder=${folder} base_name=${base_name} extension=${extension} mapping=${mapping} endline=${endline} iterations=${iterations} iter_start=${iter_start} iter_j_offset=${iter_j_offset}
00:00:00.009 KEYWORD ${jmes_expression} = TemplatedRequests . Resolve_Jmes_Path   ${folder}
00:00:00.023 KEYWORD ${response_text} = TemplatedRequests . Put_To_Uri   uri=${uri} data=${data} content_type=${content_type} accept=${accept} session=${session} http_timeout=${http_timeout} normalize_json=${normalize_json} jmes_path=${jmes_expression}
00:00:00.000 KEYWORD BuiltIn . Log   ${uri}
00:00:00.000 KEYWORD BuiltIn . Log   ${data}
00:00:00.001 KEYWORD BuiltIn . Log   ${content_type}
00:00:00.000 KEYWORD BuiltIn . Log   ${accept}
00:00:00.003 KEYWORD ${headers} = TemplatedRequests . Join_Two_Headers   first=${content_type} second=${accept}
00:00:00.015 IF """${http_timeout}""" == """${EMPTY}"""  
00:00:00.005 KEYWORD ${response} = RequestsLibrary . PUT On Session   ${session} ${uri} data=${data} headers=${headers}
22:07:14.073 INFO PUT Request : url=http://10.30.170.95:8182/rests/data/network-topology:network-topology/topology=topology-netconf/node=test-device path_url=/rests/data/network-topology:network-topology/topology=topology-netconf/node=test-device headers={'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/xml', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '438', 'Authorization': 'Basic YWRtaW46YWRtaW4='} body=<node xmlns="urn:TBD:params:xml:ns:yang:network-topology"> <node-id>test-device</node-id> <netconf-node xmlns="urn:opendaylight:netconf-node-topology"> <host>10.30.170.95</host> <port>2830</port> <login-password-unencrypted> <username>admin</username> <password>admin</password> </login-password-unencrypted> <tcp-only>false</tcp-only> <keepalive-delay>0</keepalive-delay> </netconf-node> </node>
22:07:14.073 INFO PUT Response : url=http://10.30.170.95:8182/rests/data/network-topology:network-topology/topology=topology-netconf/node=test-device status=404, reason=Not Found headers={'content-length': '0'} body=None
22:07:14.074 FAIL HTTPError: 404 Client Error: Not Found for url: http://10.30.170.95:8182/rests/data/network-topology:network-topology/topology=topology-netconf/node=test-device
00:00:00.000 ELSE  
00:00:00.000 KEYWORD TemplatedRequests . Check_Status_Code   ${response}
00:00:00.000 IF not ${normalize_json}  
00:00:00.000 KEYWORD ${text_normalized} = norm_json . Normalize Json Text   ${response.text} jmes_path=${jmes_path}
00:00:00.000 RETURN   ${text_normalized}
00:00:00.000 RETURN   ${response_text}
00:00:00.000 IF ${verify}  
00:00:00.000 RETURN   ${response_text}
00:00:00.000 KEYWORD Collections . Set To Dictionary   ${NetconfKeywords__mounted_device_types} ${device_name} ${device_type}
00:00:00.000 KEYWORD &{mapping} = BuiltIn . Create Dictionary   DEVICE_NAME=${DEVICE_NAME}
00:00:00.000 KEYWORD Wait_Netconf_Device_Mounted   ${DEVICE_NAME} ${session} ${mapping}
00:00:00.000 KEYWORD ${version} = CompareStream . Set_Variable_If_At_Least_Scandium   scandium calcium
00:00:00.001 FOR ${idx} IN @{ClusterManagement__member_index_list}  
00:00:00.137 TEARDOWN Remove_Netconf_Device   ${DEVICE_NAME} ${session}
00:00:00.136 KEYWORD NetconfKeywords . Remove_Device_From_Netconf   ${device_name} session=${session}
00:00:00.000 KEYWORD ${device_type} = Collections . Pop From Dictionary   ${NetconfKeywords__mounted_device_types} ${device_name}
22:07:14.090 INFO ${device_type} = None
22:07:14.090 FAIL Dictionary does not contain key 'test-device'.
00:00:00.000 KEYWORD ${template_as_string} = BuiltIn . Create Dictionary   DEVICE_NAME=${device_name}
00:00:00.010 KEYWORD ${version} = CompareStream . Set_Variable_If_At_Least_Scandium   scandium calcium
00:00:00.115 KEYWORD TemplatedRequests . Delete_Templated   ${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${version}${/}${device_type} ${template_as_string} session=${session} location=${location}
00:00:00.064 KEYWORD ${uri} = TemplatedRequests . Resolve_Text_From_Template_Folder   folder=${folder} base_name=${location} extension=uri mapping=${mapping} percent_encode=True
00:00:00.023 KEYWORD BuiltIn . Run Keyword And Return If   not "${iterations}" Resolve_Text_From_Template_File folder=${folder} file_name=${name_prefix}${base_name}.${extension} mapping=${mapping} percent_encode=${percent_encode}
00:00:00.011 KEYWORD TemplatedRequests . Resolve_Text_From_Template_File   folder=${folder} file_name=${name_prefix}${base_name}.${extension} mapping=${mapping} percent_encode=${percent_encode}
00:00:00.000 KEYWORD ${file_path_stream} = BuiltIn . Set Variable   ${folder}.${ODL_STREAM}${/}${file_name}
00:00:00.001 KEYWORD ${file_stream_exists} = BuiltIn . Run Keyword And Return Status   OperatingSystem.File Should Exist ${file_path_stream}
00:00:00.000 KEYWORD ${file_path} = BuiltIn . Set Variable If   ${file_stream_exists} ${file_path_stream} ${folder}${/}${file_name}
00:00:00.001 KEYWORD ${template} = OperatingSystem . Get File   ${file_path}
22:07:14.152 INFO Getting file '/w/workspace/netconf-csit-1node-gate-userfeatures-netty-all-scandium/test/csit/variables/netconf/device/scandium/None/location.uri'.
22:07:14.152 INFO ${template} = None
22:07:14.152 FAIL FileNotFoundError: [Errno 2] No such file or directory: '/w/workspace/netconf-csit-1node-gate-userfeatures-netty-all-scandium/test/csit/variables/netconf/device/scandium/None/location.uri'
00:00:00.000 KEYWORD BuiltIn . Log   ${template}
00:00:00.004 IF ${percent_encode} == True  
00:00:00.000 ELSE  
00:00:00.001 KEYWORD ${final_text} = BuiltIn . Evaluate   string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use}) modules=string
00:00:00.000 RETURN   ${final_text}
22:07:14.159 INFO Returning from the enclosing user keyword.
00:00:00.000 KEYWORD ${prolog} = TemplatedRequests . Resolve_Text_From_Template_File   folder=${folder} file_name=${name_prefix}${base_name}.prolog.${extension} mapping=${mapping} percent_encode=${percent_encode}
00:00:00.000 KEYWORD ${epilog} = TemplatedRequests . Resolve_Text_From_Template_File   folder=${folder} file_name=${name_prefix}${base_name}.epilog.${extension} mapping=${mapping} percent_encode=${percent_encode}
00:00:00.000 KEYWORD ${item_template} = TemplatedRequests . Resolve_Text_From_Template_File   folder=${folder} file_name=${base_name}.item.${extension} mapping=${mapping}
00:00:00.000 KEYWORD ${items} = BuiltIn . Create List  
00:00:00.000 KEYWORD ${separator} = BuiltIn . Set Variable If   '${extension}' != 'json' ${endline} ,${endline}
00:00:00.001 FOR ${iteration} IN RANGE ${iter_start} ${iterations}+${iter_start}  
00:00:00.000 KEYWORD ${final_text} = BuiltIn . Catenate   SEPARATOR= ${prolog} ${endline} @{items} ${endline} ${epilog}
00:00:00.000 RETURN   ${final_text}
22:07:14.196 INFO ${uri} = None
00:00:00.028 KEYWORD ${response_text} = TemplatedRequests . Delete_From_Uri   uri=${uri} session=${session} additional_allowed_status_codes=${additional_allowed_status_codes} http_timeout=${http_timeout}
00:00:00.000 KEYWORD BuiltIn . Log   ${uri}
00:00:00.007 IF """${http_timeout}""" == """${EMPTY}"""  
00:00:00.005 KEYWORD ${response} = RequestsLibrary . DELETE On Session   ${session} ${uri}
22:07:14.203 INFO DELETE Request : url=http://10.30.170.95:8182/ path_url=/ headers={'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} body=None
22:07:14.203 INFO DELETE Response : url=http://10.30.170.95:8182/ status=405, reason=Method Not Allowed headers={'allow': 'OPTIONS', 'content-length': '0'} body=None
22:07:14.203 INFO ${response} = None
22:07:14.203 FAIL HTTPError: 405 Client Error: Method Not Allowed for url: http://10.30.170.95:8182/
00:00:00.000 ELSE  
00:00:00.016 KEYWORD TemplatedRequests . Check_Status_Code   ${response} additional_allowed_status_codes=${additional_allowed_status_codes}
00:00:00.003 IF "${log_response}" == "True"  
00:00:00.002 KEYWORD BuiltIn . Log   ${response.text}
22:07:14.208 FAIL Resolving variable '${response.text}' failed: AttributeError: 'NoneType' object has no attribute 'text'
00:00:00.003 IF "${log_response}" == "True"  
00:00:00.002 KEYWORD BuiltIn . Log   ${response.status_code}
22:07:14.210 FAIL Resolving variable '${response.status_code}' failed: AttributeError: 'NoneType' object has no attribute 'status_code'
00:00:00.000 KEYWORD ${status_codes_type} = BuiltIn . Evaluate   type($additional_allowed_status_codes).__name__
00:00:00.000 IF "${status_codes_type}"!="list"  
00:00:00.000 ELSE  
00:00:00.000 KEYWORD ${status_codes_type} = BuiltIn . Evaluate   type($explicit_status_codes).__name__
00:00:00.000 IF "${status_codes_type}"!="list"  
00:00:00.001 ELSE  
00:00:00.000 KEYWORD BuiltIn . Run Keyword And Return If   """${explicit_status_codes_list}""" != """${NO_STATUS_CODES}""" Collections.List_Should_Contain_Value ${explicit_status_codes_list} ${response.status_code}
00:00:00.000 KEYWORD ${final_allowd_list} = Collections . Combine Lists   ${ALLOWED_STATUS_CODES} ${allowed_status_codes_list}
00:00:00.006 KEYWORD Collections . List Should Contain Value   ${final_allowd_list} ${response.status_code}
22:07:14.221 FAIL Resolving variable '${response.status_code}' failed: AttributeError: 'NoneType' object has no attribute 'status_code'
00:00:00.000 RETURN   ${response.text}
22:07:14.224 INFO ${response_text} = None
22:07:14.224 FAIL Replacing variables from keyword return value failed: Resolving variable '${response.text}' failed: AttributeError: 'NoneType' object has no attribute 'text'
00:00:00.000 RETURN   ${response_text}
22:07:14.225 FAIL Keyword 'Check_Netconf_Topology_Ready' failed after retrying 10 times. The last error was: HTTPError: 404 Client Error: Not Found for url: http://10.30.170.95:8182/rests/data/network-topology:network-topology/topology=topology-netconf/node=test-device Also keyword teardown failed: Several failures occurred: 1) Dictionary does not contain key 'test-device'. 2) FileNotFoundError: [Errno 2] No such file or directory: '/w/workspace/netconf-csit-1node-gate-userfeatures-netty-all-scandium/test/csit/variables/netconf/device/scandium/None/location.uri' 3) Replacing variables from keyword return value failed: Resolving variable '${response.text}' failed: AttributeError: 'NoneType' object has no attribute 'text'
00:00:00.011 TEARDOWN SetupUtils . Teardown_Test_Show_Bugs_If_Test_Failed  
00:01:03.128 TEST Wait_For_Netconf_Connector
00:20:02.153 TEST Wait_Even_Longer
00:00:00.346 TEST Check_For_Bug_5014
00:00:00.112 TEST Check_Whether_Netconf_Can_Pretty_Print
00:00:17.600 TEST Wait_For_MDSAL
00:00:00.176 SUITE Apidocs
00:00:09.390 SUITE MDSAL
00:04:51.131 SUITE CRUD
00:00:41.536 SUITE CRUD-ACTION
00:00:11.378 SUITE Notifications
00:00:18.436 SUITE KeyAuth