)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a0fb8455abdafa44ad34306ec4ab6fb7a569a7bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1caa251b_8eb2209e","updated":"2022-04-05 14:59:21.000000000","message":"Another minor remark, but great to have this case covered.","commit_id":"1c22c5c4ad33adbd106c898c7413b5cad3545545"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"48ad8b046dfc0ff1908d1db74c7dd2f01f2aadbe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"34b1bd57_e46afbc6","updated":"2022-03-30 08:29:46.000000000","message":"recheck","commit_id":"1c22c5c4ad33adbd106c898c7413b5cad3545545"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"a6a2d69e9358d0aa6f92f83a91b7dcc6be7a723d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"57f8217d_73f38134","updated":"2022-04-07 08:40:54.000000000","message":"recheck","commit_id":"810faf6a3d4ffeffd879185aa9245c8ed86f2d90"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"8f1d6ffa885216c34365414917d6c7a34b00c555","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"68bd1486_7e29fa87","updated":"2022-04-06 16:05:53.000000000","message":"recheck","commit_id":"810faf6a3d4ffeffd879185aa9245c8ed86f2d90"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"189c6dcb9f40d2bf9b7e079ec18488635e473387","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b07a31aa_a4d35795","updated":"2022-04-15 04:56:34.000000000","message":"I guess this one is also good to go.","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e7d9decde29a6c4f20714d9604389d712fce8a5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b60bd953_bde7c6b0","updated":"2022-04-25 10:56:23.000000000","message":"Just one question remains:","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"}],"kuryr_kubernetes/controller/handlers/kuryrnetwork.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a0fb8455abdafa44ad34306ec4ab6fb7a569a7bf","unresolved":true,"context_lines":[{"line_number":158,"context_line":"                LOG.warning(\u0027Found Neutron network associated with namespace \u0027"},{"line_number":159,"context_line":"                            \u0027`%s`, while it is not registered on KuryrNetwork \u0027"},{"line_number":160,"context_line":"                            \u0027CRD. Trying to remove.\u0027, ns_name)"},{"line_number":161,"context_line":"                subnet \u003d list(os_net.subnets(network_id\u003dnet.id))"},{"line_number":162,"context_line":"                net_subnet \u003d {\u0027status\u0027: {\u0027netId\u0027: net.id}}"},{"line_number":163,"context_line":"                if subnet:"},{"line_number":164,"context_line":"                    net_subnet[\u0027status\u0027][\u0027subnetId\u0027] \u003d subnet[0].id"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"                self._drv_vif_pool.delete_network_pools(net.id)"},{"line_number":167,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"468a7b05_de59fb93","line":164,"range":{"start_line":161,"start_character":0,"end_line":164,"end_character":67},"updated":"2022-04-05 14:59:21.000000000","message":"We shouldn\u0027t need to worry about the subnet, it\u0027ll go away along with the network if it\u0027s unused. The only problem is making sure ports are correctly removed from it even if untagged and currently I see `delete_network_pools` relies on pools to list ports, meaning that it probably excludes untagged ports.","commit_id":"1c22c5c4ad33adbd106c898c7413b5cad3545545"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c3ab1ad89a7067735875afc547b6c0510d35c044","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                LOG.warning(\u0027Found Neutron network associated with namespace \u0027"},{"line_number":159,"context_line":"                            \u0027`%s`, while it is not registered on KuryrNetwork \u0027"},{"line_number":160,"context_line":"                            \u0027CRD. Trying to remove.\u0027, ns_name)"},{"line_number":161,"context_line":"                subnet \u003d list(os_net.subnets(network_id\u003dnet.id))"},{"line_number":162,"context_line":"                net_subnet \u003d {\u0027status\u0027: {\u0027netId\u0027: net.id}}"},{"line_number":163,"context_line":"                if subnet:"},{"line_number":164,"context_line":"                    net_subnet[\u0027status\u0027][\u0027subnetId\u0027] \u003d subnet[0].id"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"                self._drv_vif_pool.delete_network_pools(net.id)"},{"line_number":167,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"edb01c37_3cbcbc15","line":164,"range":{"start_line":161,"start_character":0,"end_line":164,"end_character":67},"in_reply_to":"468a7b05_de59fb93","updated":"2022-04-08 15:57:59.000000000","message":"Done","commit_id":"1c22c5c4ad33adbd106c898c7413b5cad3545545"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c3ab1ad89a7067735875afc547b6c0510d35c044","unresolved":true,"context_lines":[{"line_number":153,"context_line":"                                                          suffix\u003d\u0027-net\u0027)"},{"line_number":154,"context_line":"            # TODO(gryf): remove old_net_name support in next release."},{"line_number":155,"context_line":"            os_net \u003d clients.get_network_client()"},{"line_number":156,"context_line":"            networks \u003d os_net.networks(name\u003d(net_name, old_net_name))"},{"line_number":157,"context_line":"            for net in networks:"},{"line_number":158,"context_line":"                if ns_uid \u003d\u003d net.description:"},{"line_number":159,"context_line":"                    LOG.warning(\u0027Found Neutron network associated with \u0027"},{"line_number":160,"context_line":"                                \u0027namespace `%s`, while it is not registered \u0027"},{"line_number":161,"context_line":"                                \u0027on KuryrNetwork CRD. Trying to remove.\u0027,"},{"line_number":162,"context_line":"                                ns_name)"},{"line_number":163,"context_line":"                    self._drv_vif_pool.delete_network_pools(net.id)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        namespace \u003d {"},{"line_number":171,"context_line":"            \u0027metadata\u0027: {\u0027name\u0027: kuryrnet_crd[\u0027spec\u0027][\u0027nsName\u0027]}}"}],"source_content_type":"text/x-python","patch_set":4,"id":"68b760d3_94defff7","line":168,"range":{"start_line":156,"start_character":0,"end_line":168,"end_character":54},"updated":"2022-04-08 15:57:59.000000000","message":"Do I see correctly that this only deletes ports and not the network itself? The subnet is deleted automatically with the network, but we still got to delete the network itself when ports are gone.","commit_id":"ccbd97e2134ce4f6bc834240e8eb1b492e4d2c07"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5f29d1bc88a6be3ca7a3e099c47a43b3d43bdcce","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                          suffix\u003d\u0027-net\u0027)"},{"line_number":154,"context_line":"            # TODO(gryf): remove old_net_name support in next release."},{"line_number":155,"context_line":"            os_net \u003d clients.get_network_client()"},{"line_number":156,"context_line":"            networks \u003d os_net.networks(name\u003d(net_name, old_net_name))"},{"line_number":157,"context_line":"            for net in networks:"},{"line_number":158,"context_line":"                if ns_uid \u003d\u003d net.description:"},{"line_number":159,"context_line":"                    LOG.warning(\u0027Found Neutron network associated with \u0027"},{"line_number":160,"context_line":"                                \u0027namespace `%s`, while it is not registered \u0027"},{"line_number":161,"context_line":"                                \u0027on KuryrNetwork CRD. Trying to remove.\u0027,"},{"line_number":162,"context_line":"                                ns_name)"},{"line_number":163,"context_line":"                    self._drv_vif_pool.delete_network_pools(net.id)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        namespace \u003d {"},{"line_number":171,"context_line":"            \u0027metadata\u0027: {\u0027name\u0027: kuryrnet_crd[\u0027spec\u0027][\u0027nsName\u0027]}}"}],"source_content_type":"text/x-python","patch_set":4,"id":"dffd5f9b_4727ac64","line":168,"range":{"start_line":156,"start_character":0,"end_line":168,"end_character":54},"in_reply_to":"68b760d3_94defff7","updated":"2022-04-11 10:19:23.000000000","message":"Ack","commit_id":"ccbd97e2134ce4f6bc834240e8eb1b492e4d2c07"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5e4ee30b82e80245129a1f6f00bbe96555e88eed","unresolved":true,"context_lines":[{"line_number":155,"context_line":"            os_net \u003d clients.get_network_client()"},{"line_number":156,"context_line":"            networks \u003d os_net.networks(name\u003d(net_name, old_net_name))"},{"line_number":157,"context_line":"            for net in networks:"},{"line_number":158,"context_line":"                if ns_uid \u003d\u003d net.description:"},{"line_number":159,"context_line":"                    LOG.warning(\u0027Found Neutron network associated with \u0027"},{"line_number":160,"context_line":"                                \u0027namespace `%s`, while it is not registered \u0027"},{"line_number":161,"context_line":"                                \u0027on KuryrNetwork CRD. Trying to remove.\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"c63c614f_387b60e7","line":158,"updated":"2022-04-11 13:28:28.000000000","message":"Is it possible for Networks with old names as well?","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"767eab296470a1945f97cdf6dfab45fe8be32541","unresolved":true,"context_lines":[{"line_number":155,"context_line":"            os_net \u003d clients.get_network_client()"},{"line_number":156,"context_line":"            networks \u003d os_net.networks(name\u003d(net_name, old_net_name))"},{"line_number":157,"context_line":"            for net in networks:"},{"line_number":158,"context_line":"                if ns_uid \u003d\u003d net.description:"},{"line_number":159,"context_line":"                    LOG.warning(\u0027Found Neutron network associated with \u0027"},{"line_number":160,"context_line":"                                \u0027namespace `%s`, while it is not registered \u0027"},{"line_number":161,"context_line":"                                \u0027on KuryrNetwork CRD. Trying to remove.\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fe21461d_7ca97156","line":158,"in_reply_to":"c63c614f_387b60e7","updated":"2022-04-12 10:47:13.000000000","message":"Not really. There is only an assumption, that if given ns name matches with network name would assure us, that this is the right resource. It might happen however, that even we got the match by name, namespace was deleted and created again with the same name. uid here is a guarantee, that we don\u0027t remove something, which we shouldn\u0027t. That\u0027s why, it is only those networks taken into account, which have identifier origin from namespace.","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e7d9decde29a6c4f20714d9604389d712fce8a5d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            os_net \u003d clients.get_network_client()"},{"line_number":156,"context_line":"            networks \u003d os_net.networks(name\u003d(net_name, old_net_name))"},{"line_number":157,"context_line":"            for net in networks:"},{"line_number":158,"context_line":"                if ns_uid \u003d\u003d net.description:"},{"line_number":159,"context_line":"                    LOG.warning(\u0027Found Neutron network associated with \u0027"},{"line_number":160,"context_line":"                                \u0027namespace `%s`, while it is not registered \u0027"},{"line_number":161,"context_line":"                                \u0027on KuryrNetwork CRD. Trying to remove.\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"8f7e092e_f687f859","line":158,"in_reply_to":"cc15c5f8_3631d7aa","updated":"2022-04-25 10:56:23.000000000","message":"Got it!","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"189c6dcb9f40d2bf9b7e079ec18488635e473387","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            os_net \u003d clients.get_network_client()"},{"line_number":156,"context_line":"            networks \u003d os_net.networks(name\u003d(net_name, old_net_name))"},{"line_number":157,"context_line":"            for net in networks:"},{"line_number":158,"context_line":"                if ns_uid \u003d\u003d net.description:"},{"line_number":159,"context_line":"                    LOG.warning(\u0027Found Neutron network associated with \u0027"},{"line_number":160,"context_line":"                                \u0027namespace `%s`, while it is not registered \u0027"},{"line_number":161,"context_line":"                                \u0027on KuryrNetwork CRD. Trying to remove.\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"cc15c5f8_3631d7aa","line":158,"in_reply_to":"fe21461d_7ca97156","updated":"2022-04-15 04:56:34.000000000","message":"Done","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5e4ee30b82e80245129a1f6f00bbe96555e88eed","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    try:"},{"line_number":171,"context_line":"                        os_net.delete_network(net)"}],"source_content_type":"text/x-python","patch_set":5,"id":"f063f45d_c52e1a69","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":54},"updated":"2022-04-11 13:28:28.000000000","message":"how there would be untagged Ports if no Pods could be created as the network information was not available in the crd?","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"189c6dcb9f40d2bf9b7e079ec18488635e473387","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    try:"},{"line_number":171,"context_line":"                        os_net.delete_network(net)"}],"source_content_type":"text/x-python","patch_set":5,"id":"b670e4df_754274db","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":54},"in_reply_to":"43e80174_50ce5aba","updated":"2022-04-15 04:56:34.000000000","message":"Done","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e7d9decde29a6c4f20714d9604389d712fce8a5d","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    try:"},{"line_number":171,"context_line":"                        os_net.delete_network(net)"}],"source_content_type":"text/x-python","patch_set":5,"id":"d198594d_07e3a68b","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":54},"in_reply_to":"b670e4df_754274db","updated":"2022-04-25 10:56:23.000000000","message":"I\u0027m still not sure how any Port could have been created if the Network ID was not defined in the CRD. Did we see this in the perf testing?","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"63db667408d33bc913fb8013acea9051b95a97ae","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    try:"},{"line_number":171,"context_line":"                        os_net.delete_network(net)"}],"source_content_type":"text/x-python","patch_set":5,"id":"f96acbe2_af4b04c8","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":54},"in_reply_to":"d198594d_07e3a68b","updated":"2022-04-26 10:54:45.000000000","message":"Partially, yes. During high load it may happen:\n- port has been created, but neutron API has died in the meantime, meaning we don\u0027t update corresponding kuryrportcrd nor tag the port (that happens in driver.request_vifs method)\n- port has been successfully created, API return 201, but we failed to tag it due to subsequent neutron failure, resulting with port in a state like above\n- port has been successfully created, but we got error during crd update, hence we could have tagged port either in up or down state depending on the binding result.","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"767eab296470a1945f97cdf6dfab45fe8be32541","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"                    # NOTE(gryf): there might be untagged ports, let\u0027s see if"},{"line_number":166,"context_line":"                    # there are any leftovers"},{"line_number":167,"context_line":"                    for port in os_net.ports(network_id\u003dnet.id):"},{"line_number":168,"context_line":"                        driver_utils.delete_port(port)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    try:"},{"line_number":171,"context_line":"                        os_net.delete_network(net)"}],"source_content_type":"text/x-python","patch_set":5,"id":"43e80174_50ce5aba","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":54},"in_reply_to":"f063f45d_c52e1a69","updated":"2022-04-12 10:47:13.000000000","message":"Well, tagging might failed, while port was successfully created. We need to be prepared for such situations :)","commit_id":"cb2e6635eaa771726ac5c75beb405c4e590e618d"}]}
