)]}'
{"id":"openstack%2Fkuryr-kubernetes~695621","triplet_id":"openstack%2Fkuryr-kubernetes~master~Ia69a4e538c552e9b6b022860b43c51f651080dd7","project":"openstack/kuryr-kubernetes","branch":"master","topic":"bp/exceptions-structure","hashtags":[],"change_id":"Ia69a4e538c552e9b6b022860b43c51f651080dd7","subject":"Add specs for new exception structure","status":"NEW","created":"2019-11-22 03:15:08.000000000","updated":"2020-06-02 08:21:58.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":18,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"22a0fdf7a7e962bc6139d5bedda58cedad572012","_number":695621,"virtual_id_number":695621,"owner":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},{"date":"2020-04-07 10:18:58.000000000","_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},{"tag":"autogenerated:zuul:check","value":1,"date":"2020-04-06 01:35:21.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":25900,"name":"Vladimir Kuramshin","email":"vladimir@kuramsh.in","username":"vkuramshin"},{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},{"date":"2020-05-22 09:03:23.000000000","_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},"disliked":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},{"value":1,"date":"2020-06-02 08:21:58.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},{"value":-1,"date":"2020-04-07 06:43:50.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":25900,"name":"Vladimir Kuramshin","email":"vladimir@kuramsh.in","username":"vkuramshin"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":25900,"name":"Vladimir Kuramshin","email":"vladimir@kuramsh.in","username":"vkuramshin"},{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},{"_account_id":25900,"name":"Vladimir Kuramshin","email":"vladimir@kuramsh.in","username":"vkuramshin"},{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-11-22 05:30:19.000000000","updated_by":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"reviewer":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"state":"REVIEWER"},{"updated":"2019-11-22 05:30:44.000000000","updated_by":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"reviewer":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"state":"REVIEWER"},{"updated":"2019-11-22 05:30:56.000000000","updated_by":{"_account_id":25900,"name":"Vladimir Kuramshin","email":"vladimir@kuramsh.in","username":"vkuramshin"},"reviewer":{"_account_id":25900,"name":"Vladimir Kuramshin","email":"vladimir@kuramsh.in","username":"vkuramshin"},"state":"REVIEWER"},{"updated":"2019-11-22 09:17:03.000000000","updated_by":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"reviewer":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"state":"REVIEWER"},{"updated":"2020-03-30 07:28:49.000000000","updated_by":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"reviewer":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"state":"REVIEWER"},{"updated":"2020-04-06 01:35:21.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-04-07 06:43:50.000000000","updated_by":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"reviewer":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"state":"REVIEWER"},{"updated":"2020-04-07 10:18:58.000000000","updated_by":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"reviewer":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"state":"REVIEWER"},{"updated":"2020-05-22 09:03:23.000000000","updated_by":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"reviewer":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"state":"REVIEWER"},{"updated":"2020-06-02 08:21:58.000000000","updated_by":{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},"reviewer":{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},"state":"REVIEWER"}],"messages":[{"id":"e14f5ba0a762517817f574e8d779dc1cf0c371ac","author":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"date":"2019-11-22 03:15:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b934bd2ccca23d4c5e386d332142a3236aaf1c49","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-11-22 03:19:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/938c6226fc4c41d38e3a1d824494b78a : SUCCESS in 3m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f9d5f1c36af345d0b26f007af734d537 : SUCCESS in 3m 27s","accounts_in_message":[],"_revision_number":1},{"id":"34b0933b1fe313276e33161809f7cc435ba087f6","author":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"date":"2019-11-22 05:30:01.000000000","message":"Patch Set 1:\n\nThis is the preliminary design I thought can be useful for exception handling and overall stability. \nPlease suggest what can be changed to make it better.","accounts_in_message":[],"_revision_number":1},{"id":"d62d28eec79819196b716bce2f7be4c7883131df","author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"date":"2019-11-22 09:17:03.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nNice! thanks for working on this! I think a bit more information is needed on the explanations and perhaps some examples. In addition, are you planning to include neutron/octavia (now openstacksdk) exceptions there?","accounts_in_message":[],"_revision_number":1},{"id":"0a2659a6a7fc9451719151e5e99d58c5a0b94dcb","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-03-30 02:59:24.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"2950be6d8a7032fe87b298bea2564a52f3b2f0e8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-03-30 03:08:02.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b5611c3eadb0443eae2e6f6d89bf9f50 : SUCCESS in 3m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f7700c3af6c44f84b2a64a4200339937 : SUCCESS in 3m 45s","accounts_in_message":[],"_revision_number":2},{"id":"f537323a0e24d7edc08adc8cc26d84f56b6974ba","author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"date":"2020-04-02 08:23:26.000000000","message":"Patch Set 2: Code-Review-1\n\n(7 comments)","accounts_in_message":[],"_revision_number":2},{"id":"f5336b54a7e1e0c908b1f73a3b48fc6b48f9c372","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-04-06 01:30:46.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"00b364d7ed5d81d3e0807525f3dc010f6c8dbc8d","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-04-06 01:33:15.000000000","message":"Patch Set 2:\n\n(6 comments)\n\nThanks for the review. I would be happy to hear your thoughts on the class structure, if  you have any suggestions.","accounts_in_message":[],"_revision_number":2},{"id":"8e3126863a349faf43f5b5dcb85433f8a6c6d87b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-06 01:35:21.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e7c82823548847938312a4838e5618c1 : SUCCESS in 3m 29s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d57ed2507998470596f6ee3f795e22c3 : SUCCESS in 4m 13s","accounts_in_message":[],"_revision_number":3},{"id":"530747cd52918e00ce5d2c90e822560344b50455","author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"date":"2020-04-06 09:53:46.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"d8036154fbf7aab60aa6cfb2c84eaedf5488f433","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-04-07 05:14:21.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"1797d54a7631e5c086670e369424ecc7f21d2b69","author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"date":"2020-04-07 06:43:50.000000000","message":"Patch Set 3: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"c92fba2dbe71a99dc9c1f478e4baf155a7052b24","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-04-07 07:15:30.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"b02a5ca9ad9334a535e40f50c822aab2c21999d8","author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"date":"2020-04-07 10:18:58.000000000","message":"Patch Set 3:\n\nNayan, I see, thanks for explanations.\nIn this case we should even think what behavior of exception is let\u0027s say \"default\" (exception that leads to container restart or not)","accounts_in_message":[],"_revision_number":3},{"id":"1084ec3e8f8f39f45a49b2f8f4948ed4068a164a","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-04-08 10:00:35.000000000","message":"Patch Set 3:\n\n\u003e Nayan, I see, thanks for explanations.\n \u003e In this case we should even think what behavior of exception is\n \u003e let\u0027s say \"default\" (exception that leads to container restart or\n \u003e not)\n\nI wanted to avoid having a default value as it highly depends on the error type be it Fatal, Transient or Non-Fatal","accounts_in_message":[],"_revision_number":3},{"id":"270bfb301ca4b95623da6691e8c802635dc581b0","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-05-14 01:37:55.000000000","message":"Patch Set 3:\n\nAny thoughts on this patch? If it\u0027s needed or might be an overkill.","accounts_in_message":[],"_revision_number":3},{"id":"8694846051f40184e09645c5b00e2537da467929","author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"date":"2020-05-15 10:34:57.000000000","message":"Patch Set 3:\n\nI\u0027d expect more details in areas \"why\" and \"how\". Why we do propose such exceptions structure (which Nayan explained in the comments), and how to apply it in the code - an example or two would be beneficial.\n\nI still have mixed feelings regarding the idea, but maybe let others to express their opinion.","accounts_in_message":[],"_revision_number":3},{"id":"89358f4ece273e9f9b717a900fb0144395ba7470","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-05-22 08:58:45.000000000","message":"Patch Set 3:\n\nThe below patch shows an example on how we need to improve the exception handling in kuryr-kubernetes (not necessarily with the structure I proposed). We need to ensure that all the exceptions are caught, otherwise they will lead to crash of the kuryr controller/cni and the resulting downtime.\n\ndiff --git a/kuryr_kubernetes/controller/handlers/vif.py b/kuryr_kubernetes/controller/handlers/vif.py\nindex 3bee857..f1fa8d6 100644\n--- a/kuryr_kubernetes/controller/handlers/vif.py\n+++ b/kuryr_kubernetes/controller/handlers/vif.py\n@@ -115,10 +115,19 @@ class VIFHandler(k8s_base.ResourceEventHandler):\n \n             # Request the additional interfaces from multiple dirvers\n             additional_vifs \u003d []\n-            for driver in self._drv_multi_vif:\n-                additional_vifs.extend(\n-                    driver.request_additional_vifs(\n-                        pod, project_id, security_groups))\n+            try:\n+                for driver in self._drv_multi_vif:\n+                    additional_vifs.extend(\n+                        driver.request_additional_vifs(\n+                            pod, project_id, security_groups))\n+            except k_exc.InvalidKuryrNetworkAnnotation:\n+                pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]\n+                LOG.warning(\"Invalid additional network parameters for pod %s\",\n+                            pod_name)\n+                self._drv_vif_pool.release_vif(pod, main_vif, project_id,\n+                                               security_groups)\n+                return\n+\n             if additional_vifs:\n                 state.additional_vifs \u003d {}\n                 for i, vif in enumerate(additional_vifs, start\u003d1):\n\n\nWe should catch the InvalidKuryrNetworkAnnotation exception otherwise it will lead to restart of the kuryr controller. But this is a fault on the user side and hence there is no need for us to restart.","accounts_in_message":[],"_revision_number":3},{"id":"a736635eafc9acdc7dc128a07f927921e905cf97","author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"date":"2020-05-22 09:03:23.000000000","message":"Patch Set 3:\n\nAnother example of exception handling:\n\ndiff --git a/kuryr_kubernetes/cni/binding/base.py b/kuryr_kubernetes/cni/binding/base.py\nindex 7008d3f..5fb1382 100644\n--- a/kuryr_kubernetes/cni/binding/base.py\n+++ b/kuryr_kubernetes/cni/binding/base.py\n@@ -24,6 +24,7 @@ from stevedore import driver as stv_driver\n \n from kuryr_kubernetes import config\n from kuryr_kubernetes import constants\n+from kuryr_kubernetes import exceptions\n from kuryr_kubernetes import utils\n \n _BINDING_NAMESPACE \u003d \u0027kuryr_kubernetes.cni.binding\u0027\n@@ -155,7 +156,10 @@ def connect(vif, instance_info, ifname, netns\u003dNone, report_health\u003dNone,\n     driver \u003d _get_binding_driver(vif)\n     if report_health:\n         report_health(driver.is_alive())\n-    os_vif.plug(vif, instance_info)\n+    try:\n+        os_vif.plug(vif, instance_info)\n+    except os_vif.exception.ExceptionBase:\n+        raise exceptions.CNIBindingFailure\n     driver.connect(vif, ifname, netns, container_id)\n     if _need_configure_l3(vif):\n         _configure_l3(vif, ifname, netns, is_default_gateway)\ndiff --git a/kuryr_kubernetes/cni/daemon/service.py b/kuryr_kubernetes/cni/daemon/service.py\nindex d36e766..45217b8 100644\n--- a/kuryr_kubernetes/cni/daemon/service.py\n+++ b/kuryr_kubernetes/cni/daemon/service.py\n@@ -81,6 +81,10 @@ class DaemonServer(object):\n         try:\n             vif \u003d self.plugin.add(params)\n             data \u003d jsonutils.dumps(vif.obj_to_primitive())\n+        except exceptions.CNIBindingFailure:\n+            LOG.exception(\u0027Error when processing addNetwork request. CNI \u0027\n+                          \u0027Params: %s\u0027, params)\n+            return \u0027\u0027, httplib.INTERNAL_SERVER_ERROR, self.headers\n         except exceptions.ResourceNotReady:\n             self._check_failure()\n             LOG.error(\u0027Error when processing addNetwork request\u0027)\n\nThe aim of the patch is to avoid calling _check_failure() for cases where the fault is not on the cni side. This error sometimes shows up when ovs times out when it is handling lot of request.","accounts_in_message":[],"_revision_number":3},{"id":"a1675cb802a7188c54c8f8de7f112691f65e7b3e","author":{"_account_id":14570,"name":"Ashish Billore","email":"ash.billore@samsung.com","username":"ashish.billore"},"date":"2020-06-02 08:21:58.000000000","message":"Patch Set 3: Code-Review+1\n\nThis is very much needed to classify and handle accordingly exceptions in various internal and external factors of kuryr:\n- User error (incorrect config/ request value)\n- K8s api issue\n- ovs issue\n- neutron issue\nWithout this type of exception handling in place everything is treated as fatal, causing kuryr cni/controller to crashloop without achieving much.","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"1408bbf297170d0a45f244f9909f91c6fc1956ae","revisions":{"b69173cf4255e80a30c2137dfc443364a2a02a06":{"kind":"REWORK","_number":1,"created":"2019-11-22 03:15:08.000000000","uploader":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"ref":"refs/changes/21/695621/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/kuryr-kubernetes","ref":"refs/changes/21/695621/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/1"}}},"commit":{"parents":[{"commit":"9c8cc8b092252915b9d3fb18dae21fef74bff6d3","subject":"Merge \"Fix multinode gate after switch to Python 3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/9c8cc8b092252915b9d3fb18dae21fef74bff6d3"}]}],"author":{"name":"Yash Gupta","email":"y.gupta@samsung.com","date":"2019-11-19 06:32:15.000000000","tz":540},"committer":{"name":"Yash Gupta","email":"y.gupta@samsung.com","date":"2019-11-22 03:14:38.000000000","tz":540},"subject":"Add specs for new exception structure","message":"Add specs for new exception structure\n\nThis patch adds the design doc for a structured exception classes\nproposal\n\nPartially-Implements: blueprint exceptions-structure\nChange-Id: Ia69a4e538c552e9b6b022860b43c51f651080dd7\nSigned-off-by: Yash Gupta \u003cy.gupta@samsung.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/b69173cf4255e80a30c2137dfc443364a2a02a06"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/b69173cf4255e80a30c2137dfc443364a2a02a06"}]},"branch":"refs/heads/master"},"14b8b2995bb65330212b2de0e3a829a3dcb4b9a3":{"kind":"REWORK","_number":2,"created":"2020-03-30 02:59:24.000000000","uploader":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"ref":"refs/changes/21/695621/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/kuryr-kubernetes","ref":"refs/changes/21/695621/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/2"}}},"commit":{"parents":[{"commit":"358886022af92d2401db2fc9be28dd19735a08ee","subject":"Use the right variable in debug message","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/358886022af92d2401db2fc9be28dd19735a08ee"}]}],"author":{"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","date":"2019-11-19 06:32:15.000000000","tz":540},"committer":{"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","date":"2020-03-30 03:01:22.000000000","tz":540},"subject":"Add specs for new exception structure","message":"Add specs for new exception structure\n\nThis patch adds the design doc for a structured exception classes\nproposal\n\nPartially-Implements: blueprint exceptions-structure\nChange-Id: Ia69a4e538c552e9b6b022860b43c51f651080dd7\nSigned-off-by: Yash Gupta \u003cy.gupta@samsung.com\u003e\nSigned-off-by: Nayan Deshmukh \u003cn.deshmukh@samsung.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/14b8b2995bb65330212b2de0e3a829a3dcb4b9a3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/14b8b2995bb65330212b2de0e3a829a3dcb4b9a3"}]},"branch":"refs/heads/master"},"1408bbf297170d0a45f244f9909f91c6fc1956ae":{"kind":"REWORK","_number":3,"created":"2020-04-06 01:30:46.000000000","uploader":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"ref":"refs/changes/21/695621/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/kuryr-kubernetes","ref":"refs/changes/21/695621/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/kuryr-kubernetes refs/changes/21/695621/3"}}},"commit":{"parents":[{"commit":"c1884278cdf01d5e8ee2dffcf04b287765155acd","subject":"Remove unused method","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/c1884278cdf01d5e8ee2dffcf04b287765155acd"}]}],"author":{"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","date":"2019-11-19 06:32:15.000000000","tz":540},"committer":{"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","date":"2020-04-06 01:31:44.000000000","tz":540},"subject":"Add specs for new exception structure","message":"Add specs for new exception structure\n\nThis patch adds the design doc for a structured exception classes\nproposal\n\nPartially-Implements: blueprint exceptions-structure\nChange-Id: Ia69a4e538c552e9b6b022860b43c51f651080dd7\nSigned-off-by: Yash Gupta \u003cy.gupta@samsung.com\u003e\nSigned-off-by: Nayan Deshmukh \u003cn.deshmukh@samsung.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/1408bbf297170d0a45f244f9909f91c6fc1956ae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/kuryr-kubernetes/commit/1408bbf297170d0a45f244f9909f91c6fc1956ae"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"}},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
