)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35638,"deleted":true},"change_message_id":"fd5a46845f53187df760f422064cc3eae076b6fc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":18,"id":"a4cc9f49_fd6d5109","updated":"2024-02-15 10:51:36.000000000","message":"Should we merge the ovn-bgp-agent role into the neutron role?","commit_id":"cec9c3ddf6dc130eeda8ddfe419b0f8a0f9fa409"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cbe15a13ca6cc9490fa30996cea20cb13575f552","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":18,"id":"c542a922_52c1af3a","in_reply_to":"a4cc9f49_fd6d5109","updated":"2024-05-02 16:54:57.000000000","message":"I would prefer that not happen. This way we can specify a tag to only update ovn-bgp-agent, especially if a driver or function changes.","commit_id":"cec9c3ddf6dc130eeda8ddfe419b0f8a0f9fa409"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"505c48fe7a493d0e620e573e4a47a1e9c0c38224","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"ab3d535a_df376b62","in_reply_to":"c542a922_52c1af3a","updated":"2024-05-06 12:40:36.000000000","message":"I agree. \nIt was moved in kolla, and therefore I wondered whether it would make sense to change it here too.\nBut at least for me, your argument is valid and we should keep it seperated.","commit_id":"cec9c3ddf6dc130eeda8ddfe419b0f8a0f9fa409"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"2ecca5b8640044d7ec9183283c6fed7eff7693ff","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":26,"id":"ff2fe1d4_560a4a2a","updated":"2024-05-13 21:07:05.000000000","message":"br-ex is placed on a different routing table every time container restarts.","commit_id":"635e0f849b7dec83cd29c9d29143cfc4166909a1"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"f3e1cb29862e77c9f8ea598b1d3b03fd8dda5e69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"cf7285ce_f48b2ca8","in_reply_to":"a2c1c6a1_104f81fa","updated":"2024-06-03 21:08:14.000000000","message":"Done","commit_id":"635e0f849b7dec83cd29c9d29143cfc4166909a1"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"a8c7dee478749d2aa1d720748e7b3a572a91ab3b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":26,"id":"a2c1c6a1_104f81fa","in_reply_to":"ff2fe1d4_560a4a2a","updated":"2024-05-14 22:16:36.000000000","message":"We may need to mount /etc/iproute2/rt_tables to the container so we can keep that static. I noticed that multiple restarts created a ton of ip rules and route tables.","commit_id":"635e0f849b7dec83cd29c9d29143cfc4166909a1"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"214b78cdf24ba1a1144d42d4fcd847f938ed5461","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"e2a81cee_353f7546","updated":"2024-06-27 13:17:25.000000000","message":"nit:","commit_id":"9e1de94483b6572defd6e680010f92abb47ca424"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"59f80d77f472996b361109744d942a129b3280c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"dfb27835_4d9e00ee","updated":"2024-08-27 14:03:20.000000000","message":"recheck - depends on fail","commit_id":"046b5ee0642eea7fe4f792822b073c1f08841cc9"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"153036c84eaf9456cc190dc7c8a6eeb5b99f4bc6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":42,"id":"22d6b88a_d1cac221","updated":"2024-09-03 14:58:20.000000000","message":"I\u0027m still reviewing, just wanted to highlight some failed job, in case nobody took a look just yet.\n\nthis still fails with:\n\n```\nFAILED - RETRYING: [secondary1]: Wait for ovn-nb-db (7 retries left).Result was: [..]\n\"Timeout when waiting for 192.0.2.2:6641\",\n\n    \"retries\": 11\n```\n\nin deploy.sh stage in job kolla-ansible-debian-ovn:\n\nhttps://zuul.opendev.org/t/openstack/build/5ca1da50f0ce4087ae19dabe0227542c/log/primary/logs/ansible/deploy","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"86746904e64c4cb65be7692bddc028819c132299","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":42,"id":"4986c2a0_fa2d63f0","updated":"2024-09-04 09:37:08.000000000","message":"Please also add some docs to the neutron reference docs at https://docs.openstack.org/kolla-ansible/latest/reference/networking/neutron.html on how to use this.\n\nYou can find this in the source tree under `./doc/source/reference/networking/neutron.rst`\n\nThanks!","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"b85d9bddcfe273812a53d5973c6ccde18894ee9f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":42,"id":"41c05e31_116e715a","updated":"2024-09-06 07:30:28.000000000","message":"this is still missing the parts for horizon, afaik.","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":42,"id":"2039f091_9fa9859b","in_reply_to":"22d6b88a_d1cac221","updated":"2024-09-11 10:53:05.000000000","message":"Tbh I\u0027m do not have a good understanding of how the testing works and what configuration is actually used.\nBut I cannot see any reason why the connection to the OVN NB DB should fail.","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"7cc95575_62275893","in_reply_to":"41c05e31_116e715a","updated":"2024-09-11 10:53:05.000000000","message":"Done","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":42,"id":"45b83046_5e291e93","in_reply_to":"4986c2a0_fa2d63f0","updated":"2024-09-11 10:53:05.000000000","message":"Acknowledged","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"}],"ansible/group_vars/all.yml":[{"author":{"_account_id":35638,"deleted":true},"change_message_id":"090bacedb5734640e7bca237c808b0e9ef067fc8","unresolved":true,"context_lines":[{"line_number":272,"context_line":"####################"},{"line_number":273,"context_line":"network_interface: \"eth0\""},{"line_number":274,"context_line":"neutron_external_interface: \"eth1\""},{"line_number":275,"context_line":"neutron_no_external_interface: \"{{ enable_ovn_bgp_agent }}\""},{"line_number":276,"context_line":"kolla_external_vip_interface: \"{{ network_interface }}\""},{"line_number":277,"context_line":"api_interface: \"{{ network_interface }}\""},{"line_number":278,"context_line":"swift_storage_interface: \"{{ network_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":31,"id":"64c31f07_51a39dfc","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":59},"updated":"2024-09-03 13:04:30.000000000","message":"OVN-BGP-Agent routes traffic from/to br-ex instead of bridging it directly to the physical world, so we need a knob to disable the addition of physical ports to br-ex.","commit_id":"046b5ee0642eea7fe4f792822b073c1f08841cc9"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"2d0a475f8f03270d8c3c42c2543644cfb3b0debd","unresolved":true,"context_lines":[{"line_number":272,"context_line":"####################"},{"line_number":273,"context_line":"network_interface: \"eth0\""},{"line_number":274,"context_line":"neutron_external_interface: \"eth1\""},{"line_number":275,"context_line":"neutron_no_external_interface: \"{{ enable_ovn_bgp_agent }}\""},{"line_number":276,"context_line":"kolla_external_vip_interface: \"{{ network_interface }}\""},{"line_number":277,"context_line":"api_interface: \"{{ network_interface }}\""},{"line_number":278,"context_line":"swift_storage_interface: \"{{ network_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":31,"id":"699d9d4c_a3efe822","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":59},"in_reply_to":"64c31f07_51a39dfc","updated":"2024-09-09 07:59:20.000000000","message":"Isn\u0027t it possible to have both? this knob will disable totally a external networking","commit_id":"046b5ee0642eea7fe4f792822b073c1f08841cc9"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":true,"context_lines":[{"line_number":272,"context_line":"####################"},{"line_number":273,"context_line":"network_interface: \"eth0\""},{"line_number":274,"context_line":"neutron_external_interface: \"eth1\""},{"line_number":275,"context_line":"neutron_no_external_interface: \"{{ enable_ovn_bgp_agent }}\""},{"line_number":276,"context_line":"kolla_external_vip_interface: \"{{ network_interface }}\""},{"line_number":277,"context_line":"api_interface: \"{{ network_interface }}\""},{"line_number":278,"context_line":"swift_storage_interface: \"{{ network_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":31,"id":"f39896ca_7b8d4e7f","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":59},"in_reply_to":"699d9d4c_a3efe822","updated":"2024-09-11 10:53:05.000000000","message":"It will disable the L2 connection between br-ex and the physical interface, but that\u0027s expected since ovn-bgp-agent will route the traffic between br-ex and the EVPN.\n\nHaving both is an interesting idea but I\u0027m unsure how that could be achieved.\nSome VLANs should be bridged to the physical world while others should be routed to the EVPN? The link thats created between br-ex and the physical interfaces is not VLAN aware. Thats nothing thats expected in ovn-bgp-agent AFAIK.\nMaybe that\u0027s a topic for a separate change once this has been merged?","commit_id":"046b5ee0642eea7fe4f792822b073c1f08841cc9"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"090bacedb5734640e7bca237c808b0e9ef067fc8","unresolved":true,"context_lines":[{"line_number":824,"context_line":"enable_octavia_jobboard: \"{{ enable_octavia | bool and \u0027amphora\u0027 in octavia_provider_drivers }}\""},{"line_number":825,"context_line":"enable_openvswitch: \"{{ enable_neutron | bool and neutron_plugin_agent !\u003d \u0027linuxbridge\u0027 }}\""},{"line_number":826,"context_line":"enable_ovn: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":827,"context_line":"enable_ovn_bgp_agent: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":828,"context_line":"enable_ovs_dpdk: \"no\""},{"line_number":829,"context_line":"enable_osprofiler: \"no\""},{"line_number":830,"context_line":"enable_placement: \"{{ enable_nova | bool or enable_zun | bool }}\""}],"source_content_type":"text/x-yaml","patch_set":42,"id":"c38ed5d8_5decad1b","line":827,"range":{"start_line":827,"start_character":1,"end_line":827,"end_character":85},"updated":"2024-09-03 13:04:30.000000000","message":"Why do you want to enable it by default? \nOVN can be used without OVN-BGP-Agent.","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":false,"context_lines":[{"line_number":824,"context_line":"enable_octavia_jobboard: \"{{ enable_octavia | bool and \u0027amphora\u0027 in octavia_provider_drivers }}\""},{"line_number":825,"context_line":"enable_openvswitch: \"{{ enable_neutron | bool and neutron_plugin_agent !\u003d \u0027linuxbridge\u0027 }}\""},{"line_number":826,"context_line":"enable_ovn: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":827,"context_line":"enable_ovn_bgp_agent: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":828,"context_line":"enable_ovs_dpdk: \"no\""},{"line_number":829,"context_line":"enable_osprofiler: \"no\""},{"line_number":830,"context_line":"enable_placement: \"{{ enable_nova | bool or enable_zun | bool }}\""}],"source_content_type":"text/x-yaml","patch_set":42,"id":"d406052b_00e7484f","line":827,"range":{"start_line":827,"start_character":1,"end_line":827,"end_character":85},"in_reply_to":"36199add_fe382ff1","updated":"2024-09-11 10:53:05.000000000","message":"Done","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"2d0a475f8f03270d8c3c42c2543644cfb3b0debd","unresolved":true,"context_lines":[{"line_number":824,"context_line":"enable_octavia_jobboard: \"{{ enable_octavia | bool and \u0027amphora\u0027 in octavia_provider_drivers }}\""},{"line_number":825,"context_line":"enable_openvswitch: \"{{ enable_neutron | bool and neutron_plugin_agent !\u003d \u0027linuxbridge\u0027 }}\""},{"line_number":826,"context_line":"enable_ovn: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":827,"context_line":"enable_ovn_bgp_agent: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":828,"context_line":"enable_ovs_dpdk: \"no\""},{"line_number":829,"context_line":"enable_osprofiler: \"no\""},{"line_number":830,"context_line":"enable_placement: \"{{ enable_nova | bool or enable_zun | bool }}\""}],"source_content_type":"text/x-yaml","patch_set":42,"id":"36199add_fe382ff1","line":827,"range":{"start_line":827,"start_character":1,"end_line":827,"end_character":85},"in_reply_to":"87bab9e4_e7c0a5bb","updated":"2024-09-09 07:59:20.000000000","message":"that was just to test deployment in the WIP phase, will remove it eventually","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"153036c84eaf9456cc190dc7c8a6eeb5b99f4bc6","unresolved":true,"context_lines":[{"line_number":824,"context_line":"enable_octavia_jobboard: \"{{ enable_octavia | bool and \u0027amphora\u0027 in octavia_provider_drivers }}\""},{"line_number":825,"context_line":"enable_openvswitch: \"{{ enable_neutron | bool and neutron_plugin_agent !\u003d \u0027linuxbridge\u0027 }}\""},{"line_number":826,"context_line":"enable_ovn: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":827,"context_line":"enable_ovn_bgp_agent: \"{{ enable_neutron | bool and neutron_plugin_agent \u003d\u003d \u0027ovn\u0027 }}\""},{"line_number":828,"context_line":"enable_ovs_dpdk: \"no\""},{"line_number":829,"context_line":"enable_osprofiler: \"no\""},{"line_number":830,"context_line":"enable_placement: \"{{ enable_nova | bool or enable_zun | bool }}\""}],"source_content_type":"text/x-yaml","patch_set":42,"id":"87bab9e4_e7c0a5bb","line":827,"range":{"start_line":827,"start_character":1,"end_line":827,"end_character":85},"in_reply_to":"c38ed5d8_5decad1b","updated":"2024-09-03 14:58:20.000000000","message":"good point imho","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"}],"ansible/roles/frr/tasks/config-host.yml":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"b85d9bddcfe273812a53d5973c6ccde18894ee9f","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    sysctl_file: \"{{ kolla_sysctl_conf_path }}\""},{"line_number":12,"context_line":"  with_items:"},{"line_number":13,"context_line":"    - { name: \"net.ipv4.ip_forward\", value: \"1\"}"},{"line_number":14,"context_line":"    - { name: \"net.ipv6.conf.all.forwarding\", value: \"1\"}"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - set_sysctl | bool"},{"line_number":17,"context_line":"    - item.value !\u003d \u0027KOLLA_SKIP\u0027"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"69f9debf_13d89e2d","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":2},"updated":"2024-09-06 07:30:28.000000000","message":"make this dependent on whether ipv6 is enabled, there\u0027s prior art for this in kolla-ansible/ansible/roles/loadbalancer/tasks/config-host.yml:\n\n```\n- name: Check IPv6 support\n  command: /usr/sbin/sysctl -n net.ipv6.conf.all.disable_ipv6\n  register: ipv6_disabled\n  changed_when: false\n```","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    sysctl_file: \"{{ kolla_sysctl_conf_path }}\""},{"line_number":12,"context_line":"  with_items:"},{"line_number":13,"context_line":"    - { name: \"net.ipv4.ip_forward\", value: \"1\"}"},{"line_number":14,"context_line":"    - { name: \"net.ipv6.conf.all.forwarding\", value: \"1\"}"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - set_sysctl | bool"},{"line_number":17,"context_line":"    - item.value !\u003d \u0027KOLLA_SKIP\u0027"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"75e2c96f_157de90a","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":2},"in_reply_to":"69f9debf_13d89e2d","updated":"2024-09-11 10:53:05.000000000","message":"Done","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"}],"ansible/roles/frr/templates/start-frr.j2":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"b85d9bddcfe273812a53d5973c6ccde18894ee9f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"if [ -r \"/lib/lsb/init-functions\" ]; then"},{"line_number":4,"context_line":"\t. /lib/lsb/init-functions"},{"line_number":5,"context_line":"else"},{"line_number":6,"context_line":"\tlog_success_msg() {"},{"line_number":7,"context_line":"\t\techo \"$@\""}],"source_content_type":"text/x-jinja2","patch_set":42,"id":"263a0ffb_50ef007a","line":4,"range":{"start_line":4,"start_character":1,"end_line":4,"end_character":2},"updated":"2024-09-06 07:30:28.000000000","message":"I would prefer using `source` here as well, for easier grepability.","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"if [ -r \"/lib/lsb/init-functions\" ]; then"},{"line_number":4,"context_line":"\t. /lib/lsb/init-functions"},{"line_number":5,"context_line":"else"},{"line_number":6,"context_line":"\tlog_success_msg() {"},{"line_number":7,"context_line":"\t\techo \"$@\""}],"source_content_type":"text/x-jinja2","patch_set":42,"id":"e167448f_fa6c9b22","line":4,"range":{"start_line":4,"start_character":1,"end_line":4,"end_character":2},"in_reply_to":"263a0ffb_50ef007a","updated":"2024-09-11 10:53:05.000000000","message":"Done","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"}],"ansible/roles/openvswitch/tasks/post-config.yml":[{"author":{"_account_id":35638,"deleted":true},"change_message_id":"8a501710b35d3c80993c796b9fb866b566b7aff5","unresolved":true,"context_lines":[{"line_number":37,"context_line":"  when:"},{"line_number":38,"context_line":"    - ((inventory_hostname in groups[\"network\"])"},{"line_number":39,"context_line":"      or (inventory_hostname in groups[\"compute\"] and computes_need_external_bridge | bool ))"},{"line_number":40,"context_line":"      and not neutron_no_external_interface | bool"},{"line_number":41,"context_line":"  with_together:"},{"line_number":42,"context_line":"    - \"{{ neutron_bridge_name.split(\u0027,\u0027) }}\""},{"line_number":43,"context_line":"    - \"{{ neutron_external_interface.split(\u0027,\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df9e87fb_7d1944b9","line":40,"updated":"2024-02-15 09:19:23.000000000","message":"Shouldn\u0027t we check if we should connect that?","commit_id":"309c59574d2df920944dfa95a9f84469993dd31b"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"25561b7b1399a7f39f946af78058553c56226e49","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  when:"},{"line_number":38,"context_line":"    - ((inventory_hostname in groups[\"network\"])"},{"line_number":39,"context_line":"      or (inventory_hostname in groups[\"compute\"] and computes_need_external_bridge | bool ))"},{"line_number":40,"context_line":"      and not neutron_no_external_interface | bool"},{"line_number":41,"context_line":"  with_together:"},{"line_number":42,"context_line":"    - \"{{ neutron_bridge_name.split(\u0027,\u0027) }}\""},{"line_number":43,"context_line":"    - \"{{ neutron_external_interface.split(\u0027,\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"76d45c2e_f1d0b198","line":40,"in_reply_to":"ce44b65c_0e2310ec","updated":"2024-02-15 10:51:53.000000000","message":"Done","commit_id":"309c59574d2df920944dfa95a9f84469993dd31b"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4f3c7358577d10392d3c51b21f00ccf9fa131e32","unresolved":true,"context_lines":[{"line_number":37,"context_line":"  when:"},{"line_number":38,"context_line":"    - ((inventory_hostname in groups[\"network\"])"},{"line_number":39,"context_line":"      or (inventory_hostname in groups[\"compute\"] and computes_need_external_bridge | bool ))"},{"line_number":40,"context_line":"      and not neutron_no_external_interface | bool"},{"line_number":41,"context_line":"  with_together:"},{"line_number":42,"context_line":"    - \"{{ neutron_bridge_name.split(\u0027,\u0027) }}\""},{"line_number":43,"context_line":"    - \"{{ neutron_external_interface.split(\u0027,\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ce44b65c_0e2310ec","line":40,"in_reply_to":"df9e87fb_7d1944b9","updated":"2024-02-15 09:32:09.000000000","message":"Sorry, referenced the wrong patchset.","commit_id":"309c59574d2df920944dfa95a9f84469993dd31b"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"090bacedb5734640e7bca237c808b0e9ef067fc8","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  when:"},{"line_number":52,"context_line":"    - ((inventory_hostname in groups[\"network\"])"},{"line_number":53,"context_line":"      or (inventory_hostname in groups[\"compute\"] and computes_need_external_bridge | bool ))"},{"line_number":54,"context_line":"      and not neutron_no_external_interface | bool"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"df34c319_499cdfee","line":54,"range":{"start_line":54,"start_character":1,"end_line":54,"end_character":50},"updated":"2024-09-03 13:04:30.000000000","message":"See my comment above.","commit_id":"046b5ee0642eea7fe4f792822b073c1f08841cc9"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  when:"},{"line_number":52,"context_line":"    - ((inventory_hostname in groups[\"network\"])"},{"line_number":53,"context_line":"      or (inventory_hostname in groups[\"compute\"] and computes_need_external_bridge | bool ))"},{"line_number":54,"context_line":"      and not neutron_no_external_interface | bool"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"b58bab0f_54e75e83","line":54,"range":{"start_line":54,"start_character":1,"end_line":54,"end_character":50},"in_reply_to":"df34c319_499cdfee","updated":"2024-09-11 10:53:05.000000000","message":"Done","commit_id":"046b5ee0642eea7fe4f792822b073c1f08841cc9"}],"ansible/roles/ovn-bgp-agent/defaults/main.yml":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"cbe15a13ca6cc9490fa30996cea20cb13575f552","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ovn_bgp_agent_services:"},{"line_number":3,"context_line":"  ovn_bgp_agent:"},{"line_number":4,"context_line":"    container_name: \"ovn-bgp-agent\""},{"line_number":5,"context_line":"    image: \"{{ ovn_bgp_agent_image_full }}\""},{"line_number":6,"context_line":"    enabled: \"{{ enable_ovn_bgp_agent }}\""},{"line_number":7,"context_line":"    privileged: True"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"f86a8171_d16b0a9e","line":4,"updated":"2024-05-02 16:54:57.000000000","message":"Container name should probably be ovn_bgp_agent to be more compliant with the rest of the running containers.","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"505c48fe7a493d0e620e573e4a47a1e9c0c38224","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ovn_bgp_agent_services:"},{"line_number":3,"context_line":"  ovn_bgp_agent:"},{"line_number":4,"context_line":"    container_name: \"ovn-bgp-agent\""},{"line_number":5,"context_line":"    image: \"{{ ovn_bgp_agent_image_full }}\""},{"line_number":6,"context_line":"    enabled: \"{{ enable_ovn_bgp_agent }}\""},{"line_number":7,"context_line":"    privileged: True"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"504878a4_6a783c95","line":4,"in_reply_to":"f86a8171_d16b0a9e","updated":"2024-05-06 12:40:36.000000000","message":"Done. You will have to remove the old container manually if you were using this change before.","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"}],"ansible/roles/ovn-bgp-agent/tasks/config-host.yml":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"b31d653c5cedd074941b4b6ebb5f2a06b92f3af3","unresolved":true,"context_lines":[{"line_number":27,"context_line":"- name: Disable ipv4 rp_filter on each interface"},{"line_number":28,"context_line":"  become: true"},{"line_number":29,"context_line":"  sysctl:"},{"line_number":30,"context_line":"    name: \"net.ipv4.conf.{{ item }}.rp_filter\""},{"line_number":31,"context_line":"    state: \"present\""},{"line_number":32,"context_line":"    value: \"0\""},{"line_number":33,"context_line":"    sysctl_set: \"true\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5eaed53d_d87c8ec8","line":30,"updated":"2024-05-02 16:16:39.000000000","message":"There is an issue with this. If a user sets a VLAN interface as their bgp_loopback_ip, the sysctl will error with setting net.ipv4.conf.data.521.rp_filter failed: sysctl: cannot stat /proc/sys/net/ipv4/conf/data/521/rp_filter: No such file or directory\n\nIn order to fix that, we need to replace any periods with slashes.\n\nnet.ipv4.conf.data/521.rp_filter","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"505c48fe7a493d0e620e573e4a47a1e9c0c38224","unresolved":false,"context_lines":[{"line_number":27,"context_line":"- name: Disable ipv4 rp_filter on each interface"},{"line_number":28,"context_line":"  become: true"},{"line_number":29,"context_line":"  sysctl:"},{"line_number":30,"context_line":"    name: \"net.ipv4.conf.{{ item }}.rp_filter\""},{"line_number":31,"context_line":"    state: \"present\""},{"line_number":32,"context_line":"    value: \"0\""},{"line_number":33,"context_line":"    sysctl_set: \"true\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ebcf6880_e02de4c7","line":30,"in_reply_to":"5eaed53d_d87c8ec8","updated":"2024-05-06 12:40:36.000000000","message":"Done","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"b85d9bddcfe273812a53d5973c6ccde18894ee9f","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  when:"},{"line_number":21,"context_line":"    - set_sysctl | bool"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# NOTE(msnatepg): We need to disable rp_filter for every interface"},{"line_number":24,"context_line":"# The max value from conf/{all,interface}/rp_filter is used when doing source validation on the {interface}."},{"line_number":25,"context_line":"# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/networking/ip-sysctl.rst?#n1670"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":42,"id":"b900ad4a_5658fc43","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":2},"updated":"2024-09-06 07:30:28.000000000","message":"this comment is missing to explain why we need to disable rp_filter, please add the reason.","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"4ca2e11c33b9330f1227aa665e6c92da33ac2724","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  when:"},{"line_number":21,"context_line":"    - set_sysctl | bool"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# NOTE(msnatepg): We need to disable rp_filter for every interface"},{"line_number":24,"context_line":"# The max value from conf/{all,interface}/rp_filter is used when doing source validation on the {interface}."},{"line_number":25,"context_line":"# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/networking/ip-sysctl.rst?#n1670"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":42,"id":"0c101139_61cc9a7e","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":2},"in_reply_to":"b900ad4a_5658fc43","updated":"2024-09-11 10:53:05.000000000","message":"Acknowledged","commit_id":"e9c2f00ac662e210cf57a8206a9aad35f7577b26"}],"ansible/roles/ovn-bgp-agent/tasks/config.yml":[{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"214b78cdf24ba1a1144d42d4fcd847f938ed5461","unresolved":true,"context_lines":[{"line_number":25,"context_line":"  notify:"},{"line_number":26,"context_line":"    - Restart ovn_bgp_agent container"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- name: Copying over bgp-agent.conf"},{"line_number":29,"context_line":"  become: true"},{"line_number":30,"context_line":"  vars:"},{"line_number":31,"context_line":"    service: \"{{ ovn_bgp_agent_services[\u0027ovn_bgp_agent\u0027] }}\""}],"source_content_type":"text/x-yaml","patch_set":28,"id":"9ce05090_37827e79","line":28,"updated":"2024-06-27 13:17:25.000000000","message":"nit: use merge_config vs template so we can keep the template straight and add overrides for things like advertisement_method_tenant_networks and such.","commit_id":"9e1de94483b6572defd6e680010f92abb47ca424"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"51021b1c69b22d6f9f99e67ce82d05d0ab393d67","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  notify:"},{"line_number":26,"context_line":"    - Restart ovn_bgp_agent container"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- name: Copying over bgp-agent.conf"},{"line_number":29,"context_line":"  become: true"},{"line_number":30,"context_line":"  vars:"},{"line_number":31,"context_line":"    service: \"{{ ovn_bgp_agent_services[\u0027ovn_bgp_agent\u0027] }}\""}],"source_content_type":"text/x-yaml","patch_set":28,"id":"466e4566_53c35407","line":28,"in_reply_to":"9ce05090_37827e79","updated":"2024-07-12 13:24:39.000000000","message":"Agreed. Will add that in the next patchset.","commit_id":"9e1de94483b6572defd6e680010f92abb47ca424"}],"ansible/roles/ovn-bgp-agent/templates/bgp-agent.conf":[{"author":{"_account_id":36319,"name":"Freerk-Ole Zakfeld","display_name":"Freerk-Ole Zakfeld","email":"freerk@zakfeld.com","username":"freerkzakfeld","status":"I work as a cloud engineer at ScaleUp Technologies"},"change_message_id":"89f3c8c536651ffa10791076aec114a53c47f993","unresolved":true,"context_lines":[{"line_number":6,"context_line":"driver\u003dnb_ovn_bgp_driver"},{"line_number":7,"context_line":"exposing_method\u003ddynamic"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"bgp_AS\u003d\"{{ evpn_local_asn }}\""},{"line_number":10,"context_line":"bgp_router_id\u003d\"{{ evpn_loopback_ip }}\""},{"line_number":11,"context_line":"evpn_nic\u003d\"{{ evpn_loopback_interface }}\""},{"line_number":12,"context_line":"evpn_local_ip\u003d\"{{ evpn_loopback_ip }}\""}],"source_content_type":"text/plain","patch_set":22,"id":"fee07b39_a8ff5428","line":9,"updated":"2024-04-08 13:30:08.000000000","message":"Should be really call the variables `evpn_*`? We want to use the bgp-agent in L3 mode without EVPN, so the naming doesn\u0027t really make sense for that use case.","commit_id":"364853a126a07f893420d551000a09dcdab2c2bf"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"5f86f23981ec39fb703852a2722f51495ea46b8b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"driver\u003dnb_ovn_bgp_driver"},{"line_number":7,"context_line":"exposing_method\u003ddynamic"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"bgp_AS\u003d\"{{ evpn_local_asn }}\""},{"line_number":10,"context_line":"bgp_router_id\u003d\"{{ evpn_loopback_ip }}\""},{"line_number":11,"context_line":"evpn_nic\u003d\"{{ evpn_loopback_interface }}\""},{"line_number":12,"context_line":"evpn_local_ip\u003d\"{{ evpn_loopback_ip }}\""}],"source_content_type":"text/plain","patch_set":22,"id":"d96739b0_5ff1ef22","line":9,"in_reply_to":"d8b18428_b3465db7","updated":"2024-04-26 14:39:30.000000000","message":"Done","commit_id":"364853a126a07f893420d551000a09dcdab2c2bf"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"ddeda2407aa8dcb0662ef3290b2d40493c341922","unresolved":true,"context_lines":[{"line_number":6,"context_line":"driver\u003dnb_ovn_bgp_driver"},{"line_number":7,"context_line":"exposing_method\u003ddynamic"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"bgp_AS\u003d\"{{ evpn_local_asn }}\""},{"line_number":10,"context_line":"bgp_router_id\u003d\"{{ evpn_loopback_ip }}\""},{"line_number":11,"context_line":"evpn_nic\u003d\"{{ evpn_loopback_interface }}\""},{"line_number":12,"context_line":"evpn_local_ip\u003d\"{{ evpn_loopback_ip }}\""}],"source_content_type":"text/plain","patch_set":22,"id":"d8b18428_b3465db7","line":9,"in_reply_to":"fee07b39_a8ff5428","updated":"2024-04-12 21:34:20.000000000","message":"I think its fine. The expose method is dynamic, meaning it will work both ways. The only difference here is we have to include evpn_nic and evpn_local_ip in the configuration.\n\nI don\u0027t think it harms anything being there. BGPVPN is only configured if the admin goes in and sets it up anyway.","commit_id":"364853a126a07f893420d551000a09dcdab2c2bf"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"40343bc141a6f27c89c6cb4c2f8595d6720c4b4d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"debug\u003dFalse"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"ovsdb_connection\u003d\"unix:/var/run/openvswitch/db.sock\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"driver\u003d\"{{ ovn_bgp_agent_driver }}\""}],"source_content_type":"text/plain","patch_set":25,"id":"ca8cbc7a_a93ea48c","line":3,"updated":"2024-05-02 18:03:09.000000000","message":"We need to include log_file in here.\n\n/var/log/kolla/openvswitch/ovn-bgp-agent.log","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"505c48fe7a493d0e620e573e4a47a1e9c0c38224","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"debug\u003dFalse"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"ovsdb_connection\u003d\"unix:/var/run/openvswitch/db.sock\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"driver\u003d\"{{ ovn_bgp_agent_driver }}\""}],"source_content_type":"text/plain","patch_set":25,"id":"5ab4bb27_b7d84e5e","line":3,"in_reply_to":"ca8cbc7a_a93ea48c","updated":"2024-05-06 12:40:36.000000000","message":"I agree that this would be nice.\nCurrently testing that, I will also add a config for fluentd to export these logs.","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":36670,"name":"Jay Jahns","email":"jayjahns@gmail.com","username":"jayjahns"},"change_message_id":"40343bc141a6f27c89c6cb4c2f8595d6720c4b4d","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"driver\u003d\"{{ ovn_bgp_agent_driver }}\""},{"line_number":7,"context_line":"exposing_method\u003d\"{{ ovn_bgp_agent_exposing_method }}\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"bgp_AS\u003d\"{{ bgp_local_asn }}\""},{"line_number":10,"context_line":"bgp_router_id\u003d\"{{ bgp_loopback_ip }}\""},{"line_number":11,"context_line":"evpn_nic\u003d\"{{ bgp_loopback_interface }}\""}],"source_content_type":"text/plain","patch_set":25,"id":"2dd89b33_216577d4","line":8,"updated":"2024-05-02 18:03:09.000000000","message":"Do we need to add\n\n[ovn]\novn_nb_connection \u003d {{ ovn_nb_connection }}\novn_sb_connection \u003d {{ ovn_sb_connection }}\n\nSo we can get information from OVN DB?","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"505c48fe7a493d0e620e573e4a47a1e9c0c38224","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"driver\u003d\"{{ ovn_bgp_agent_driver }}\""},{"line_number":7,"context_line":"exposing_method\u003d\"{{ ovn_bgp_agent_exposing_method }}\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"bgp_AS\u003d\"{{ bgp_local_asn }}\""},{"line_number":10,"context_line":"bgp_router_id\u003d\"{{ bgp_loopback_ip }}\""},{"line_number":11,"context_line":"evpn_nic\u003d\"{{ bgp_loopback_interface }}\""}],"source_content_type":"text/plain","patch_set":25,"id":"431d7cef_8923dd52","line":8,"in_reply_to":"2dd89b33_216577d4","updated":"2024-05-06 12:40:36.000000000","message":"As far as I\u0027m aware all drivers get this information from the local OVSDB, therefore this is not needed. \nCould be different for the nb_ovn_bgp_driver with exposing_method ovn. \nHowever, exposing_method ovn is not something that we deploy using kolla / kolla-ansible. \n\nIn case you still need this and it\u0027s more like a special use case, keep in mind that in the kolla world each config can be overwritten.","commit_id":"f0bae10e580c0118260b6ddcf81fa734031c884a"},{"author":{"_account_id":290,"name":"Antony Messerli","email":"antony@mes.ser.li","username":"antonym"},"change_message_id":"e722fe69971cbe4b9cd680ae534ed13fb0a712be","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"debug\u003dFalse"},{"line_number":3,"context_line":"log_file\u003d\"/var/log/kolla/openvswitch/ovn-bgp-agent.log\""},{"line_number":4,"context_line":"watch_log_file\u003dTrue"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"ovsdb_connection\u003d\"unix:/var/run/openvswitch/db.sock\""}],"source_content_type":"text/plain","patch_set":28,"id":"b5ca7de9_a0704197","line":3,"updated":"2024-07-02 15:00:50.000000000","message":"I noticed that the ovn-bgp-agent.log is logging to /var/log/kolla/openvswitch but ovn_bgp_agent.json config is set up to use /var/log/kolla/ovn-bgp-agent/ which is currently empty. Should this be changed to reflect the ovn-bgp-agent directory or are we planning on consolidating the logs the into openvswitch log directory?","commit_id":"9e1de94483b6572defd6e680010f92abb47ca424"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"51021b1c69b22d6f9f99e67ce82d05d0ab393d67","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"debug\u003dFalse"},{"line_number":3,"context_line":"log_file\u003d\"/var/log/kolla/openvswitch/ovn-bgp-agent.log\""},{"line_number":4,"context_line":"watch_log_file\u003dTrue"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"ovsdb_connection\u003d\"unix:/var/run/openvswitch/db.sock\""}],"source_content_type":"text/plain","patch_set":28,"id":"945fd01d_a982e3be","line":3,"in_reply_to":"b5ca7de9_a0704197","updated":"2024-07-12 13:24:39.000000000","message":"Done","commit_id":"9e1de94483b6572defd6e680010f92abb47ca424"}],"zuul.d/project.yaml":[{"author":{"_account_id":35638,"deleted":true},"change_message_id":"8a501710b35d3c80993c796b9fb866b566b7aff5","unresolved":true,"context_lines":[{"line_number":11,"context_line":"      - periodic-stable-jobs"},{"line_number":12,"context_line":"    check:"},{"line_number":13,"context_line":"      jobs:"},{"line_number":14,"context_line":"        - kolla-ansible-centos9s"},{"line_number":15,"context_line":"        - kolla-ansible-debian"},{"line_number":16,"context_line":"        - kolla-ansible-openeuler"},{"line_number":17,"context_line":"        - kolla-ansible-rocky9"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"d3233811_c6656dd7","line":14,"updated":"2024-02-15 09:19:23.000000000","message":"I guess this is not intended","commit_id":"309c59574d2df920944dfa95a9f84469993dd31b"},{"author":{"_account_id":35638,"deleted":true},"change_message_id":"25561b7b1399a7f39f946af78058553c56226e49","unresolved":false,"context_lines":[{"line_number":11,"context_line":"      - periodic-stable-jobs"},{"line_number":12,"context_line":"    check:"},{"line_number":13,"context_line":"      jobs:"},{"line_number":14,"context_line":"        - kolla-ansible-centos9s"},{"line_number":15,"context_line":"        - kolla-ansible-debian"},{"line_number":16,"context_line":"        - kolla-ansible-openeuler"},{"line_number":17,"context_line":"        - kolla-ansible-rocky9"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"35b7210f_17ce5123","line":14,"in_reply_to":"d3233811_c6656dd7","updated":"2024-02-15 10:51:53.000000000","message":"Done","commit_id":"309c59574d2df920944dfa95a9f84469993dd31b"}]}
