)]}'
{"whitebox_tempest_plugin/api/compute/test_rx_tx_queue_size.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48d35fb106b302ad7f053027af9e82e83544126a","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def test_rx_queue_size(self):"},{"line_number":73,"context_line":"        domain \u003d self.get_server_xml(self.server_id)"},{"line_number":74,"context_line":"        all_interfaces \u003d domain.findall(\"devices/interface\")"},{"line_number":75,"context_line":"        interface_candiate \u003d \\"},{"line_number":76,"context_line":"            [interface for interface in all_interfaces if"},{"line_number":77,"context_line":"             interface.attrib.get(\u0027type\u0027) in [\u0027ethernet\u0027, \u0027bridge\u0027] and"},{"line_number":78,"context_line":"             interface.find(\"driver[@name\u003d\u0027vhost\u0027]\") is not None]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1d96f86f_a096dfe7","line":75,"updated":"2021-08-05 13:32:46.000000000","message":"I think a more Pythonic way of doing this would be:\n\n  # NOTE(jparker) Nova change I11fb5d3ada7f27b39c183157ea73c8b72b4e672e\n  # changed the interface type from \u0027bridge\u0027 to \u0027ethernet\u0027. Try the latter first,\n  # then fall back on the former.\n  driver \u003d domain.find(\n      \"devices/interface[@type\u003d\u0027ethernet\u0027]/driver[@name\u003d\u0027vhost\u0027]\"\n  ) or domain.find(\n      \"devices/interface[@type\u003d\u0027bridge\u0027]/driver[@name\u003d\u0027vhost\u0027]\"\n  )","commit_id":"55ec41ac494263b0ead0a94dfa887b371f3facb1"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f9d39f41361be0c880153cc94d2c8fba1f826367","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def test_rx_queue_size(self):"},{"line_number":73,"context_line":"        domain \u003d self.get_server_xml(self.server_id)"},{"line_number":74,"context_line":"        all_interfaces \u003d domain.findall(\"devices/interface\")"},{"line_number":75,"context_line":"        interface_candiate \u003d \\"},{"line_number":76,"context_line":"            [interface for interface in all_interfaces if"},{"line_number":77,"context_line":"             interface.attrib.get(\u0027type\u0027) in [\u0027ethernet\u0027, \u0027bridge\u0027] and"},{"line_number":78,"context_line":"             interface.find(\"driver[@name\u003d\u0027vhost\u0027]\") is not None]"}],"source_content_type":"text/x-python","patch_set":2,"id":"224afac6_4109842d","line":75,"in_reply_to":"1d96f86f_a096dfe7","updated":"2021-08-09 12:42:41.000000000","message":"I like this approach more, but python does not treat the result of the first method as \u0027True\u0027 if it is not None, e.g.:\n\n\u003e\u003e\u003e if domain.find(\"devices/interface[@type\u003d\u0027ethernet\u0027]/driver[@name\u003d\u0027vhost\u0027]\"):\n...     print(\u0027Ethernet interface found\u0027)\n... \n\u003e\u003e\u003e driver \u003d domain.find(\"devices/interface[@type\u003d\u0027ethernet\u0027]/driver[@name\u003d\u0027vhost\u0027]\")\n\u003e\u003e\u003e driver.attrib[\u0027rx_queue_size\u0027]\n\u00271024\u0027\n\nSo trying that results in a None return \n\u003e\u003e\u003e driver \u003d domain.find(\"devices/interface[@type\u003d\u0027ethernet\u0027]/driver[@name\u003d\u0027vhost\u0027]\") or domain.find(\"devices/interface[@type\u003d\u0027bridge\u0027]/driver[@name\u003d\u0027vhost\u0027]\")\n\u003e\u003e\u003e driver is None\nTrue\n\nTo keep it close to this I could try something like:\n\u003e\u003e\u003e ethernet_interface \u003d domain.find(\"devices/interface[@type\u003d\u0027ethernet\u0027]/driver[@name\u003d\u0027vhost\u0027]\")\n\u003e\u003e\u003e driver \u003d ethernet_interface if ethernet_interface is not None else domain.find(\"devices/interface[@type\u003d\u0027bridge\u0027]/driver[@name\u003d\u0027vhost\u0027]\")\n\u003e\u003e\u003e driver.attrib[\u0027rx_queue_size\u0027]\n\u00271024\u0027\n\nWdyt?","commit_id":"55ec41ac494263b0ead0a94dfa887b371f3facb1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1c9e766a930b2eaca013c09094651e21bc877b22","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def test_rx_queue_size(self):"},{"line_number":73,"context_line":"        domain \u003d self.get_server_xml(self.server_id)"},{"line_number":74,"context_line":"        all_interfaces \u003d domain.findall(\"devices/interface\")"},{"line_number":75,"context_line":"        interface_candiate \u003d \\"},{"line_number":76,"context_line":"            [interface for interface in all_interfaces if"},{"line_number":77,"context_line":"             interface.attrib.get(\u0027type\u0027) in [\u0027ethernet\u0027, \u0027bridge\u0027] and"},{"line_number":78,"context_line":"             interface.find(\"driver[@name\u003d\u0027vhost\u0027]\") is not None]"}],"source_content_type":"text/x-python","patch_set":2,"id":"c9579912_20c47855","line":75,"in_reply_to":"224afac6_4109842d","updated":"2021-08-09 13:11:03.000000000","message":"Ah, fun: https://github.com/python/cpython/blob/3.9/Lib/xml/etree/ElementTree.py#L214-L220\n\nThe way to work around this while remaining Pythonic would be:\n\n  driver \u003d tree.find(\"interface[@type\u003d\u0027ethernet\u0027]/driver[@name\u003d\u0027vhost\u0027]\")\n  driver \u003d (driver if driver is not None\n            else tree.find(\"interface[@type\u003d\u0027bridge\u0027]/driver[@name\u003d\u0027vhost\u0027]\"))","commit_id":"55ec41ac494263b0ead0a94dfa887b371f3facb1"}]}
