)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"aa55c73ab72d0afb5addd8ad21054663e1a7fe30","unresolved":true,"context_lines":[{"line_number":13,"context_line":"The ``glance image-update`` does not update the tag"},{"line_number":14,"context_line":"properties of an image."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1555662"},{"line_number":17,"context_line":"Change-Id: I96d8e116ed12fd44c6d32ea40bf2f7d8fcd3385d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"35cf7020_7391a1e0","line":16,"updated":"2022-09-29 15:25:48.000000000","message":"I think it also fixes https://bugs.launchpad.net/python-glanceclient/+bug/1587999 .","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"fd8801d684d8aa82c28c69d2e7c9489cc43e48d9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"The ``glance image-update`` does not update the tag"},{"line_number":14,"context_line":"properties of an image."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1555662"},{"line_number":17,"context_line":"Change-Id: I96d8e116ed12fd44c6d32ea40bf2f7d8fcd3385d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a1a357e5_a9a3af9b","line":16,"in_reply_to":"35cf7020_7391a1e0","updated":"2022-12-05 14:14:43.000000000","message":"Done","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"523ca0ede785a1ad7837eca7e8df5eeb8c61149c","unresolved":true,"context_lines":[{"line_number":10,"context_line":"PATCH request is send with replace property along with"},{"line_number":11,"context_line":"replace all tags, instead of sending only the replace"},{"line_number":12,"context_line":"property, for the images which have tags associated"},{"line_number":13,"context_line":"to it."},{"line_number":14,"context_line":"The ``glance image-update`` does not update the tag"},{"line_number":15,"context_line":"properties of an image."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"0c30009d_e07ef744","line":13,"updated":"2022-12-08 01:49:47.000000000","message":"This might just be me, but I find this sentence hard to follow. Can we break it into smaller sentences, and maybe *show* the requests, before and after applying this patch? This would be easier to understand, imho.","commit_id":"a9934628b9e9430a8964ebca09c008a6d7e871a9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"cd7228f175c81d5a5f446533ae82102009e955d2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"PATCH request is send with replace property along with"},{"line_number":11,"context_line":"replace all tags, instead of sending only the replace"},{"line_number":12,"context_line":"property, for the images which have tags associated"},{"line_number":13,"context_line":"to it."},{"line_number":14,"context_line":"The ``glance image-update`` does not update the tag"},{"line_number":15,"context_line":"properties of an image."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"a31e098e_5fb46e33","line":13,"in_reply_to":"0c30009d_e07ef744","updated":"2023-01-17 16:01:44.000000000","message":"Ack","commit_id":"a9934628b9e9430a8964ebca09c008a6d7e871a9"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"aa55c73ab72d0afb5addd8ad21054663e1a7fe30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e2260b1e_d20090cb","updated":"2022-09-29 15:25:48.000000000","message":"So we already had multiple patches for this issue:\n\n- https://review.opendev.org/c/openstack/python-glanceclient/+/324046\n- https://review.opendev.org/c/openstack/python-glanceclient/+/357624 (reverting the previous one)\n\nWe also had multiple patches abandoned over the years, including one that modifies the tests you deleted (https://review.opendev.org/c/openstack/python-glanceclient/+/302654/).\n\nWhy did we have special treatment for tags in the first place? What makes them so special?","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"be808dfedfd43a70adde6269078f229e5e16870f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c60e2dee_63a9cec0","updated":"2022-09-28 14:03:38.000000000","message":"So, which tests are making sure this behavior works as expected?","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"fd8801d684d8aa82c28c69d2e7c9489cc43e48d9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"abd306eb_27a2c907","in_reply_to":"67fb2b29_ae580b1c","updated":"2022-12-05 14:14:43.000000000","message":"These test were made for images which do not have tags associated to it. To test this bug we require images having tags associated to it.\nSo we have modified the tests with images without tags and with tags","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5dc91cd41d3df35ade165df164da21a9fc897641","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"67fb2b29_ae580b1c","in_reply_to":"c0e15732_fb3de8a6","updated":"2022-09-29 15:27:01.000000000","message":"\u003e All the other tests are verifying that the PATCH request is sent only with the replace property and it does not contain the replace all tags.\n\nWell if the tests are making sure this is the case, how are we witnessing this bug in the first place? I\u0027m a bit lost.","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"ff9c726faabca1b168c5f5153a1f02ba6efd41c5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c0e15732_fb3de8a6","in_reply_to":"c60e2dee_63a9cec0","updated":"2022-09-29 10:33:40.000000000","message":"All the other tests are verifying that the PATCH request is sent only with the replace property and it does not contain the replace all tags.\n\nBut we can have a test to check if no property is passed then it should not contain any parameters in the PATCH  (which currently it does by sending the replace all tags).","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"}],"glanceclient/v2/schemas.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"aa55c73ab72d0afb5addd8ad21054663e1a7fe30","unresolved":true,"context_lines":[{"line_number":37,"context_line":"        if not patch:"},{"line_number":38,"context_line":"            return json.dumps(tags_patch)"},{"line_number":39,"context_line":"        else:"},{"line_number":40,"context_line":"            return json.dumps(patch + tags_patch)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @warlock.Model.patch.getter"},{"line_number":43,"context_line":"    def patch(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"deb10fd7_2404715c","line":40,"range":{"start_line":40,"start_character":19,"end_line":40,"end_character":29},"updated":"2022-09-29 15:25:48.000000000","message":"So tags_patch is now always an empty list, so the if/else become:\n\n\nif not patch:\n    return json.dumps([])\nelse:\n    return json.dumps(patch)\n\nWhich is the same as:\n\nreturn json.dumps(patch)\n\n\nOr am I missing something?","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"fd8801d684d8aa82c28c69d2e7c9489cc43e48d9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        if not patch:"},{"line_number":38,"context_line":"            return json.dumps(tags_patch)"},{"line_number":39,"context_line":"        else:"},{"line_number":40,"context_line":"            return json.dumps(patch + tags_patch)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @warlock.Model.patch.getter"},{"line_number":43,"context_line":"    def patch(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f8af095_95c88b00","line":40,"range":{"start_line":40,"start_character":19,"end_line":40,"end_character":29},"in_reply_to":"deb10fd7_2404715c","updated":"2022-12-05 14:14:43.000000000","message":"Ack","commit_id":"70260d171c6b9ecdf65b9c2ae3e5b6eec43af8cf"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"523ca0ede785a1ad7837eca7e8df5eeb8c61149c","unresolved":true,"context_lines":[{"line_number":36,"context_line":"            return json.dumps([])"},{"line_number":37,"context_line":"        else:"},{"line_number":38,"context_line":"            return json.dumps(patch)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @warlock.Model.patch.getter"},{"line_number":41,"context_line":"    def patch(self):"},{"line_number":42,"context_line":"        \"\"\"Return a jsonpatch object representing the delta.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fe7eb9ac_6207a5bc","line":39,"updated":"2022-12-08 01:49:47.000000000","message":"So, I think if there is nothing to patch, json.loads() will return an empty list. Therefore, we could get rid of that if/else and just call \"json.dumps(patch)\".","commit_id":"a9934628b9e9430a8964ebca09c008a6d7e871a9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"cd7228f175c81d5a5f446533ae82102009e955d2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            return json.dumps([])"},{"line_number":37,"context_line":"        else:"},{"line_number":38,"context_line":"            return json.dumps(patch)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @warlock.Model.patch.getter"},{"line_number":41,"context_line":"    def patch(self):"},{"line_number":42,"context_line":"        \"\"\"Return a jsonpatch object representing the delta.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7030ec12_5407f44e","line":39,"in_reply_to":"fe7eb9ac_6207a5bc","updated":"2023-01-17 16:01:44.000000000","message":"Ack","commit_id":"a9934628b9e9430a8964ebca09c008a6d7e871a9"}]}
