)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e50b3ad16e50a7147a45e504f86c583c5eb7d673","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"14863483_fccbcdad","updated":"2021-10-13 13:52:23.000000000","message":"It\u0027s already looking good, just added couple of suggestions.\n\nAnd here is an interesting LOG message from the CI:\n\n Handler KuryrPortHandler failed (attempt 2; PortNotReady: Resource not ready: \u0027Port 2f7b442e-5405-4619-b562-ddef81d28017 is stuck in DOWN status for several minutes. This is unexpected and indicates problem with OpenStack Neutron. Please contact your OpenStack administrator.\u0027) _sleep /usr/local/lib/python3.6/site-packages/kuryr_kubernetes/handlers/retry.py:122\u001b[00m","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6e913bb95dd68782d2ea08585dded03919d843c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"eca0c942_9ae71e2a","in_reply_to":"14863483_fccbcdad","updated":"2021-10-14 07:10:22.000000000","message":"\u003e It\u0027s already looking good, just added couple of suggestions.\n\u003e \n\u003e And here is an interesting LOG message from the CI:\n\u003e \n\u003e  Handler KuryrPortHandler failed (attempt 2; PortNotReady: Resource not ready: \u0027Port 2f7b442e-5405-4619-b562-ddef81d28017 is stuck in DOWN status for several minutes. This is unexpected and indicates problem with OpenStack Neutron. Please contact your OpenStack administrator.\u0027) _sleep /usr/local/lib/python3.6/site-packages/kuryr_kubernetes/handlers/retry.py:122\u001b[00m\n\nThat might be unrelated, due to yesterdays OVH outage, we\u0027ll see in the next iteration if that would appear again.","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"4abe53f1135fd6fe0b0253ed17ced767340f645f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"db946ee7_ec8dccab","updated":"2021-10-15 08:16:30.000000000","message":"recheck","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"94b0cb3e1e6e21a2946268dad9cca007232dbe6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e8449482_39e681d7","updated":"2021-10-15 05:12:07.000000000","message":"recheck","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"6809cd3b70f11a314cf847b3a6deaaccb54a8452","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ebc3f0ed_c5f47d2b","updated":"2021-10-14 23:17:24.000000000","message":"recheck","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"198e1ec928a745142908f645c6b646f581b8cf30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f4aec4ee_ac916193","updated":"2021-10-18 11:00:44.000000000","message":"Does it require setting some additional permissions?\n\nI see the following traceback on the logs and no event was added:\n\n2021-10-18 10:58:13.333 1 WARNING kuryr_kubernetes.k8s_client [-] There was non critical error during creating an Event for resource: \"{resource}\", with reason: \"SGUpdateTriggered\", message:\n \"Neutron security groups update has been triggered\" and type: \"Normal\": kuryr_kubernetes.exceptions.K8sForbidden: Forbidden: \u0027{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Fail\nure\",\"message\":\"events is forbidden: User \\\\\"system:serviceaccount:kube-system:kuryr-controller\\\\\" cannot create resource \\\\\"events\\\\\" in API group \\\\\"\\\\\" in the namespace \\\\\"opa\\\\\"\",\"reason\n\":\"Forbidden\",\"details\":{\"kind\":\"events\"},\"code\":403}\\n\u0027\n\n\nhttps://paste.opendev.org/show/810053/","commit_id":"7538bde84e1cd0a0fd99cc265d6774c7e772fd2a"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"75cb111fad2ba968afc7b811066b9fbff0cbc60f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2b149a18_16bde565","updated":"2021-10-18 17:47:12.000000000","message":"this should help with it https://review.opendev.org/c/openstack/kuryr-kubernetes/+/814475","commit_id":"7538bde84e1cd0a0fd99cc265d6774c7e772fd2a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"3f7375aa3b4edbdac2110aa3964e858d9c55e529","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b42ec347_6fe828f2","updated":"2021-10-19 12:35:17.000000000","message":"recheck","commit_id":"ad3f5ff4e0adc567d14ee08cafff41df9867deb9"}],"kuryr_kubernetes/controller/handlers/kuryrnetwork.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e50b3ad16e50a7147a45e504f86c583c5eb7d673","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            status \u003d {\u0027nsLabels\u0027: kuryrnet_crd[\u0027spec\u0027][\u0027nsLabels\u0027]}"},{"line_number":121,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status, labels\u003dTrue)"},{"line_number":122,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":123,"context_line":"                               f\u0027SG for namespace {ns_name} has been updated\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def on_finalize(self, kuryrnet_crd, *args, **kwargs):"},{"line_number":126,"context_line":"        LOG.debug(\"Deleting kuryrnetwork CRD resources: %s\", kuryrnet_crd)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dc4140f1_7bc54443","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":76},"updated":"2021-10-13 13:52:23.000000000","message":"I would rephrase for something in the lines of: \"SG update for namespace x has been triggered\".\n\nMostly because it\u0027s not possible to know when the SG is really updated without trying the connectivity\"","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6e913bb95dd68782d2ea08585dded03919d843c5","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            status \u003d {\u0027nsLabels\u0027: kuryrnet_crd[\u0027spec\u0027][\u0027nsLabels\u0027]}"},{"line_number":121,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status, labels\u003dTrue)"},{"line_number":122,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":123,"context_line":"                               f\u0027SG for namespace {ns_name} has been updated\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def on_finalize(self, kuryrnet_crd, *args, **kwargs):"},{"line_number":126,"context_line":"        LOG.debug(\"Deleting kuryrnetwork CRD resources: %s\", kuryrnet_crd)"}],"source_content_type":"text/x-python","patch_set":3,"id":"2dd0a0b8_f42f1ebb","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":76},"in_reply_to":"dc4140f1_7bc54443","updated":"2021-10-14 07:10:22.000000000","message":"Yeah, definitely. I\u0027m really bad with wording 😅","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e50b3ad16e50a7147a45e504f86c583c5eb7d673","unresolved":true,"context_lines":[{"line_number":122,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":123,"context_line":"                               f\u0027SG for namespace {ns_name} has been updated\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def on_finalize(self, kuryrnet_crd, *args, **kwargs):"},{"line_number":126,"context_line":"        LOG.debug(\"Deleting kuryrnetwork CRD resources: %s\", kuryrnet_crd)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        net_id \u003d kuryrnet_crd.get(\u0027status\u0027, {}).get(\u0027netId\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"77968e8e_a148e442","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":19},"updated":"2021-10-13 13:52:23.000000000","message":"For the on_finalize there is only events of failures, should we add some after namespace resources clean up or sg updates?","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6e913bb95dd68782d2ea08585dded03919d843c5","unresolved":true,"context_lines":[{"line_number":122,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":123,"context_line":"                               f\u0027SG for namespace {ns_name} has been updated\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def on_finalize(self, kuryrnet_crd, *args, **kwargs):"},{"line_number":126,"context_line":"        LOG.debug(\"Deleting kuryrnetwork CRD resources: %s\", kuryrnet_crd)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        net_id \u003d kuryrnet_crd.get(\u0027status\u0027, {}).get(\u0027netId\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"b822c3ed_8c8bb485","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":19},"in_reply_to":"77968e8e_a148e442","updated":"2021-10-14 07:10:22.000000000","message":"I thought about it, but it doesn\u0027t make much sense, since where namespace is gone, event is also gone, so there is almost zero chance for spotting successfully removed namespace/kuryrnetworkcrd.\nI guess, for such a case we might want to consider using LOG.info instead.","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e50b3ad16e50a7147a45e504f86c583c5eb7d673","unresolved":true,"context_lines":[{"line_number":132,"context_line":"            try:"},{"line_number":133,"context_line":"                self._drv_subnets.delete_namespace_subnet(kuryrnet_crd)"},{"line_number":134,"context_line":"            except k_exc.ResourceNotReady:"},{"line_number":135,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":136,"context_line":"                                   f\u0027Cannot remove subnet SG for network \u0027"},{"line_number":137,"context_line":"                                   f\u0027{net_id}\u0027)"},{"line_number":138,"context_line":"                LOG.warning(\"Subnet is not ready to be removed.\")"},{"line_number":139,"context_line":"                # TODO(ltomasbo): Once KuryrPort CRDs is supported, we should"},{"line_number":140,"context_line":"                # execute a delete network ports method here to remove the"}],"source_content_type":"text/x-python","patch_set":3,"id":"02a376ee_2c5406da","line":137,"range":{"start_line":135,"start_character":0,"end_line":137,"end_character":47},"updated":"2021-10-13 13:52:23.000000000","message":"is there a need to add event for resourcenotready exceptions? maybe the list of events will end up being long","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6e913bb95dd68782d2ea08585dded03919d843c5","unresolved":true,"context_lines":[{"line_number":132,"context_line":"            try:"},{"line_number":133,"context_line":"                self._drv_subnets.delete_namespace_subnet(kuryrnet_crd)"},{"line_number":134,"context_line":"            except k_exc.ResourceNotReady:"},{"line_number":135,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":136,"context_line":"                                   f\u0027Cannot remove subnet SG for network \u0027"},{"line_number":137,"context_line":"                                   f\u0027{net_id}\u0027)"},{"line_number":138,"context_line":"                LOG.warning(\"Subnet is not ready to be removed.\")"},{"line_number":139,"context_line":"                # TODO(ltomasbo): Once KuryrPort CRDs is supported, we should"},{"line_number":140,"context_line":"                # execute a delete network ports method here to remove the"}],"source_content_type":"text/x-python","patch_set":3,"id":"eff51854_622d8af3","line":137,"range":{"start_line":135,"start_character":0,"end_line":137,"end_character":47},"in_reply_to":"02a376ee_2c5406da","updated":"2021-10-14 07:10:22.000000000","message":"Even so, I think that one message per retry isn\u0027t that bad. at least operator might immediately see, that\u0027s something wrong with the ns removal. Or am I missing something, like hammering handler several times a second?","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e50b3ad16e50a7147a45e504f86c583c5eb7d673","unresolved":true,"context_lines":[{"line_number":135,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":136,"context_line":"                                   f\u0027Cannot remove subnet SG for network \u0027"},{"line_number":137,"context_line":"                                   f\u0027{net_id}\u0027)"},{"line_number":138,"context_line":"                LOG.warning(\"Subnet is not ready to be removed.\")"},{"line_number":139,"context_line":"                # TODO(ltomasbo): Once KuryrPort CRDs is supported, we should"},{"line_number":140,"context_line":"                # execute a delete network ports method here to remove the"},{"line_number":141,"context_line":"                # ports associated to the namespace/subnet, ensuring next"}],"source_content_type":"text/x-python","patch_set":3,"id":"3cf9ac38_dedceafb","line":138,"range":{"start_line":138,"start_character":20,"end_line":138,"end_character":27},"updated":"2021-10-13 13:52:23.000000000","message":"should this remain as debug?","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6e913bb95dd68782d2ea08585dded03919d843c5","unresolved":true,"context_lines":[{"line_number":135,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":136,"context_line":"                                   f\u0027Cannot remove subnet SG for network \u0027"},{"line_number":137,"context_line":"                                   f\u0027{net_id}\u0027)"},{"line_number":138,"context_line":"                LOG.warning(\"Subnet is not ready to be removed.\")"},{"line_number":139,"context_line":"                # TODO(ltomasbo): Once KuryrPort CRDs is supported, we should"},{"line_number":140,"context_line":"                # execute a delete network ports method here to remove the"},{"line_number":141,"context_line":"                # ports associated to the namespace/subnet, ensuring next"}],"source_content_type":"text/x-python","patch_set":3,"id":"8c174f69_69764865","line":138,"range":{"start_line":138,"start_character":20,"end_line":138,"end_character":27},"in_reply_to":"3cf9ac38_dedceafb","updated":"2021-10-14 07:10:22.000000000","message":"I\u0027ve changed that for warning, since it might be important for the case with other bug, that I\u0027m investigating, but yeah, I\u0027ll revert it. Thanks for spotting it out.","commit_id":"8db1b8c26356b49f39e2857656772194545f0aa5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                net_id \u003d self._drv_subnets.create_network(ns_name, project_id)"},{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"411e5a12_fd0aacf9","line":66,"range":{"start_line":66,"start_character":50,"end_line":66,"end_character":66},"updated":"2021-10-15 10:33:31.000000000","message":"The convention seems for this to be an identifier of the event, so this should be something like CreateNetworkFailed. See instances of eventRecorder usage at [1] for examples.\n\n[1] https://github.com/kubernetes/kubernetes/blob/3723713c550f649b6ba84964edef9da6cc334f9d/staging/src/k8s.io/cloud-provider/controllers/service/controller.go","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                net_id \u003d self._drv_subnets.create_network(ns_name, project_id)"},{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"8e709cf0_17bd29a2","line":66,"range":{"start_line":66,"start_character":50,"end_line":66,"end_character":66},"in_reply_to":"411e5a12_fd0aacf9","updated":"2021-10-15 11:57:05.000000000","message":"Ack","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":64,"context_line":"                net_id \u003d self._drv_subnets.create_network(ns_name, project_id)"},{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"}],"source_content_type":"text/x-python","patch_set":4,"id":"e06ed001_32634dfd","line":67,"range":{"start_line":67,"start_character":59,"end_line":67,"end_character":66},"updated":"2021-10-15 10:33:31.000000000","message":"How about we explicitly mention that this is a Neutron network? And elsewhere? This will direct user in a correct direction to look for a root cause.","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                net_id \u003d self._drv_subnets.create_network(ns_name, project_id)"},{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"}],"source_content_type":"text/x-python","patch_set":4,"id":"6ff34e22_4cb5c678","line":67,"range":{"start_line":67,"start_character":59,"end_line":67,"end_character":66},"in_reply_to":"e06ed001_32634dfd","updated":"2021-10-15 11:57:05.000000000","message":"Yeah, definitely.","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"},{"line_number":71,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"50a9d0a6_e937c7f9","line":68,"range":{"start_line":68,"start_character":66,"end_line":68,"end_character":71},"updated":"2021-10-15 10:33:31.000000000","message":"According to API reference this has to be either Normal or Warning [1]. Looks like it\u0027s defined here [2].\n\n[1] https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#event-v1-events-k8s-io\n[2] https://github.com/kubernetes/kubernetes/blob/a53e2eaeaba064309dceca2dc27f3ac09c6375b0/staging/src/k8s.io/api/core/v1/types.go#L5478-L5484","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"},{"line_number":71,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"c8c093b3_55eac284","line":68,"range":{"start_line":68,"start_character":37,"end_line":68,"end_character":55},"updated":"2021-10-15 10:33:31.000000000","message":"Hm, I wonder if namespace isn\u0027t already known, since Event is attached to a certain KuryrNetwork. No strong preference here, it can be left as is.","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"},{"line_number":71,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bc3fd902_bbac858f","line":68,"range":{"start_line":68,"start_character":55,"end_line":68,"end_character":57},"updated":"2021-10-15 10:33:31.000000000","message":"I strongly believe we should include Neutron\u0027s error message in here. openstack-cloud-provider does that [1]. This allows user to e.g. understand quota issues immediately.\n\n[1] https://github.com/kubernetes/kubernetes/blob/3723713c550f649b6ba84964edef9da6cc334f9d/staging/src/k8s.io/cloud-provider/controllers/service/controller.go#L345","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"},{"line_number":71,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ba5a753_b7a61c81","line":68,"range":{"start_line":68,"start_character":66,"end_line":68,"end_character":71},"in_reply_to":"50a9d0a6_e937c7f9","updated":"2021-10-15 11:57:05.000000000","message":"Ack","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"},{"line_number":71,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"cd88000c_6f2f1ea1","line":68,"range":{"start_line":68,"start_character":55,"end_line":68,"end_character":57},"in_reply_to":"bc3fd902_bbac858f","updated":"2021-10-15 11:57:05.000000000","message":"Ack","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            except os_exc.SDKException:"},{"line_number":66,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":67,"context_line":"                                   f\u0027Error during creating network for \u0027"},{"line_number":68,"context_line":"                                   f\u0027namespace {ns_name}\u0027, type_\u003d\u0027Error\u0027)"},{"line_number":69,"context_line":"                raise"},{"line_number":70,"context_line":"            status \u003d {\u0027netId\u0027: net_id}"},{"line_number":71,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"a95d52cd_8d98f260","line":68,"range":{"start_line":68,"start_character":37,"end_line":68,"end_character":55},"in_reply_to":"c8c093b3_55eac284","updated":"2021-10-15 11:57:05.000000000","message":"Yeah. I\u0027ll remove it, as it\u0027s redundant information.","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            status \u003d {\u0027nsLabels\u0027: kuryrnet_crd[\u0027spec\u0027][\u0027nsLabels\u0027]}"},{"line_number":121,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status, labels\u003dTrue)"},{"line_number":122,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":123,"context_line":"                               f\u0027SG for namespace {ns_name} has been \u0027"},{"line_number":124,"context_line":"                               f\u0027triggered\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def on_finalize(self, kuryrnet_crd, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"198ab8ad_3de93a19","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":39},"updated":"2021-10-15 10:33:31.000000000","message":"SG update for","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            status \u003d {\u0027nsLabels\u0027: kuryrnet_crd[\u0027spec\u0027][\u0027nsLabels\u0027]}"},{"line_number":121,"context_line":"            self._patch_kuryrnetwork_crd(kuryrnet_crd, status, labels\u003dTrue)"},{"line_number":122,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespacePrepare\u0027,"},{"line_number":123,"context_line":"                               f\u0027SG for namespace {ns_name} has been \u0027"},{"line_number":124,"context_line":"                               f\u0027triggered\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def on_finalize(self, kuryrnet_crd, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff5a2545_37f74845","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":39},"in_reply_to":"198ab8ad_3de93a19","updated":"2021-10-15 11:57:05.000000000","message":"Ack","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":134,"context_line":"                self._drv_subnets.delete_namespace_subnet(kuryrnet_crd)"},{"line_number":135,"context_line":"            except k_exc.ResourceNotReady:"},{"line_number":136,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":137,"context_line":"                                   f\u0027Cannot remove subnet SG for network \u0027"},{"line_number":138,"context_line":"                                   f\u0027{net_id}\u0027)"},{"line_number":139,"context_line":"                LOG.debug(\"Subnet is not ready to be removed.\")"},{"line_number":140,"context_line":"                # TODO(ltomasbo): Once KuryrPort CRDs is supported, we should"},{"line_number":141,"context_line":"                # execute a delete network ports method here to remove the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ad9b4e7_64545b04","line":138,"range":{"start_line":137,"start_character":37,"end_line":138,"end_character":45},"updated":"2021-10-15 10:33:31.000000000","message":"Yep, this is definitely Normal, but it\u0027s not an SG. I\u0027d probably word it like \"Subnet %s not ready to get removed yet. Most likely there still are ports on the subnet\"","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                self._drv_subnets.delete_namespace_subnet(kuryrnet_crd)"},{"line_number":135,"context_line":"            except k_exc.ResourceNotReady:"},{"line_number":136,"context_line":"                self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":137,"context_line":"                                   f\u0027Cannot remove subnet SG for network \u0027"},{"line_number":138,"context_line":"                                   f\u0027{net_id}\u0027)"},{"line_number":139,"context_line":"                LOG.debug(\"Subnet is not ready to be removed.\")"},{"line_number":140,"context_line":"                # TODO(ltomasbo): Once KuryrPort CRDs is supported, we should"},{"line_number":141,"context_line":"                # execute a delete network ports method here to remove the"}],"source_content_type":"text/x-python","patch_set":4,"id":"e3bb606e_ef947a95","line":138,"range":{"start_line":137,"start_character":37,"end_line":138,"end_character":45},"in_reply_to":"5ad9b4e7_64545b04","updated":"2021-10-15 11:57:05.000000000","message":"Ack","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0741880fdba7e4437563ca7f9b2bc1d6c9717935","unresolved":true,"context_lines":[{"line_number":158,"context_line":"            self.k8s.remove_finalizer(kuryrnet_crd,"},{"line_number":159,"context_line":"                                      constants.KURYRNETWORK_FINALIZER)"},{"line_number":160,"context_line":"        except k_exc.K8sClientException:"},{"line_number":161,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":162,"context_line":"                               f\u0027Error removing kuryrnetwork CRD for \u0027"},{"line_number":163,"context_line":"                               f\u0027{kuryrnet_crd}\u0027)"},{"line_number":164,"context_line":"            LOG.exception(\u0027Error removing kuryrnetwork CRD finalizer for %s\u0027,"},{"line_number":165,"context_line":"                          kuryrnet_crd)"},{"line_number":166,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"2ac757f4_9008d7ee","line":163,"range":{"start_line":161,"start_character":0,"end_line":163,"end_character":49},"updated":"2021-10-15 10:33:31.000000000","message":"This will get nicely retried when event will be periodically retried by watcher and if one call to K8s API haven\u0027t succeeded, it\u0027s pretty likely the event creation will fail too. Maybe this one is not needed.","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"354dcdbc6958c90b0ce4052df2f0cda618e04a19","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            self.k8s.remove_finalizer(kuryrnet_crd,"},{"line_number":159,"context_line":"                                      constants.KURYRNETWORK_FINALIZER)"},{"line_number":160,"context_line":"        except k_exc.K8sClientException:"},{"line_number":161,"context_line":"            self.k8s.add_event(kuryrnet_crd, \u0027NamespaceRemove\u0027,"},{"line_number":162,"context_line":"                               f\u0027Error removing kuryrnetwork CRD for \u0027"},{"line_number":163,"context_line":"                               f\u0027{kuryrnet_crd}\u0027)"},{"line_number":164,"context_line":"            LOG.exception(\u0027Error removing kuryrnetwork CRD finalizer for %s\u0027,"},{"line_number":165,"context_line":"                          kuryrnet_crd)"},{"line_number":166,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"f4daad67_fc7ba0ff","line":163,"range":{"start_line":161,"start_character":0,"end_line":163,"end_character":49},"in_reply_to":"2ac757f4_9008d7ee","updated":"2021-10-15 11:57:05.000000000","message":"Ack","commit_id":"228161cc4d55e5c3d82c9772fbc314f2dd690447"}]}
