)]}'
{"kuryr_kubernetes/controller/drivers/neutron_vif.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"a710efc44b1b60746f09925369edd36abe244672","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_ecb830e6","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":53},"updated":"2020-04-20 06:55:13.000000000","message":"is this something a normal tenant has access to?","commit_id":"bf58d8ec076c0930cc34e05935858affe8c0b9cc"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"050aec2387d81490118e7d93a4ea548401dbe94a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_a7d8011e","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":53},"in_reply_to":"3f4c43b2_2cd978f2","updated":"2020-04-20 08:15:46.000000000","message":"The value. Normal users will only see \"None\" here","commit_id":"bf58d8ec076c0930cc34e05935858affe8c0b9cc"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"4138917238fd52058e7ace569eb4d424dbee03c9","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_c27c1b85","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":53},"in_reply_to":"3f4c43b2_a7d8011e","updated":"2020-04-21 01:19:03.000000000","message":"Yes, only the users with the admin role for the project/tenant can see this value.","commit_id":"bf58d8ec076c0930cc34e05935858affe8c0b9cc"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"7c8bfabf9d9ad194f705e707c5aac5dacac77e03","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_2cd978f2","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":53},"in_reply_to":"3f4c43b2_ecb830e6","updated":"2020-04-20 07:25:27.000000000","message":"I don\u0027t understand your question, Can you please elaborate? Do you mean access to this variable or the value that it is carrying?","commit_id":"bf58d8ec076c0930cc34e05935858affe8c0b9cc"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"01b26d4ef5ce266b54ea2c44e7a154cdb1025a5a","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return ovu.neutron_to_osvif_vif(port.binding_vif_type, port, subnets)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_f843df11","line":44,"range":{"start_line":44,"start_character":27,"end_line":44,"end_character":50},"updated":"2020-05-08 14:46:02.000000000","message":"Let\u0027s make sure to say that this is most likely an error on Neutron side, over the years we\u0027ve got multiple bugs raised about it, when it was not Kuryr\u0027s fault. How about:\n\n Binding failed for port: %s. Most likely the root cause is on Neutron.","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"04d434711b21a2cc579bebf518b6316920d05d27","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return ovu.neutron_to_osvif_vif(port.binding_vif_type, port, subnets)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_bd67a051","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":46},"updated":"2020-04-24 06:46:03.000000000","message":"Should this go before tagging to avoid extra call in case we are going to end up deleting the port?\n\nIn addition, is the binding done right away? I think that may take some time to converge and this call may retrieve the binding details before that information is updated. Or that is at creation time? In addition, is this something to add here or in the activate_vif function?","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"01b26d4ef5ce266b54ea2c44e7a154cdb1025a5a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return ovu.neutron_to_osvif_vif(port.binding_vif_type, port, subnets)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_f8247fb1","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":46},"in_reply_to":"1f493fa4_3831dea3","updated":"2020-05-08 14:46:02.000000000","message":"This might have some repercussions regarding CNI as we\u0027re caching VIF info there, moving it after pod gets annotated needs to be thought through.","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"9e1631b8ca389b03381c0ea3b4ef9198b657ebf3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return ovu.neutron_to_osvif_vif(port.binding_vif_type, port, subnets)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_3831dea3","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":46},"in_reply_to":"1f493fa4_780c063b","updated":"2020-04-24 07:36:32.000000000","message":"In my opinion that depends on when thie binding_failed information is added to the port. If at creating time, then it is ok, if later, I think this checking belongs to the activate_vif (as the end result of a binding_failed is that it will never become active, and my interpretation of this is that binding_failed will actually happen when the port failed to transition to ACTIVE, but I may be wrong here).\n\nSo, if the above holds, I would move this check to activate_vif and if the port is \"broken\" then remove the port and remove the pods annotations so that it picks a new port.","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"a3ab60a8dc1e6c842a07c238941d162b7f9b3b22","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":"        utils.tag_neutron_resources([port])"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":43,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":44,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":45,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        return ovu.neutron_to_osvif_vif(port.binding_vif_type, port, subnets)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_780c063b","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":46},"in_reply_to":"1f493fa4_bd67a051","updated":"2020-04-24 07:15:41.000000000","message":"I will move it before the tagging call. \n\nDuring my experiences, I found that the binding information was present after the create_port request. I however don\u0027t know if it will hold true for other cases.  \n\nI think this is a better place to put this code as compared to the activate_vif because we can avoid putting the wrong port annotation on the pod. A port with binding_failed will not become active in the future as well.\n\nWith the current approach it will keep making new port requests and if the neutron is fixed in the meantime, we will be able to have a successful port allocation.","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"04d434711b21a2cc579bebf518b6316920d05d27","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        except os_exc.SDKException:"},{"line_number":60,"context_line":"            LOG.exception(\"Error creating bulk ports: %s\", bulk_port_rq)"},{"line_number":61,"context_line":"            raise"},{"line_number":62,"context_line":"        utils.tag_neutron_resources(ports)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        vif_plugin \u003d ports[0].binding_vif_type"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_bd220000","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":42},"updated":"2020-04-24 06:46:03.000000000","message":"we should handle it for pool requests too I suppose, right? Otherwise we can end up on the same situation","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"a3ab60a8dc1e6c842a07c238941d162b7f9b3b22","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        except os_exc.SDKException:"},{"line_number":60,"context_line":"            LOG.exception(\"Error creating bulk ports: %s\", bulk_port_rq)"},{"line_number":61,"context_line":"            raise"},{"line_number":62,"context_line":"        utils.tag_neutron_resources(ports)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        vif_plugin \u003d ports[0].binding_vif_type"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_5dc77c13","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":42},"in_reply_to":"1f493fa4_bd220000","updated":"2020-04-24 07:15:41.000000000","message":"Yes certainly. I missed it.","commit_id":"45b517a7b97cd5f7da9277e0524ec7c00a091147"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"e1044e83047e74ccd455c5c888511d3bcec662e3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":42,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":43,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":44,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_e78701d7","line":42,"range":{"start_line":42,"start_character":11,"end_line":42,"end_character":61},"updated":"2020-05-12 10:51:01.000000000","message":"why not using client instance created on line 36?\n\n    os_net.delete_port(port.id)","commit_id":"acd0c808934d6b36df6bbd0d4c5e92b28a178585"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"7127c80f815d206419059c39a25d8d0cbf93a1e3","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":42,"context_line":"            clients.get_network_client().delete_port(port.id)"},{"line_number":43,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":44,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        utils.tag_neutron_resources([port])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_b862f7ab","line":43,"range":{"start_line":43,"start_character":27,"end_line":43,"end_character":54},"updated":"2020-05-08 14:47:43.000000000","message":"Can we blame Neutron here? ;)\n\n Binding failed for port: %s. Most likely the root cause is on Neutron.","commit_id":"acd0c808934d6b36df6bbd0d4c5e92b28a178585"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"e1044e83047e74ccd455c5c888511d3bcec662e3","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        if vif_plugin \u003d\u003d \"binding_failed\":"},{"line_number":75,"context_line":"            for port in ports:"},{"line_number":76,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":77,"context_line":"            LOG.exception(\"Binding failed error for bulk ports: %s\", ports)"},{"line_number":78,"context_line":"            raise k_exc.ResourceNotReady(ports)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_2769f924","line":76,"range":{"start_line":76,"start_character":16,"end_line":76,"end_character":65},"updated":"2020-05-12 10:51:01.000000000","message":"Ditto.","commit_id":"acd0c808934d6b36df6bbd0d4c5e92b28a178585"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"7127c80f815d206419059c39a25d8d0cbf93a1e3","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        if vif_plugin \u003d\u003d \"binding_failed\":"},{"line_number":75,"context_line":"            for port in ports:"},{"line_number":76,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":77,"context_line":"            LOG.exception(\"Binding failed error for bulk ports: %s\", ports)"},{"line_number":78,"context_line":"            raise k_exc.ResourceNotReady(ports)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        vifs \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_5873f380","line":77,"range":{"start_line":77,"start_character":27,"end_line":77,"end_character":62},"updated":"2020-05-08 14:47:43.000000000","message":"Here too.","commit_id":"acd0c808934d6b36df6bbd0d4c5e92b28a178585"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"34f8c2e2c0f7692c5613eebe6b3b97f47483721e","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if port.binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":42,"context_line":"            os_net.delete_port(port.id)"},{"line_number":43,"context_line":"            LOG.exception(\"Binding failed for port: %s\", port)"},{"line_number":44,"context_line":"            raise k_exc.ResourceNotReady(port)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        utils.tag_neutron_resources([port])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_bdbcaedc","line":43,"range":{"start_line":43,"start_character":10,"end_line":43,"end_character":62},"updated":"2020-05-15 10:29:55.000000000","message":"Please, change message as proposed by Michał in previous patchset comment.","commit_id":"648714f4198060200e1542033d4f22aca2a8500d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"34f8c2e2c0f7692c5613eebe6b3b97f47483721e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        if vif_plugin \u003d\u003d \"binding_failed\":"},{"line_number":75,"context_line":"            for port in ports:"},{"line_number":76,"context_line":"                os_net.delete_port(port.id)"},{"line_number":77,"context_line":"            LOG.exception(\"Binding failed error for bulk ports: %s\", ports)"},{"line_number":78,"context_line":"            raise k_exc.ResourceNotReady(ports)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        vifs \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_9dbf2acf","line":77,"range":{"start_line":77,"start_character":27,"end_line":77,"end_character":68},"updated":"2020-05-15 10:29:55.000000000","message":"Ditto.","commit_id":"648714f4198060200e1542033d4f22aca2a8500d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0cc4d31bfce7761e873c5e106e1c504eced2b8ab","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        if ports[0].binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":132,"context_line":"            for port in ports:"},{"line_number":133,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":134,"context_line":"            LOG.exception(\"Binding failed error for ports: %s.\""},{"line_number":135,"context_line":"                          \" Please check Neutron for errors.\", ports)"},{"line_number":136,"context_line":"            raise k_exc.ResourceNotReady(ports)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_983dc32e","line":134,"range":{"start_line":134,"start_character":16,"end_line":134,"end_character":25},"updated":"2020-05-26 12:27:00.000000000","message":"This should be error, we don\u0027t have exception in the scope here. I\u0027d just ignore it, but apparently docs state that this should only be called from exception handler [1].\n\n[1] https://docs.python.org/3/library/logging.html#logging.Logger.exception","commit_id":"0aa198897cb320e255f4702e1c8e809f5b405119"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"d80388e9b67ed4ba0f0f3dcd5b16194339a024a0","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        if ports[0].binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":132,"context_line":"            for port in ports:"},{"line_number":133,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":134,"context_line":"            LOG.exception(\"Binding failed error for ports: %s.\""},{"line_number":135,"context_line":"                          \" Please check Neutron for errors.\", ports)"},{"line_number":136,"context_line":"            raise k_exc.ResourceNotReady(ports)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_cb40f50a","line":134,"range":{"start_line":134,"start_character":16,"end_line":134,"end_character":25},"in_reply_to":"ff570b3c_983dc32e","updated":"2020-05-26 23:42:28.000000000","message":"Done","commit_id":"0aa198897cb320e255f4702e1c8e809f5b405119"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"d02d7ca757debab00da68c17b4477a81befef193","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return port_req_body"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _check_port_binding(self, ports):"},{"line_number":131,"context_line":"        if ports[0].binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":132,"context_line":"            for port in ports:"},{"line_number":133,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":134,"context_line":"            LOG.error(\"Binding failed error for ports: %s.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_91b9997a","line":131,"range":{"start_line":131,"start_character":8,"end_line":131,"end_character":57},"updated":"2020-06-03 07:17:23.000000000","message":"what if the one failing binding is not the first one?","commit_id":"0e82d8005fd15309ab27107b939d72be220877a1"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"cb211055f6cabccad5f3920174633c2adb94411b","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return port_req_body"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _check_port_binding(self, ports):"},{"line_number":131,"context_line":"        if ports[0].binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":132,"context_line":"            for port in ports:"},{"line_number":133,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":134,"context_line":"            LOG.error(\"Binding failed error for ports: %s.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_e900d368","line":131,"range":{"start_line":131,"start_character":8,"end_line":131,"end_character":57},"in_reply_to":"ff570b3c_7bfbfb77","updated":"2020-06-04 08:10:26.000000000","message":"I assumed that because we are sending the same request for all the ports.","commit_id":"0e82d8005fd15309ab27107b939d72be220877a1"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"939454d17a0fb306f169953850aed1c25a9f4b68","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return port_req_body"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _check_port_binding(self, ports):"},{"line_number":131,"context_line":"        if ports[0].binding_vif_type \u003d\u003d \"binding_failed\":"},{"line_number":132,"context_line":"            for port in ports:"},{"line_number":133,"context_line":"                clients.get_network_client().delete_port(port.id)"},{"line_number":134,"context_line":"            LOG.error(\"Binding failed error for ports: %s.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_7bfbfb77","line":131,"range":{"start_line":131,"start_character":8,"end_line":131,"end_character":57},"in_reply_to":"ff570b3c_91b9997a","updated":"2020-06-03 14:30:53.000000000","message":"My bet is that this is normally a Neutron error and it\u0027s all-or-nothing, but explanation would be nice.","commit_id":"0e82d8005fd15309ab27107b939d72be220877a1"}]}
