)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"99f4a0dc30c65244abf1934b3b07bc7d53b74554","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e77bf07d_b193d1c8","updated":"2021-12-16 08:25:56.000000000","message":"Need to fix some tests","commit_id":"8f1d76b31d68c153bf8c0258db60c4c2207e35f3"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"4b4419ce333af6c6fee8175b1ac36ac3dbb69a95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"be5e2e5d_c794e559","in_reply_to":"e77bf07d_b193d1c8","updated":"2021-12-16 10:46:10.000000000","message":"These tests are in tempest https://opendev.org/openstack/tempest/src/branch/master/tempest/api/network/test_networks.py#L650\n\nand those expects following message to be there in the error: \"There are one or more ports still in use on the network\". \nSo option is to either modify the message in tempest test such that it works with both older and newer message or make the newer message also include the previous message along. Will update the patch as per second option to have less disruption","commit_id":"8f1d76b31d68c153bf8c0258db60c4c2207e35f3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a583ec00876b35af7ac99731fdd21664c8646f8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"39baa737_04f09eff","updated":"2021-12-16 12:01:05.000000000","message":"This is pretty cool from manual user\u0027s standpoint, just wondering if it\u0027s possible to introduce some app-friendly way of passing these IDs? In Kuryr we could benefit from having the IDs in error, but parsing an error message to get them seems scary.","commit_id":"7b61adbb4a0e3147e08e511cdf40a4073c00d099"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"e260f120ece2b72edf2991ad28d94d8f3339bacb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2f3b0ce5_c39f4d9e","updated":"2021-12-20 04:37:04.000000000","message":"recheck pypi failures","commit_id":"7b61adbb4a0e3147e08e511cdf40a4073c00d099"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"838ff323d4b81c3a4ea2dfd0518b09370c88b6fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"879984fa_869a530c","updated":"2021-12-17 08:10:53.000000000","message":"recheck pypi failures","commit_id":"7b61adbb4a0e3147e08e511cdf40a4073c00d099"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"d8c3b199c78ce18fc365fd28dded1ebdad4bbc03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4806f29b_0c3c5e2a","in_reply_to":"39baa737_04f09eff","updated":"2021-12-16 13:24:12.000000000","message":"@Michal not sure about what way you looking for, but can you elaborate more on what way you expecting these to be. others may have opinion there.","commit_id":"7b61adbb4a0e3147e08e511cdf40a4073c00d099"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"cbdc6f385a0e0b44d8a73521d10976669452b351","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e626ceff_365bf686","in_reply_to":"4806f29b_0c3c5e2a","updated":"2021-12-16 17:12:02.000000000","message":"Sure! So here\u0027s what Neutron API returns on such errors:\n\n http://10.1.10.46:9696 \"DELETE /v2.0/networks/e10886c7-0e3d-4b6d-aa00-0abaca77c8a7 HTTP/1.1\" 409 205\n RESP: [409] Content-Length: 205 Content-Type: application/json Date: Thu, 16 Dec 2021 17:07:56 GMT X-Openstack-Request-Id: req-5f247056-98e6-4ccc-bf0c-228384351058\n RESP BODY: {\"NeutronError\": {\"type\": \"NetworkInUse\", \"message\": \"Unable to complete operation on network e10886c7-0e3d-4b6d-aa00-0abaca77c8a7. There are one or more ports still in use on the network.\", \"detail\": \"\"}}\n\nAs you can see the body of the response is a JSON. In case I\u0027d want my app to attempt to delete ports preventing deletion of the network, when such error occurs, I\u0027d need to parse the NeutronError.message string. My point is that it would be cool to have e.g. conflict_list field there that would have these IDs in form of a JSON list.\n\nThis might be out of scope of the patch, I get it, just showing a possible improvement.","commit_id":"7b61adbb4a0e3147e08e511cdf40a4073c00d099"}],"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4c4d2737e0fd43a8a52f0f58fdc7882e3189d6bf","unresolved":true,"context_lines":[{"line_number":478,"context_line":"        if non_auto_ports.count():"},{"line_number":479,"context_line":"            ports \u003d [port.id for port in non_auto_ports.all()]"},{"line_number":480,"context_line":"            reason \u003d _(\"There are one or more ports still in use on the \""},{"line_number":481,"context_line":"                       \"network, id for these ports is: %s\" % \",\".join(ports))"},{"line_number":482,"context_line":"            raise exc.NetworkInUse(net_id\u003dnet_id, reason\u003dreason)"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff4953aa_4a582abc","line":481,"updated":"2021-12-16 21:39:26.000000000","message":"as non_auto_ports are fetched from DB with context of the user who made request, it if fine to just return list of those ports here and not leak anything to the user. So I\u0027m ok with this.","commit_id":"7b61adbb4a0e3147e08e511cdf40a4073c00d099"}]}
