)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8d396f67df6c0fb03cb208af19694f1febfaac03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4b72677f_f4814302","updated":"2023-07-12 01:32:34.000000000","message":"Hmmm, seems need to create the state_path for the case:\n/tmp/tmpn41vd2hk/tmpm73ylnu7/state_pathebc2wa96/host_metadata_proxy.haproxy.conf","commit_id":"60195d9b6c6ce485ce1e5f84d8f70d4a2a107a03"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"cc23c6e7141ccc66a8fc4ab3ee52f34549bae004","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3324ef15_4a4ed549","updated":"2023-07-13 09:09:59.000000000","message":"Need to stop the httpd on fullstack test host:\nhttps://zuul.opendev.org/t/openstack/build/9438b15b136a488897efa5d90bd1742d/log/controller/logs/apache_config/000-default_conf.txt\n\nThen the host metadata haproxy can start with 80 port.","commit_id":"60195d9b6c6ce485ce1e5f84d8f70d4a2a107a03"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2e34fe75d134d56fbf4a74056cc758a80a79f9ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4b6d9ef7_f17ddf02","updated":"2023-07-13 02:29:41.000000000","message":"Something is listening on port 80 on fullstack test host.","commit_id":"60195d9b6c6ce485ce1e5f84d8f70d4a2a107a03"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2d437c9fee6222bc45eecda477f8fa47b793fb3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"74f4b53f_b60549c2","updated":"2023-09-14 10:00:44.000000000","message":"recheck","commit_id":"4dcb709a479fa69890b8a1c69f6bb2b13b37ea4e"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b6af9b614d003e280d019101fc06f43c0004e04c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fc79d397_b71898f5","updated":"2023-09-18 04:37:06.000000000","message":"Hope port 18888 is free...","commit_id":"f4ce05f6713c1c1e9dcd0e0a6b11a32b56d80c21"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc356985e90c2184e9348562b45a59afcc4806bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1f57bc46_e6482ffc","updated":"2023-09-21 02:17:33.000000000","message":"Everything works fine locally....\n\n\n{0} neutron.tests.fullstack.test_ovs_metadata_extension.OvsMetadataExtensionTestCase.test_ovs_meta_agent_extension_curl_metadata [174.272763s] ... ok\n\nCaptured stdout:\n~~~~~~~~~~~~~~~~\n    Running upgrade for neutron ...\nOK\n\n\nCaptured stderr:\n~~~~~~~~~~~~~~~~\n    /opt/stack/neutron/.tox/dsvm-fullstack/lib/python3.9/site-packages/oslo_db/sqlalchemy/enginefacade.py:541: DeprecationWarning: Using the \u0027mysql_enable_ndb\u0027 argument is deprecated in version \u002712.1.0\u0027: Support for the MySQL NDB Cluster storage engine has been deprecated and will be removed in a future release.\n  engine \u003d engines.create_engine(\n/opt/stack/neutron/.tox/dsvm-fullstack/lib/python3.9/site-packages/oslo_db/sqlalchemy/engines.py:343: DeprecationWarning: Using function/method \u0027ndb_status()\u0027 is deprecated in version \u002712.1.0\u0027: Support for the MySQL NDB Cluster storage engine has been deprecated and will be removed in a future release.\n  if ndb.ndb_status(engine):\n\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 1 tests in 174.2728 sec.\n - Passed: 1\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 174.2728 sec.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWorker Balance\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n - Worker 0 (1 tests) \u003d\u003e 0:02:54.272763\n_______________________________________________________________________________________________________ summary _______________________________________________________________________________________________________\n  dsvm-fullstack: commands succeeded\n  congratulations :)","commit_id":"949ad79f0cc17425a93a50c877310a0298d2b6f1"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b36dc582a23ac382ccdc5c06a26125070b241e52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"902a8b68_6f41ade8","updated":"2023-10-13 02:40:37.000000000","message":"recheck","commit_id":"949ad79f0cc17425a93a50c877310a0298d2b6f1"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5d1d1bf3d98398a75796c08f8e2ad25bd65a9566","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6988104e_f3a418ab","updated":"2023-10-24 06:21:33.000000000","message":"2023-10-24 02:26:57.439 96124 DEBUG neutron.agent.linux.utils [None req-16c4fb1c-8af5-4ae6-bdd0-1ab931ad49ba - - - - - -] Unable to access /tmp/tmp1i6l2s2j/tmp4yezaq5b/state_pathyqbw_d5y/external/pids/host_metadata_proxy.pid.haproxy; Error: [Errno 2] No such file or directory: \u0027/tmp/tmp1i6l2s2j/tmp4yezaq5b/state_pathyqbw_d5y/external/pids/host_metadata_proxy.pid.haproxy\u0027 get_value_from_file /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/linux/utils.py:252\n2023-10-24 02:26:57.440 96124 DEBUG neutron.agent.linux.utils [None req-16c4fb1c-8af5-4ae6-bdd0-1ab931ad49ba - - - - - -] Running command (rootwrap daemon): [\u0027env\u0027, \u0027PROCESS_TAG\u003dhaproxy-host_metadata_proxy\u0027, \u0027haproxy\u0027, \u0027-f\u0027, \u0027/tmp/tmp1i6l2s2j/tmp4yezaq5b/state_pathyqbw_d5y/host_metadata_proxy.haproxy.conf\u0027, \u0027-p\u0027, \u0027/tmp/tmp1i6l2s2j/tmp4yezaq5b/state_pathyqbw_d5y/external/pids/host_metadata_proxy.pid.haproxy\u0027] execute_rootwrap_daemon /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/linux/utils.py:108\n2023-10-24 02:26:57.456 96124 DEBUG ovsdbapp.backend.ovs_idl.vlog [None req-16c4fb1c-8af5-4ae6-bdd0-1ab931ad49ba - - - - - -] [POLLIN] on fd 10 __log_wakeup /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-fullstack-gate/lib/python3.10/site-packages/ovs/poller.py:263\n2023-10-24 02:26:57.466 96124 DEBUG neutron.agent.l2.extensions.metadata.host_metadata_proxy [None req-16c4fb1c-8af5-4ae6-bdd0-1ab931ad49ba - - - - - -] Host metadata proxy enabled for host host_metadata_proxy _spawn_proxy /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/l2/extensions/metadata/host_metadata_proxy.py:177","commit_id":"30c7e79578f290224a2e691fcdb4b9321413e6d5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"dbbcd5a077172e9ed1a80c307b22ebfcafef6ff0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d51f491f_1e2bfc96","updated":"2023-10-24 01:25:05.000000000","message":"Change port 18888 to 55555","commit_id":"30c7e79578f290224a2e691fcdb4b9321413e6d5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8e278051cb098b4888353fc827690d862ec97040","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9b67f78d_ddc5704d","updated":"2023-10-25 08:43:13.000000000","message":"recheck","commit_id":"fc6e4ba35824724759e07990c49ba7b343dacdb5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b291145ac328c150cb9bea3f2ed32eb99e6dcd03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"66f997eb_f277d6bd","updated":"2023-11-01 03:19:50.000000000","message":"2023-10-31 08:52:53.849 99790 DEBUG neutron.agent.l2.extensions.metadata.host_metadata_proxy [None req-0f1af1e0-62ea-4b45-94be-97996c4e6b3b - - - - - -] Host metadata proxy enabled for host host_metadata_proxy with pid 101163 _spawn_proxy /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/l2/extensions/metadata/host_metadata_proxy.py:177\n\nThe host proxy was started. But the case was still failed.","commit_id":"7462eabb7dc1d5f5013963fcb9f17f93b9b47fed"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"8865ef92b5aee10a96bd467545da58c2c1862a67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"59a4d79a_23737e91","updated":"2023-10-31 08:22:01.000000000","message":"I didn\u0027t review this patch completely and I don\u0027t know why it\u0027s failing but according to what was discussed about fullstack job during last PTG, maybe it would be easier to simply test this functionality in the ``neutron-tempest-plugin-openvswitch-iptables_hybrid-distributed-dhcp`` job together with distrubuted DHCP service instead of this fullstack test, wdyt?","commit_id":"7462eabb7dc1d5f5013963fcb9f17f93b9b47fed"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b291145ac328c150cb9bea3f2ed32eb99e6dcd03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"40ff21de_2b592271","in_reply_to":"59a4d79a_23737e91","updated":"2023-11-01 03:19:50.000000000","message":"Sure, I will try that. Thanks.","commit_id":"7462eabb7dc1d5f5013963fcb9f17f93b9b47fed"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"67c297941f5b30fb352af8d14af72b56037fe29c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ea3981e3_930ee652","updated":"2023-11-16 07:32:01.000000000","message":"@Slawek Kaplonski,\nneutron-tempest-plugin can not run, it is an all-in-one setup on zuul. Host haproxy can not start, becasue the port 80 was in-used by other service (httpd).\nLOG: https://28c89ccd1ef102d5f48f-22ee4d3def35edb36cea31e4cb59b90f.ssl.cf5.rackcdn.com/900969/1/experimental/neutron-tempest-plugin-openvswitch-distributed-metadata-data-path/0a5f678/controller/logs/screen-q-agt.txt","commit_id":"e499b5883603639317fd39e45a69687d4f91be7a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4513c8e93c65d2528708874ae04c370dda7c35c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"64dfc755_0f4d2f9a","in_reply_to":"ea3981e3_930ee652","updated":"2023-11-16 07:34:41.000000000","message":"Nov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.agent.linux.utils [None req-ad24634f-92f5-4698-ab78-7fa63eb1bca0 None None] Exit code: 1; Cmd: [\u0027env\u0027, \u0027PROCESS_TAG\u003dhaproxy-host_metadata_proxy\u0027, \u0027haproxy\u0027, \u0027-f\u0027, \u0027/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf\u0027, \u0027-p\u0027, \u0027/opt/stack/data/neutron/external/pids/host_metadata_proxy.pid.haproxy\u0027]; Stdin: ; Stdout: ; Stderr: [WARNING]  (134052) : parsing [/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf:18] : \u0027timeout connect\u0027 will be ignored because frontend \u0027public\u0027 has no backend capability\nNov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: [WARNING]  (134052) : parsing [/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf:20] : \u0027timeout server\u0027 will be ignored because frontend \u0027public\u0027 has no backend capability\nNov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: [NOTICE]   (134052) : haproxy version is 2.4.22-0ubuntu0.22.04.2\nNov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: [NOTICE]   (134052) : path to executable is /usr/sbin/haproxy\nNov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: [ALERT]    (134052) : Starting frontend public: cannot bind socket (Address already in use) [0.0.0.0:80]\nNov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: [ALERT]    (134052) : [/usr/sbin/haproxy.main()] Some protocols failed to start their listeners! Exiting.\nNov 15 11:39:12.710473 np0035766507 neutron-openvswitch-agent[59142]: \nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [None req-ad24634f-92f5-4698-ab78-7fa63eb1bca0 None None] Error while processing VIF ports: neutron_lib.exceptions.ProcessExecutionError: Exit code: 1; Cmd: [\u0027env\u0027, \u0027PROCESS_TAG\u003dhaproxy-host_metadata_proxy\u0027, \u0027haproxy\u0027, \u0027-f\u0027, \u0027/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf\u0027, \u0027-p\u0027, \u0027/opt/stack/data/neutron/external/pids/host_metadata_proxy.pid.haproxy\u0027]; Stdin: ; Stdout: ; Stderr: [WARNING]  (134052) : parsing [/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf:18] : \u0027timeout connect\u0027 will be ignored because frontend \u0027public\u0027 has no backend capability\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: [WARNING]  (134052) : parsing [/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf:20] : \u0027timeout server\u0027 will be ignored because frontend \u0027public\u0027 has no backend capability\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: [NOTICE]   (134052) : haproxy version is 2.4.22-0ubuntu0.22.04.2\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: [NOTICE]   (134052) : path to executable is /usr/sbin/haproxy\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: [ALERT]    (134052) : Starting frontend public: cannot bind socket (Address already in use) [0.0.0.0:80]\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: [ALERT]    (134052) : [/usr/sbin/haproxy.main()] Some protocols failed to start their listeners! Exiting.\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent Traceback (most recent call last):\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py\", line 2867, in rpc_loop\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     failed_devices \u003d self.process_network_ports(\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py\", line 2260, in process_network_ports\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     self.treat_devices_added_or_updated(\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py\", line 2116, in treat_devices_added_or_updated\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     self.ext_manager.handle_port(self.context, details)\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/l2/l2_agent_extensions_manager.py\", line 42, in handle_port\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     extension.obj.handle_port(context, data)\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/l2/extensions/metadata/metadata_path.py\", line 326, in handle_port\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     self._reload_host_metadata_proxy()\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/l2/extensions/metadata/metadata_path.py\", line 266, in _reload_host_metadata_proxy\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     self.meta_daemon.enable()\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/l2/extensions/metadata/host_metadata_proxy.py\", line 185, in enable\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     self._spawn_proxy(self.haproxy_conf)\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/l2/extensions/metadata/host_metadata_proxy.py\", line 168, in _spawn_proxy\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     pm.enable(reload_cfg\u003dTrue)\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/linux/external_process.py\", line 105, in enable\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     ip_wrapper.netns.execute(cmd, addl_env\u003dself.cmd_addl_env,\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/linux/ip_lib.py\", line 759, in execute\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     return utils.execute(cmd, check_exit_code\u003dcheck_exit_code,\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent   File \"/opt/stack/neutron/neutron/agent/linux/utils.py\", line 156, in execute\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent     raise exceptions.ProcessExecutionError(msg,\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent neutron_lib.exceptions.ProcessExecutionError: Exit code: 1; Cmd: [\u0027env\u0027, \u0027PROCESS_TAG\u003dhaproxy-host_metadata_proxy\u0027, \u0027haproxy\u0027, \u0027-f\u0027, \u0027/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf\u0027, \u0027-p\u0027, \u0027/opt/stack/data/neutron/external/pids/host_metadata_proxy.pid.haproxy\u0027]; Stdin: ; Stdout: ; Stderr: [WARNING]  (134052) : parsing [/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf:18] : \u0027timeout connect\u0027 will be ignored because frontend \u0027public\u0027 has no backend capability\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [WARNING]  (134052) : parsing [/opt/stack/data/neutron/host_metadata_proxy.haproxy.conf:20] : \u0027timeout server\u0027 will be ignored because frontend \u0027public\u0027 has no backend capability\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [NOTICE]   (134052) : haproxy version is 2.4.22-0ubuntu0.22.04.2\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [NOTICE]   (134052) : path to executable is /usr/sbin/haproxy\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [ALERT]    (134052) : Starting frontend public: cannot bind socket (Address already in use) [0.0.0.0:80]\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [ALERT]    (134052) : [/usr/sbin/haproxy.main()] Some protocols failed to start their listeners! Exiting.\nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent \nNov 15 11:39:12.711475 np0035766507 neutron-openvswitch-agent[59142]: ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent \nNov 15 11:39:12.713175 np0035766507 neutron-openvswitch-agent[59142]: INFO neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [None req-ad24634f-92f5-4698-ab78-7fa63eb1bca0 None None] Agent rpc_loop - iteration:4582 completed. Processed ports statistics: {\u0027regular\u0027: {\u0027added\u0027: 20, \u0027updated\u0027: 1, \u0027removed\u0027: 0}}. Elapsed:0.427","commit_id":"e499b5883603639317fd39e45a69687d4f91be7a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b896cf2f8838db6f40e198fb56eb43e216e565f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d53d325e_be0d70d7","updated":"2024-06-20 01:09:22.000000000","message":"recheck","commit_id":"9d1ce4596ce14608d1b6c2859eeba9df400fb37a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"067a4be009e17a324e458671c4ee78408bb88642","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"be517286_d4d183e2","updated":"2024-08-02 00:59:14.000000000","message":"recheck","commit_id":"9575fa43c1c475de57ed8d8221080bf9a3ba05b5"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e8ac7d0c6bdad71afc1e795a641f3830c52ce75d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"23538150_8a6b9fe4","updated":"2024-08-06 07:19:38.000000000","message":"it seems like that new test is still failing, please check logs which can be found on https://207d344a11fc84b19548-6c0ced7e746a352dadfa0dec27dd8f91.ssl.cf1.rackcdn.com/888098/22/check/neutron-fullstack-with-uwsgi/25dd6f1/controller/logs/dsvm-fullstack-logs.tar.gz - maybe that will be useful for you to understand what happens there","commit_id":"eca6b59c86c86c9a23ca748b68354df304854547"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"849730ab492e5d5e663cc955bb4f7712176f3bf0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"1ee2bdd2_073cbf29","in_reply_to":"23538150_8a6b9fe4","updated":"2024-08-06 07:41:23.000000000","message":"Yes, working on that now.","commit_id":"eca6b59c86c86c9a23ca748b68354df304854547"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4e0730fd711dd0db9b1ca7936a25523da8d5961","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"6ccb3b62_ddc2bb60","updated":"2024-08-07 00:34:24.000000000","message":"OK then, new case is fine to run.","commit_id":"346c755c5694f28df2682efa2954bf0f25149882"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b8be94eb9bf0e122d8135bf678239f64a1a3a9e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"159be954_6d2a7feb","updated":"2024-10-14 03:08:29.000000000","message":"recheck","commit_id":"bcdc24ce0cb7f7a6516d546dcbec22c3d9f0d49f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"0f5705d3_b40f4a58","updated":"2025-02-13 22:33:04.000000000","message":"I realize some of my comments might apply to code already merged, but I just noticed it now.","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"81ba3d83faeed7c5d8cc548a50ad286e5dbb6578","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"7a584f7b_257bba8c","updated":"2025-03-05 09:27:38.000000000","message":"recheck","commit_id":"907a2f63174191fdc09181b0547503509bffc3d6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bdac45c842788047206dab1295bd9cfb79ba9253","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"5eebf806_d9f72314","updated":"2025-03-04 23:02:13.000000000","message":"recheck neutron-functional","commit_id":"907a2f63174191fdc09181b0547503509bffc3d6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0c567c99224d342d874d4d63ffe07fad78a000b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"9b202cfc_292366d9","updated":"2025-03-05 18:10:01.000000000","message":"recheck neutron-functional","commit_id":"907a2f63174191fdc09181b0547503509bffc3d6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e5eff3e3c95bfdd25722bda9f871cd3ad77eb20d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"235b2187_fcd34482","updated":"2025-03-03 12:51:20.000000000","message":"thanks for the efforts","commit_id":"907a2f63174191fdc09181b0547503509bffc3d6"}],"neutron/agent/l2/extensions/metadata/host_metadata_proxy.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b26c579c94e6e1476aa56d9710a92a9839615ed5","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    daemon"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"frontend public"},{"line_number":47,"context_line":"    bind            *:{{ listen_port or 80 }} name clear"},{"line_number":48,"context_line":"    mode            http"},{"line_number":49,"context_line":"    log             global"},{"line_number":50,"context_line":"    option          httplog"}],"source_content_type":"text/x-python","patch_set":27,"id":"63988365_8197bedf","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":42},"updated":"2024-10-14 15:33:18.000000000","message":"this should be in a separate patch set, not in a test patch.\nThis template param is not used anywhere.\nThe issue is that everybody (i.e.: cloud-init) expects metadata to be available on port 80, so with this it will be hard to test this feature with zuul for example.\n\nWhat I did was to add a new cfg option like host_metadata_haproxy_port and use that to fill this listen_port and to use for tp_dst and such.\n\nI discuss this with other cores to get help to push this innovative idea forward.","commit_id":"bcdc24ce0cb7f7a6516d546dcbec22c3d9f0d49f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5602b572d56089e5a7748c4937d49ffd704db9bd","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    daemon"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"frontend public"},{"line_number":47,"context_line":"    bind            *:{{ listen_port or 80 }} name clear"},{"line_number":48,"context_line":"    mode            http"},{"line_number":49,"context_line":"    log             global"},{"line_number":50,"context_line":"    option          httplog"}],"source_content_type":"text/x-python","patch_set":27,"id":"fa8d5629_4c3cffab","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":42},"in_reply_to":"5be1e5a0_fe82d7cb","updated":"2024-10-24 16:14:14.000000000","message":"Hi Liu, I brought this topic to the PTG this week (see: https://etherpad.opendev.org/p/oct2024-ptg-neutron#L332 ), the suggestion from the team is to rethink the issue with haproxy:\n* either put haproxy to a namespace to avoid port collision\n* add flow to change the port of haproxy to 80 in the VM that is user facing, so user curl 169.254.169.254/... (implicit TCP port 80) \u003d\u003e br-int or br-meta change the TCP port to the port of metadata haproxy \u003d\u003e haproxy handles the request and forwards it to Nova)\n\nPlease think about these ideas.","commit_id":"bcdc24ce0cb7f7a6516d546dcbec22c3d9f0d49f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"bd6bfa770171525d97d4a94df4f4c8c2e0ed1d68","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    daemon"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"frontend public"},{"line_number":47,"context_line":"    bind            *:{{ listen_port or 80 }} name clear"},{"line_number":48,"context_line":"    mode            http"},{"line_number":49,"context_line":"    log             global"},{"line_number":50,"context_line":"    option          httplog"}],"source_content_type":"text/x-python","patch_set":27,"id":"5be1e5a0_fe82d7cb","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":42},"in_reply_to":"63988365_8197bedf","updated":"2024-10-17 10:16:44.000000000","message":"Actually this is only for upstream zuul CI test. Because the 80 port is used by other process, the host metadata haporxy can not run.","commit_id":"bcdc24ce0cb7f7a6516d546dcbec22c3d9f0d49f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"eeacf199150b02349bc5a7ba837f4e9452f393ed","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    daemon"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"frontend public"},{"line_number":47,"context_line":"    bind            *:{{ listen_port or 80 }} name clear"},{"line_number":48,"context_line":"    mode            http"},{"line_number":49,"context_line":"    log             global"},{"line_number":50,"context_line":"    option          httplog"}],"source_content_type":"text/x-python","patch_set":27,"id":"044f5e55_cda0c374","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":42},"in_reply_to":"c8b7eeb6_2cd28407","updated":"2024-10-29 12:22:50.000000000","message":"Cool Liu, if I can help ping me.","commit_id":"bcdc24ce0cb7f7a6516d546dcbec22c3d9f0d49f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"52a3941dc40162f77bf9a2c419fb8f6a91c1c705","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    daemon"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"frontend public"},{"line_number":47,"context_line":"    bind            *:{{ listen_port or 80 }} name clear"},{"line_number":48,"context_line":"    mode            http"},{"line_number":49,"context_line":"    log             global"},{"line_number":50,"context_line":"    option          httplog"}],"source_content_type":"text/x-python","patch_set":27,"id":"c8b7eeb6_2cd28407","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":42},"in_reply_to":"fa8d5629_4c3cffab","updated":"2024-10-25 02:26:46.000000000","message":"Thank you for taking this to the meeting. Introduce namespace to ovs-agent does not make sense to me, because it will make the host haproxy hardly to communit with nova-metadata-api. So change the port look more reasonable. I will work on that.","commit_id":"bcdc24ce0cb7f7a6516d546dcbec22c3d9f0d49f"}],"neutron/tests/base.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c76b9c355bd3a9a33998c86d7d3c1bee1de5a4e8","unresolved":true,"context_lines":[{"line_number":613,"context_line":"        if ipv6:"},{"line_number":614,"context_line":"            params \u003d {\u0027host\u0027: constants.METADATA_V6_IP,"},{"line_number":615,"context_line":"                      \u0027interface\u0027: interface,"},{"line_number":616,"context_line":"                      \u0027port\u0027: port or constants.METADATA_PORT}"},{"line_number":617,"context_line":"            url \u003d \u0027http://[%(host)s%%%(interface)s]:%(port)s\u0027 % params"},{"line_number":618,"context_line":"        else:"},{"line_number":619,"context_line":"            params \u003d {\u0027host\u0027: constants.METADATA_V4_IP,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ad8f457c_44c95b31","line":616,"range":{"start_line":616,"start_character":0,"end_line":616,"end_character":62},"updated":"2023-09-19 12:12:07.000000000","message":"from the logs it seems that the url starts with 127.0.0.1:17785 and that is not the port 8775","commit_id":"f4ce05f6713c1c1e9dcd0e0a6b11a32b56d80c21"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"7f404c6a35bf7d0fcd7b199c13da081c43f86b04","unresolved":false,"context_lines":[{"line_number":613,"context_line":"        if ipv6:"},{"line_number":614,"context_line":"            params \u003d {\u0027host\u0027: constants.METADATA_V6_IP,"},{"line_number":615,"context_line":"                      \u0027interface\u0027: interface,"},{"line_number":616,"context_line":"                      \u0027port\u0027: port or constants.METADATA_PORT}"},{"line_number":617,"context_line":"            url \u003d \u0027http://[%(host)s%%%(interface)s]:%(port)s\u0027 % params"},{"line_number":618,"context_line":"        else:"},{"line_number":619,"context_line":"            params \u003d {\u0027host\u0027: constants.METADATA_V4_IP,"}],"source_content_type":"text/x-python","patch_set":6,"id":"641d103e_02d8b9ea","line":616,"range":{"start_line":616,"start_character":0,"end_line":616,"end_character":62},"in_reply_to":"ad8f457c_44c95b31","updated":"2023-09-20 01:33:59.000000000","message":"17785 is the neutron-server\u0027s port.\n\nThe error is\n\n _generate_proxy_conf /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/l2/extensions/metadata/host_metadata_proxy.py:141\n2023-09-18 05:43:31.314 105622 DEBUG neutron.agent.linux.utils [None req-fcc5e26f-4899-4d80-8959-239db30e1a00 - fake_project_id - - - -] Unable to access /tmp/tmpnntug7rq/tmp039e4hmb/state_pathrthy0fyv/external/pids/host_metadata_proxy.pid.haproxy; Error: [Errno 2] No such file or directory: \u0027/tmp/tmpnntug7rq/tmp039e4hmb/state_pathrthy0fyv/external/pids/host_metadata_proxy.pid.haproxy\u0027 get_value_from_file /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/linux/utils.py:252\n2023-09-18 05:43:31.314 105622 DEBUG neutron.agent.linux.utils [None req-fcc5e26f-4899-4d80-8959-239db30e1a00 - fake_project_id - - - -] Running command (rootwrap daemon): [\u0027env\u0027, \u0027PROCESS_TAG\u003dhaproxy-host_metadata_proxy\u0027, \u0027haproxy\u0027, \u0027-f\u0027, \u0027/tmp/tmpnntug7rq/tmp039e4hmb/state_pathrthy0fyv/host_metadata_proxy.haproxy.conf\u0027, \u0027-p\u0027, \u0027/tmp/tmpnntug7rq/tmp039e4hmb/state_pathrthy0fyv/external/pids/host_metadata_proxy.pid.haproxy\u0027] execute_rootwrap_daemon /home/zuul/src/opendev.org/openstack/neutron/neutron/agent/linux/utils.py:108\n\nseems the `external/pids/` was not created.","commit_id":"f4ce05f6713c1c1e9dcd0e0a6b11a32b56d80c21"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"13c86312e551fb0991450e683468016fbdffd120","unresolved":true,"context_lines":[{"line_number":608,"context_line":"            self.useFixture(fixtures.Timeout(self.test_timeout, gentle\u003dTrue))"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"class MetadataTestMixin(object):"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def _get_command(self, machine, ipv6\u003dFalse, interface\u003dNone,"},{"line_number":614,"context_line":"                     port\u003dNone):"}],"source_content_type":"text/x-python","patch_set":29,"id":"bd4b65be_89e3875e","line":611,"range":{"start_line":611,"start_character":0,"end_line":611,"end_character":32},"updated":"2024-11-06 22:27:09.000000000","message":"This should be:\n\nclass MetadataTestMixin:","commit_id":"e18de897de7a21eca6dc9fe7d0a9706a5e8020c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"59ac6a7290a9976d7d7c5e1e542684b8ae5c45b4","unresolved":false,"context_lines":[{"line_number":608,"context_line":"            self.useFixture(fixtures.Timeout(self.test_timeout, gentle\u003dTrue))"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"class MetadataTestMixin(object):"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def _get_command(self, machine, ipv6\u003dFalse, interface\u003dNone,"},{"line_number":614,"context_line":"                     port\u003dNone):"}],"source_content_type":"text/x-python","patch_set":29,"id":"6932cca2_9fd85f6b","line":611,"range":{"start_line":611,"start_character":0,"end_line":611,"end_character":32},"in_reply_to":"bd4b65be_89e3875e","updated":"2024-11-07 01:18:12.000000000","message":"Done","commit_id":"e18de897de7a21eca6dc9fe7d0a9706a5e8020c4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":626,"context_line":"        router_ip_wrapper \u003d ip_lib.IPWrapper(router.ns_name)"},{"line_number":627,"context_line":"        ip_a_output \u003d router_ip_wrapper.netns.execute([\"ip\", \"addr\"])"},{"line_number":628,"context_line":"        LOG.debug(\"Interfaces in the router namespace (%s): %s\","},{"line_number":629,"context_line":"                  router.ns_name, ip_a_output)"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"    def _query_metadata_proxy(self, machine, ipv6\u003dFalse, interface\u003dNone,"},{"line_number":632,"context_line":"                              router\u003dNone, return_all\u003dFalse, port\u003dNone):"}],"source_content_type":"text/x-python","patch_set":38,"id":"92709972_b62057e3","line":629,"updated":"2025-02-13 22:33:04.000000000","message":"This should use ip_lib.get_devices_with_ip() and iterate the returned dictionary, or am I missing something?","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2fc5ecca77b82bd9b1f2f832e0f2c6d833985314","unresolved":true,"context_lines":[{"line_number":626,"context_line":"        router_ip_wrapper \u003d ip_lib.IPWrapper(router.ns_name)"},{"line_number":627,"context_line":"        ip_a_output \u003d router_ip_wrapper.netns.execute([\"ip\", \"addr\"])"},{"line_number":628,"context_line":"        LOG.debug(\"Interfaces in the router namespace (%s): %s\","},{"line_number":629,"context_line":"                  router.ns_name, ip_a_output)"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"    def _query_metadata_proxy(self, machine, ipv6\u003dFalse, interface\u003dNone,"},{"line_number":632,"context_line":"                              router\u003dNone, return_all\u003dFalse, port\u003dNone):"}],"source_content_type":"text/x-python","patch_set":38,"id":"ca4972fe_590dbe85","line":629,"in_reply_to":"0def154d_15994604","updated":"2025-02-14 21:45:16.000000000","message":"We can change in a follow-in so we user pyroute2 library, if we just care about interfaces and IP addresses it is very similar, just is a list of dictionaries (I tested locally).\n\nBut I am curious why it was moved as it is only used in that file from what I see.","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":true,"context_lines":[{"line_number":626,"context_line":"        router_ip_wrapper \u003d ip_lib.IPWrapper(router.ns_name)"},{"line_number":627,"context_line":"        ip_a_output \u003d router_ip_wrapper.netns.execute([\"ip\", \"addr\"])"},{"line_number":628,"context_line":"        LOG.debug(\"Interfaces in the router namespace (%s): %s\","},{"line_number":629,"context_line":"                  router.ns_name, ip_a_output)"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"    def _query_metadata_proxy(self, machine, ipv6\u003dFalse, interface\u003dNone,"},{"line_number":632,"context_line":"                              router\u003dNone, return_all\u003dFalse, port\u003dNone):"}],"source_content_type":"text/x-python","patch_set":38,"id":"0def154d_15994604","line":629,"in_reply_to":"92709972_b62057e3","updated":"2025-02-14 01:39:37.000000000","message":"This is a code movement from this: neutron/tests/functional/agent/l3/test_metadata_proxy.py in this change.","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"836e74a8812a4e966728d94c809e96a1d37f3d41","unresolved":true,"context_lines":[{"line_number":626,"context_line":"        router_ip_wrapper \u003d ip_lib.IPWrapper(router.ns_name)"},{"line_number":627,"context_line":"        ip_a_output \u003d router_ip_wrapper.netns.execute([\"ip\", \"addr\"])"},{"line_number":628,"context_line":"        LOG.debug(\"Interfaces in the router namespace (%s): %s\","},{"line_number":629,"context_line":"                  router.ns_name, ip_a_output)"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"    def _query_metadata_proxy(self, machine, ipv6\u003dFalse, interface\u003dNone,"},{"line_number":632,"context_line":"                              router\u003dNone, return_all\u003dFalse, port\u003dNone):"}],"source_content_type":"text/x-python","patch_set":38,"id":"0ff84c01_6b7e4383","line":629,"in_reply_to":"ca4972fe_590dbe85","updated":"2025-02-19 01:13:11.000000000","message":"``_query_metadata_proxy`` can be used for any metadata driver for both fullstack and functional tests, so moved the code here. Once I tried to make this fullstack case to request the metadata by a real curl, but not succeed on the upstream zuul, so changed to verify the ovs flows. So we not used it here then, i will reset it back.","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"}],"neutron/tests/common/net_helpers.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":831,"context_line":"    :type bridge: OVSBridge"},{"line_number":832,"context_line":"    \"\"\""},{"line_number":833,"context_line":"    def __init__(self, name):"},{"line_number":834,"context_line":"        super(OVSMetaBridgeFixture, self).__init__()"},{"line_number":835,"context_line":"        self.name \u003d name"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    def _setUp(self):"}],"source_content_type":"text/x-python","patch_set":38,"id":"cc12c1e9_ee2761da","line":834,"updated":"2025-02-13 22:33:04.000000000","message":"nit: s/super().__init__()","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":false,"context_lines":[{"line_number":831,"context_line":"    :type bridge: OVSBridge"},{"line_number":832,"context_line":"    \"\"\""},{"line_number":833,"context_line":"    def __init__(self, name):"},{"line_number":834,"context_line":"        super(OVSMetaBridgeFixture, self).__init__()"},{"line_number":835,"context_line":"        self.name \u003d name"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    def _setUp(self):"}],"source_content_type":"text/x-python","patch_set":38,"id":"b2a47736_8c805d75","line":834,"in_reply_to":"cc12c1e9_ee2761da","updated":"2025-02-14 01:39:37.000000000","message":"Done","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"eab9509494807dacdbd6ec6d5e629830a9fa95ed","unresolved":true,"context_lines":[{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    def _setUp(self):"},{"line_number":838,"context_line":"        ovs \u003d ovs_lib.BaseOVS()"},{"line_number":839,"context_line":"        self.bridge \u003d ovs.add_bridge(self.name)"},{"line_number":840,"context_line":"        self.addCleanup(self.bridge.destroy)"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"fa608742_d7b25a5c","line":839,"range":{"start_line":839,"start_character":37,"end_line":839,"end_character":46},"updated":"2025-02-24 22:34:08.000000000","message":"nit: if you respin this, this class can be just like the Trunk one below and use self.prefix here, at least it looks that way","commit_id":"907a2f63174191fdc09181b0547503509bffc3d6"}],"neutron/tests/fullstack/resources/config.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"9973e6d61bca1af43f00cd6f7ad9620c0910c22e","unresolved":true,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        self.tunneling_enabled \u003d self.env_desc.tunneling_enabled"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        if host_desc.segmented_physnet:"},{"line_number":221,"context_line":"            physnet \u003d PHYSICAL_NETWORK_SEGMENTS_NAME"},{"line_number":222,"context_line":"        else:"},{"line_number":223,"context_line":"            physnet \u003d PHYSICAL_NETWORK_NAME"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        self.phy_br_name \u003d utils.get_rand_device_name(prefix\u003d\u0027br-eth\u0027)"},{"line_number":226,"context_line":"        self.meta_br_name \u003d self._generate_meta_bridge()"}],"source_content_type":"text/x-python","patch_set":34,"id":"1bfe3b24_9ee44a5b","line":223,"range":{"start_line":220,"start_character":0,"end_line":223,"end_character":43},"updated":"2025-02-03 09:23:38.000000000","message":"this whole section seems unused, can be removed","commit_id":"1b36f33e89a339490bf18de27dabdb8246aab5d7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b510b3c8523c3db40c209e20f49f43da0cd5bf8c","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        self.tunneling_enabled \u003d self.env_desc.tunneling_enabled"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        if host_desc.segmented_physnet:"},{"line_number":221,"context_line":"            physnet \u003d PHYSICAL_NETWORK_SEGMENTS_NAME"},{"line_number":222,"context_line":"        else:"},{"line_number":223,"context_line":"            physnet \u003d PHYSICAL_NETWORK_NAME"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        self.phy_br_name \u003d utils.get_rand_device_name(prefix\u003d\u0027br-eth\u0027)"},{"line_number":226,"context_line":"        self.meta_br_name \u003d self._generate_meta_bridge()"}],"source_content_type":"text/x-python","patch_set":34,"id":"322fb1ea_9319bfec","line":223,"range":{"start_line":220,"start_character":0,"end_line":223,"end_character":43},"in_reply_to":"1bfe3b24_9ee44a5b","updated":"2025-02-04 08:11:54.000000000","message":"Done\n\nneutron.tests.fullstack.test_dhcp_agent.TestSubnetDeleteRace.test_subnet_delete_race_condition this case was failed, it looks like related to this change. These code should be refactor with these veriables.","commit_id":"1b36f33e89a339490bf18de27dabdb8246aab5d7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self.phy_br_name \u003d utils.get_rand_device_name(prefix\u003d\u0027br-eth\u0027)"},{"line_number":225,"context_line":"        self.meta_br_name \u003d self._generate_meta_bridge()"},{"line_number":226,"context_line":"        bridge_mappings \u003d \u0027%s:%s\u0027 % (physnet, self.phy_br_name)"},{"line_number":227,"context_line":"        if env_desc.has_metadata:"},{"line_number":228,"context_line":"            bridge_mappings +\u003d \u0027,%s:%s\u0027 % (\u0027meta\u0027, self.meta_br_name)"},{"line_number":229,"context_line":"        self.config.update({"}],"source_content_type":"text/x-python","patch_set":38,"id":"e6ae3d87_86817eec","line":226,"updated":"2025-02-13 22:33:04.000000000","message":"Can you keep this using format() like the original, it was changed as part of our py3.9 upgrade automation.\n\nbridge_mappings \u003d \u0027{}:{}\u0027.format(physnet, self.phy_br_name)\n\nSame below","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self.phy_br_name \u003d utils.get_rand_device_name(prefix\u003d\u0027br-eth\u0027)"},{"line_number":225,"context_line":"        self.meta_br_name \u003d self._generate_meta_bridge()"},{"line_number":226,"context_line":"        bridge_mappings \u003d \u0027%s:%s\u0027 % (physnet, self.phy_br_name)"},{"line_number":227,"context_line":"        if env_desc.has_metadata:"},{"line_number":228,"context_line":"            bridge_mappings +\u003d \u0027,%s:%s\u0027 % (\u0027meta\u0027, self.meta_br_name)"},{"line_number":229,"context_line":"        self.config.update({"}],"source_content_type":"text/x-python","patch_set":38,"id":"37a54a0c_177feb53","line":226,"in_reply_to":"e6ae3d87_86817eec","updated":"2025-02-14 01:39:37.000000000","message":"Done","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":382,"context_line":"class MetadataConfigFixture(ConfigFixture):"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def __init__(self, env_desc, host_desc, temp_dir):"},{"line_number":385,"context_line":"        super(MetadataConfigFixture, self).__init__("},{"line_number":386,"context_line":"            env_desc, host_desc, temp_dir, base_filename\u003d\u0027metadata.ini\u0027)"},{"line_number":387,"context_line":"        self.config.update({"},{"line_number":388,"context_line":"            \u0027DEFAULT\u0027: {"}],"source_content_type":"text/x-python","patch_set":38,"id":"15781094_ef04bbe2","line":385,"range":{"start_line":385,"start_character":8,"end_line":385,"end_character":51},"updated":"2025-02-13 22:33:04.000000000","message":"s/super().__init__(...)","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":false,"context_lines":[{"line_number":382,"context_line":"class MetadataConfigFixture(ConfigFixture):"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def __init__(self, env_desc, host_desc, temp_dir):"},{"line_number":385,"context_line":"        super(MetadataConfigFixture, self).__init__("},{"line_number":386,"context_line":"            env_desc, host_desc, temp_dir, base_filename\u003d\u0027metadata.ini\u0027)"},{"line_number":387,"context_line":"        self.config.update({"},{"line_number":388,"context_line":"            \u0027DEFAULT\u0027: {"}],"source_content_type":"text/x-python","patch_set":38,"id":"66c3156b_0e977800","line":385,"range":{"start_line":385,"start_character":8,"end_line":385,"end_character":51},"in_reply_to":"15781094_ef04bbe2","updated":"2025-02-14 01:39:37.000000000","message":"Done","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":393,"context_line":"        })"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    def _setUp(self):"},{"line_number":396,"context_line":"        super(MetadataConfigFixture, self)._setUp()"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"class L3ConfigFixture(ConfigFixture):"}],"source_content_type":"text/x-python","patch_set":38,"id":"6bfea972_b11367ac","line":396,"updated":"2025-02-13 22:33:04.000000000","message":"This method is not required, the super will happen if not present","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":false,"context_lines":[{"line_number":393,"context_line":"        })"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    def _setUp(self):"},{"line_number":396,"context_line":"        super(MetadataConfigFixture, self)._setUp()"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"class L3ConfigFixture(ConfigFixture):"}],"source_content_type":"text/x-python","patch_set":38,"id":"de40ec04_8e0e418c","line":396,"in_reply_to":"6bfea972_b11367ac","updated":"2025-02-14 01:39:37.000000000","message":"Done","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"}],"neutron/tests/fullstack/resources/process.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8b59e5259d2bdd9905039114320c307c0e8494ca","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                                                 \u0027servers\u0027)"},{"line_number":261,"context_line":"            ),"},{"line_number":262,"context_line":"            config_filenames\u003d[self.metadata_cfg_fixture.filename],"},{"line_number":263,"context_line":"            kill_signal\u003dsignal.SIGTERM))"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"class SRIOVAgentFixture(ServiceFixture):"}],"source_content_type":"text/x-python","patch_set":12,"id":"dae81ed5_bbde5a3c","line":263,"in_reply_to":"de643f05_cb91a11d","updated":"2024-06-20 04:10:37.000000000","message":"Unbelievable, why the test did not use the patch code here, test is run on master.","commit_id":"9d1ce4596ce14608d1b6c2859eeba9df400fb37a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":317,"context_line":"class MetadataFixture(ServiceFixture):"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    def __init__(self, env_desc, host_desc, test_name, metadata_cfg_fixture):"},{"line_number":320,"context_line":"        super(MetadataFixture, self).__init__()"},{"line_number":321,"context_line":"        self.env_desc \u003d env_desc"},{"line_number":322,"context_line":"        self.host_desc \u003d host_desc"},{"line_number":323,"context_line":"        self.test_name \u003d test_name"}],"source_content_type":"text/x-python","patch_set":38,"id":"746f9cad_f8f7aca3","line":320,"updated":"2025-02-13 22:33:04.000000000","message":"s/super().__init__()","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":false,"context_lines":[{"line_number":317,"context_line":"class MetadataFixture(ServiceFixture):"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    def __init__(self, env_desc, host_desc, test_name, metadata_cfg_fixture):"},{"line_number":320,"context_line":"        super(MetadataFixture, self).__init__()"},{"line_number":321,"context_line":"        self.env_desc \u003d env_desc"},{"line_number":322,"context_line":"        self.host_desc \u003d host_desc"},{"line_number":323,"context_line":"        self.test_name \u003d test_name"}],"source_content_type":"text/x-python","patch_set":38,"id":"ef39dd9b_6af994de","line":320,"in_reply_to":"746f9cad_f8f7aca3","updated":"2025-02-14 01:39:37.000000000","message":"Done","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"}],"neutron/tests/fullstack/servers/metadata.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"13c86312e551fb0991450e683468016fbdffd120","unresolved":true,"context_lines":[{"line_number":30,"context_line":"cfg.CONF.register_opts(metadata_opts)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class FakeMetadata(object):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def wsgi_app(self, env, start_response):"},{"line_number":36,"context_line":"        response_headers \u003d [(\u0027Content-Type\u0027, \u0027application/json\u0027)]"}],"source_content_type":"text/x-python","patch_set":29,"id":"37b80deb_e440a004","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":27},"updated":"2024-11-06 22:27:09.000000000","message":"This should be:\n\nclass FakeMetadata:\n\nI\u0027m surprised it did not fail pep8 job.","commit_id":"e18de897de7a21eca6dc9fe7d0a9706a5e8020c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"59ac6a7290a9976d7d7c5e1e542684b8ae5c45b4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"cfg.CONF.register_opts(metadata_opts)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class FakeMetadata(object):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def wsgi_app(self, env, start_response):"},{"line_number":36,"context_line":"        response_headers \u003d [(\u0027Content-Type\u0027, \u0027application/json\u0027)]"}],"source_content_type":"text/x-python","patch_set":29,"id":"cea6b8c0_8c57ad1d","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":27},"in_reply_to":"37b80deb_e440a004","updated":"2024-11-07 01:18:12.000000000","message":"Done","commit_id":"e18de897de7a21eca6dc9fe7d0a9706a5e8020c4"}],"neutron/tests/fullstack/test_ovs_metadata_extension.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"98c0913aef53b921a1d97cb1c9a2d8200ed05b03","unresolved":true,"context_lines":[{"line_number":175,"context_line":"    def test_ovs_meta_agent_extension_curl_metadata(self):"},{"line_number":176,"context_line":"        vms \u003d self._prepare_vms()"},{"line_number":177,"context_line":"        vms.block_until_all_boot()"},{"line_number":178,"context_line":"        resp \u003d self._query_metadata_proxy(vms[0], return_all\u003dTrue, port\u003d55555)"},{"line_number":179,"context_line":"        self.assertIn(\u0027Metadata OK\u0027, resp)"},{"line_number":180,"context_line":"        self.assertIn(str(webob.exc.HTTPOk.code), resp.splitlines()[0].split())"},{"line_number":181,"context_line":"        self.assertIn(self.vm_id_1, resp)"},{"line_number":182,"context_line":"        self.assertIn(self.tenant_id, resp)"},{"line_number":183,"context_line":"        resp \u003d self._query_metadata_proxy(vms[1], return_all\u003dTrue, port\u003d55555)"},{"line_number":184,"context_line":"        self.assertIn(\u0027Metadata OK\u0027, resp)"},{"line_number":185,"context_line":"        self.assertIn(str(webob.exc.HTTPOk.code), resp.splitlines()[0].split())"},{"line_number":186,"context_line":"        self.assertIn(self.vm_id_2, resp)"},{"line_number":187,"context_line":"        self.assertIn(self.tenant_id, resp)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9556677c_fe1f71a0","line":187,"range":{"start_line":178,"start_character":0,"end_line":187,"end_character":43},"updated":"2024-06-27 09:42:26.000000000","message":"Not sure why the upstream CI can not verify this by curl the fake metadata server. So changed to verify the br-meta critical flows.","commit_id":"ce61a494c1a26e1490c88eac89cd7ecd775fbd78"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"44ea9e5267302c9d9d61080b8d9acbe76d7c91f4","unresolved":true,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def _wait_for_metadata_flows_applied(self, vm, table, actions):"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        def _is_metadata_flow_set(vm, table, actions):"},{"line_number":179,"context_line":"            flows \u003d vm.host.br_meta.dump_flows_for_table(table)"},{"line_number":180,"context_line":"            flows_list \u003d flows.splitlines()"},{"line_number":181,"context_line":"            pattern \u003d re.compile("},{"line_number":182,"context_line":"                r\"^.* table\u003d%s,.* actions\u003d%s\" % (table, re.escape(actions)))"},{"line_number":183,"context_line":"            for flow in flows_list:"},{"line_number":184,"context_line":"                if pattern.match(flow.strip()):"},{"line_number":185,"context_line":"                    return True"},{"line_number":186,"context_line":"            return False"},{"line_number":187,"context_line":"        common_utils.wait_until_true(lambda: _is_metadata_flow_set("},{"line_number":188,"context_line":"            vm, table, actions))"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_ovs_meta_agent_extension_curl_metadata(self):"},{"line_number":191,"context_line":"        vms \u003d self._prepare_vms()"}],"source_content_type":"text/x-python","patch_set":17,"id":"edd45368_f904f90f","line":188,"range":{"start_line":178,"start_character":0,"end_line":188,"end_character":32},"updated":"2024-08-02 06:48:09.000000000","message":"The upstream CI is blackbox to us, hardly to see the real flows remotely. But, tests check flows passed in my test env locally. Add a log here, to debug it...","commit_id":"9575fa43c1c475de57ed8d8221080bf9a3ba05b5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"849730ab492e5d5e663cc955bb4f7712176f3bf0","unresolved":true,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        local_vlan \u003d vms[0].bridge.get_port_tag_by_name(vms[0].port.name)"},{"line_number":254,"context_line":"        patch_ofport \u003d vms[0].host.br_meta.get_port_ofport(\"phy-br-meta\")"},{"line_number":255,"context_line":"        self._wait_for_metadata_flows_applied("},{"line_number":256,"context_line":"            vms[0], 91,"},{"line_number":257,"context_line":"            (\"mod_vlan_vid:%s,mod_dl_dst:%s,\""},{"line_number":258,"context_line":"             \"mod_nw_src:169.254.169.254,mod_nw_dst:%s,\""}],"source_content_type":"text/x-python","patch_set":22,"id":"9c27a13b_271e2af3","line":255,"range":{"start_line":255,"start_character":13,"end_line":255,"end_character":45},"updated":"2024-08-06 07:41:23.000000000","message":"Good, we got failed at this line now:\nhttps://207d344a11fc84b19548-6c0ced7e746a352dadfa0dec27dd8f91.ssl.cf1.rackcdn.com/888098/22/check/neutron-fullstack-with-uwsgi/25dd6f1/testr_results.html\n\nThere are lines like this:\n\n2024-08-06 02:28:25.272 15909 INFO neutron.tests.fullstack.test_ovs_metadata_extension [-] Metadata bridge flows_list: [\u0027 cookie\u003d0x7d0440ccac6d958d, duration\u003d60.455s, table\u003d91, n_packets\u003d0, n_bytes\u003d0, idle_age\u003d62, priority\u003d202,tcp,in_port\u003d2,dl_vlan\u003d1,nw_dst\u003d240.0.204.176 actions\u003dmod_vlan_vid:2,mod_dl_dst:fa:16:3e:72:69:22,mod_nw_src:169.254.169.254,mod_nw_dst:10.0.0.225,output:1\u0027, \u0027 cookie\u003d0x7d0440ccac6d958d, duration\u003d58.526s, table\u003d91, n_packets\u003d0, n_bytes\u003d0, idle_age\u003d60, priority\u003d202,tcp,in_port\u003d2,dl_vlan\u003d1,nw_dst\u003d240.0.100.141 actions\u003dmod_vlan_vid:2,mod_dl_dst:fa:16:3e:17:6b:99,mod_nw_src:169.254.169.254,mod_nw_dst:10.0.0.120,output:1\u0027, \u0027 cookie\u003d0x7d0440ccac6d958d, duration\u003d91.388s, table\u003d91, n_packets\u003d0, n_bytes\u003d0, idle_age\u003d91, priority\u003d0 actions\u003ddrop\u0027]\n\nLet\u0027s log the action as well to see why not matched.","commit_id":"eca6b59c86c86c9a23ca748b68354df304854547"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94c80320523e1d38b60a9f714ef23cc3a3fe5d76","unresolved":true,"context_lines":[{"line_number":51,"context_line":"            host_proxy_listen_port\u003d55555,"},{"line_number":52,"context_line":"            enable_traditional_dhcp\u003dFalse)"},{"line_number":53,"context_line":"        env \u003d environment.Environment(env_desc, host_desc)"},{"line_number":54,"context_line":"        super(OvsMetadataExtensionTestCase, self).setUp(env)"},{"line_number":55,"context_line":"        self.tenant_id \u003d uuidutils.generate_uuid()"},{"line_number":56,"context_line":"        self.vm_id_1 \u003d uuidutils.generate_uuid()"},{"line_number":57,"context_line":"        self.vm_id_2 \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":38,"id":"1a392da4_b81f2c1f","line":54,"updated":"2025-02-13 22:33:04.000000000","message":"s/super().setUp(env)","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5a1756edd2d7a7b46da625a2c17d8c2de62e611b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            host_proxy_listen_port\u003d55555,"},{"line_number":52,"context_line":"            enable_traditional_dhcp\u003dFalse)"},{"line_number":53,"context_line":"        env \u003d environment.Environment(env_desc, host_desc)"},{"line_number":54,"context_line":"        super(OvsMetadataExtensionTestCase, self).setUp(env)"},{"line_number":55,"context_line":"        self.tenant_id \u003d uuidutils.generate_uuid()"},{"line_number":56,"context_line":"        self.vm_id_1 \u003d uuidutils.generate_uuid()"},{"line_number":57,"context_line":"        self.vm_id_2 \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":38,"id":"ffece559_deb7f02a","line":54,"in_reply_to":"1a392da4_b81f2c1f","updated":"2025-02-14 01:39:37.000000000","message":"Done","commit_id":"30a2e42226adbf0ea57ac883f0bd6a773bc4244b"}]}
