)]}'
{"lib/neutron":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6dace237e3970d2eb80aa52a49c93b2326870c72","unresolved":true,"context_lines":[{"line_number":454,"context_line":"        service_protocol\u003d\"http\""},{"line_number":455,"context_line":"    fi"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    local opts\u003d\"\""},{"line_number":459,"context_line":"    opts+\u003d\" --config-file $NEUTRON_CONF\""},{"line_number":460,"context_line":"    opts+\u003d\" --config-file $NEUTRON_CORE_PLUGIN_CONF\""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"792795fd_88f475bd","line":457,"updated":"2021-06-01 14:19:03.000000000","message":"unrelated change","commit_id":"ba1fd5fae25fcf3d549126845cf7cd1f06289812"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"80ee3e7473388b2e23f0b2f75adf3c642fae716f","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        service_protocol\u003d\"http\""},{"line_number":455,"context_line":"    fi"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    local opts\u003d\"\""},{"line_number":459,"context_line":"    opts+\u003d\" --config-file $NEUTRON_CONF\""},{"line_number":460,"context_line":"    opts+\u003d\" --config-file $NEUTRON_CORE_PLUGIN_CONF\""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fab72f8a_4fe93dc4","line":457,"in_reply_to":"792795fd_88f475bd","updated":"2021-06-02 07:26:35.000000000","message":"Done","commit_id":"ba1fd5fae25fcf3d549126845cf7cd1f06289812"}],"lib/neutron-legacy":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"b0ce40cd43df68bbd4e0abd846ef0e3089dae995","unresolved":true,"context_lines":[{"line_number":487,"context_line":"}"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"# Configure OVN services"},{"line_number":490,"context_line":"function configure_ovn_services {"},{"line_number":491,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":492,"context_line":"        init_ovn"},{"line_number":493,"context_line":"        start_ovn"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"f464b5b1_e468d0db","line":490,"range":{"start_line":490,"start_character":9,"end_line":490,"end_character":32},"updated":"2021-06-04 15:35:25.000000000","message":"I have an issue with the naming of it - it actually runs after they are started so it hardly configures them; it\u0027s for configuring the public bridge only...","commit_id":"7656ed26531f2248d30d7bedc8fe1f108ec0443c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9c7da98c797d8cbedf241477ce7e43e771322881","unresolved":false,"context_lines":[{"line_number":487,"context_line":"}"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"# Configure OVN services"},{"line_number":490,"context_line":"function configure_ovn_services {"},{"line_number":491,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":492,"context_line":"        init_ovn"},{"line_number":493,"context_line":"        start_ovn"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"429f6d86_a62f0009","line":490,"range":{"start_line":490,"start_character":9,"end_line":490,"end_character":32},"in_reply_to":"f464b5b1_e468d0db","updated":"2021-06-07 12:40:08.000000000","message":"Done","commit_id":"7656ed26531f2248d30d7bedc8fe1f108ec0443c"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"dc33b844c24c350161f9680ec66e6261efcc8e76","unresolved":true,"context_lines":[{"line_number":486,"context_line":"    fi"},{"line_number":487,"context_line":"}"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"# Configure OVN services"},{"line_number":490,"context_line":"function configure_ovn_public_bridge {"},{"line_number":491,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":492,"context_line":"        init_ovn"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"77040120_6991639c","line":489,"range":{"start_line":489,"start_character":16,"end_line":489,"end_character":24},"updated":"2021-06-08 12:46:33.000000000","message":"public bridge","commit_id":"eaba3a5d7e18222013e449eab5c5d2aa7ba62634"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"8619f96df60ea732db5320a5d2283a68c7caef35","unresolved":true,"context_lines":[{"line_number":489,"context_line":"# Configure OVN public bridge"},{"line_number":490,"context_line":"function configure_ovn_public_bridge {"},{"line_number":491,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":492,"context_line":"        init_ovn"},{"line_number":493,"context_line":"        start_ovn"},{"line_number":494,"context_line":"        if [[ \"$OVN_L3_CREATE_PUBLIC_NETWORK\" \u003d\u003d \"True\" ]]; then"},{"line_number":495,"context_line":"            if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" !\u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"744e1093_23e2bf3c","line":492,"range":{"start_line":492,"start_character":8,"end_line":492,"end_character":16},"updated":"2021-06-09 16:06:52.000000000","message":"I think this init is both redundant and a little dangerous.\nIn my setup, it causes the nb db to be recreated after neutron is running, causing a bunch of state (eg. pg_drop and default_ha_chassis_group) to be lost.","commit_id":"b56abcfbe384107390f5935f6c97e56ec7cf49f5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b2d8694e6d24021a707a4de8a9de2a11cca52a11","unresolved":true,"context_lines":[{"line_number":489,"context_line":"# Configure OVN public bridge"},{"line_number":490,"context_line":"function configure_ovn_public_bridge {"},{"line_number":491,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":492,"context_line":"        init_ovn"},{"line_number":493,"context_line":"        start_ovn"},{"line_number":494,"context_line":"        if [[ \"$OVN_L3_CREATE_PUBLIC_NETWORK\" \u003d\u003d \"True\" ]]; then"},{"line_number":495,"context_line":"            if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" !\u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"371e3cc7_4e8345ed","line":492,"range":{"start_line":492,"start_character":8,"end_line":492,"end_character":16},"updated":"2021-06-09 16:06:21.000000000","message":"Turns out that calling init_ovn here can be problematic because it will delete the OVN databases [0]. \n\nUpon the Neutron service start the maintenance thread will create some resources (e.g the pg_drop port group and the default_ha_chassis_group HA Chassis Group) and, since this method is called later one it ends up getting rid of those because the DB files are deleted and recreated.\n\nThanks Flavio for spotting this in his local DevStack run.\n\nI think we need to remove this line there, I don\u0027t think it\u0027s needed here anything because it\u0027s already invoked at [1] to get rid of the old files.\n\n[0] https://github.com/openstack/devstack/blob/96509ea025459ac077d2c85289da7725c53235cf/lib/neutron_plugins/ovn_agent#L592-L609\n[1] https://github.com/openstack/devstack/blob/96509ea025459ac077d2c85289da7725c53235cf/lib/neutron-legacy#L476","commit_id":"b56abcfbe384107390f5935f6c97e56ec7cf49f5"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a118c3e772b7369603d0aa77a5d3ecdbdd859c9d","unresolved":true,"context_lines":[{"line_number":489,"context_line":"# Configure OVN public bridge"},{"line_number":490,"context_line":"function configure_ovn_public_bridge {"},{"line_number":491,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":492,"context_line":"        init_ovn"},{"line_number":493,"context_line":"        start_ovn"},{"line_number":494,"context_line":"        if [[ \"$OVN_L3_CREATE_PUBLIC_NETWORK\" \u003d\u003d \"True\" ]]; then"},{"line_number":495,"context_line":"            if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" !\u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"324ee9a9_4eb69042","line":492,"range":{"start_line":492,"start_character":8,"end_line":492,"end_character":16},"in_reply_to":"744e1093_23e2bf3c","updated":"2021-06-09 16:56:23.000000000","message":"That was a terrible copy/paste. I\u0027ll remove those lines.","commit_id":"b56abcfbe384107390f5935f6c97e56ec7cf49f5"}],"lib/neutron_plugins/ovn_agent":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"024c3a88666bfedd9bd95f638d393c35db09bf3d","unresolved":true,"context_lines":[{"line_number":296,"context_line":"    local ext_gw_ifc"},{"line_number":297,"context_line":"    ext_gw_ifc\u003d$(get_ext_gw_interface)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    if [[ -n \"$FLOATING_RANGE\" ]] \u0026\u0026 [[ -n \"$EXT_NET_ID\" ]]; then"},{"line_number":300,"context_line":"        local ipv4_subnet"},{"line_number":301,"context_line":"        ipv4_subnet\u003d$(openstack --os-cloud devstack-admin --os-region \"$REGION_NAME\" subnet list --network $EXT_NET_ID --ip-version 4 -f value -c ID)"},{"line_number":302,"context_line":"        local ipv4_gw"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"f4c3582d_c7655404","line":299,"range":{"start_line":299,"start_character":37,"end_line":299,"end_character":59},"updated":"2021-06-02 08:21:00.000000000","message":"This is not correct: if we are executing this in the compute node, not the server, we need to retrieve this value.","commit_id":"b209bd41aa27753fbac994e64d2278f8b166a151"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4f579c73d054e297985eec9a0485cfd6df94141b","unresolved":true,"context_lines":[{"line_number":293,"context_line":"    default_route_dev\u003d$(ip route | grep ^default | awk \u0027{print $5}\u0027)"},{"line_number":294,"context_line":"    sudo sysctl -w net.ipv6.conf.$default_route_dev.accept_ra\u003d2"},{"line_number":295,"context_line":"    sudo sysctl -w net.ipv6.conf.all.forwarding\u003d1"},{"line_number":296,"context_line":"        if [[ -n \"$IPV6_PUBLIC_RANGE\" ]]; then"},{"line_number":297,"context_line":"        local ipv6_cidr_len\u003d${IPV6_PUBLIC_RANGE#*/}"},{"line_number":298,"context_line":"        sudo ip -6 addr replace $IPV6_PUBLIC_NETWORK_GATEWAY/$ipv6_cidr_len dev $ext_gw_ifc"},{"line_number":299,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"69e376f3_02c7e7e3","line":296,"updated":"2021-06-07 20:26:41.000000000","message":"Too much indentation, and not sure why it changed to double brackets, most other occurrences in this file have a single with -n, but they both work","commit_id":"eaba3a5d7e18222013e449eab5c5d2aa7ba62634"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"dc33b844c24c350161f9680ec66e6261efcc8e76","unresolved":true,"context_lines":[{"line_number":293,"context_line":"    default_route_dev\u003d$(ip route | grep ^default | awk \u0027{print $5}\u0027)"},{"line_number":294,"context_line":"    sudo sysctl -w net.ipv6.conf.$default_route_dev.accept_ra\u003d2"},{"line_number":295,"context_line":"    sudo sysctl -w net.ipv6.conf.all.forwarding\u003d1"},{"line_number":296,"context_line":"        if [[ -n \"$IPV6_PUBLIC_RANGE\" ]]; then"},{"line_number":297,"context_line":"        local ipv6_cidr_len\u003d${IPV6_PUBLIC_RANGE#*/}"},{"line_number":298,"context_line":"        sudo ip -6 addr replace $IPV6_PUBLIC_NETWORK_GATEWAY/$ipv6_cidr_len dev $ext_gw_ifc"},{"line_number":299,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"86758c3e_cb8eb4d4","line":296,"in_reply_to":"69e376f3_02c7e7e3","updated":"2021-06-08 12:46:33.000000000","message":"++, let\u0027s not touch this area at all, it conflicts with another patch for no good reason","commit_id":"eaba3a5d7e18222013e449eab5c5d2aa7ba62634"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"73f8cbf96a8425bf32863db3bb5d845302902782","unresolved":false,"context_lines":[{"line_number":293,"context_line":"    default_route_dev\u003d$(ip route | grep ^default | awk \u0027{print $5}\u0027)"},{"line_number":294,"context_line":"    sudo sysctl -w net.ipv6.conf.$default_route_dev.accept_ra\u003d2"},{"line_number":295,"context_line":"    sudo sysctl -w net.ipv6.conf.all.forwarding\u003d1"},{"line_number":296,"context_line":"        if [[ -n \"$IPV6_PUBLIC_RANGE\" ]]; then"},{"line_number":297,"context_line":"        local ipv6_cidr_len\u003d${IPV6_PUBLIC_RANGE#*/}"},{"line_number":298,"context_line":"        sudo ip -6 addr replace $IPV6_PUBLIC_NETWORK_GATEWAY/$ipv6_cidr_len dev $ext_gw_ifc"},{"line_number":299,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"f142d411_58b7fac4","line":296,"in_reply_to":"86758c3e_cb8eb4d4","updated":"2021-06-08 14:25:57.000000000","message":"Done","commit_id":"eaba3a5d7e18222013e449eab5c5d2aa7ba62634"}],"stack.sh":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9dc399b24f2003a3d59a6a2f1da89e20040bd076","unresolved":true,"context_lines":[{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"fi"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"if is_service_enabled ovn-controller ovn-controller-vtep; then"},{"line_number":1300,"context_line":"    echo_summary \"Configure OVN services\""},{"line_number":1301,"context_line":"    configure_ovn_services"},{"line_number":1302,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":1,"id":"c7f111f8_395b5347","line":1299,"updated":"2021-06-01 14:24:10.000000000","message":"Perhaps we also should check if q-svc is enabled here to avoid running this on compute nodes ?","commit_id":"ba1fd5fae25fcf3d549126845cf7cd1f06289812"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"80ee3e7473388b2e23f0b2f75adf3c642fae716f","unresolved":true,"context_lines":[{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"fi"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"if is_service_enabled ovn-controller ovn-controller-vtep; then"},{"line_number":1300,"context_line":"    echo_summary \"Configure OVN services\""},{"line_number":1301,"context_line":"    configure_ovn_services"},{"line_number":1302,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":1,"id":"03aa3e8b_3d3a898c","line":1299,"in_reply_to":"c7f111f8_395b5347","updated":"2021-06-02 07:26:35.000000000","message":"configure_ovn_services --\u003e configure_public_bridge will set UP the GW link in the brigde. But what I need to check is the EXT_NET_ID. If this value is not provided (create_neutron_initial_network has not been called), I don\u0027t need to set the IP addresses in this interface.","commit_id":"ba1fd5fae25fcf3d549126845cf7cd1f06289812"}]}
