)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4659258e8e73a9dbc19d16ee7803b804cc063ea1","unresolved":true,"context_lines":[{"line_number":11,"context_line":"2. Location Update"},{"line_number":12,"context_line":"3. Location Delete"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I8352cc54976dc231841dd8f7cc6ae8a20269a3d9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"159ef5c0_bf26245d","line":14,"updated":"2024-04-26 10:04:12.000000000","message":"Are we missing a `Depends-on`? I can\u0027t find any references to locations in the [glance api-ref](https://docs.openstack.org/api-ref/image/v2/index.html) currently.","commit_id":"1898c857d81a700e90517735046c91fa8ed7d909"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5dd52ad8583a9315ee5e4f6383e5cf81453bea13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"885e9617_c87c4020","updated":"2024-04-26 10:58:46.000000000","message":"Actually, what\u0027s the difference between this and https://review.opendev.org/c/openstack/openstacksdk/+/883271/? Can you abandon one or stack them so we can see the full story?","commit_id":"1898c857d81a700e90517735046c91fa8ed7d909"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"f0e2923aa3d6faa9f4a8f30e2bd8dbe3804b5040","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cf17d52c_73dfab3b","in_reply_to":"885e9617_c87c4020","updated":"2024-04-26 13:36:13.000000000","message":"Ohh yes, I missed this to abandon. This one is for existing location apis which will be removed from glance after new location apis[1] support is added to glance.\n\n[1]: https://review.opendev.org/q/topic:%22New-Location-Apis%22","commit_id":"1898c857d81a700e90517735046c91fa8ed7d909"}],"openstack/image/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4659258e8e73a9dbc19d16ee7803b804cc063ea1","unresolved":true,"context_lines":[{"line_number":929,"context_line":"            :class:`~openstack.image.v2.image.Image` instance."},{"line_number":930,"context_line":"        :param url: A valid location url"},{"line_number":931,"context_line":"        :param metdata: Metadata associated with the location."},{"line_number":932,"context_line":"        : validation_data: Values to be used to populate the corresponding"},{"line_number":933,"context_line":"            image properties."},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"        :returns: The updated image"}],"source_content_type":"text/x-python","patch_set":1,"id":"7da81ddb_3f615075","line":932,"range":{"start_line":932,"start_character":8,"end_line":932,"end_character":9},"updated":"2024-04-26 10:04:12.000000000","message":"```\n:param validation_data:\n```","commit_id":"1898c857d81a700e90517735046c91fa8ed7d909"}],"openstack/image/v2/image.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4659258e8e73a9dbc19d16ee7803b804cc063ea1","unresolved":true,"context_lines":[{"line_number":423,"context_line":"            \"No %s found for %s\" % (cls.__name__, name_or_id)"},{"line_number":424,"context_line":"        )"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    def location_add(self, session, url, *, meta\u003dNone, validation_data\u003dNone):"},{"line_number":427,"context_line":"        \"\"\"Add location to an existing Image.\"\"\""},{"line_number":428,"context_line":"        body \u003d {"},{"line_number":429,"context_line":"            \u0027op\u0027: \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d9401fe2_146a0b18","line":426,"updated":"2024-04-26 10:04:12.000000000","message":"I assume a location is not an independent resource? If not, we should name these like other add/remove/update methods, namely:\n\n- `add_location`\n- `remove_location`\n- `update_location`\n\nAs an aside, the baremetal API has decided *not* to explode these out and simply expose `patch_foo` methods (`patch_chassis`, `patch_node`, etc.). You could decided to do the same here.","commit_id":"1898c857d81a700e90517735046c91fa8ed7d909"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4659258e8e73a9dbc19d16ee7803b804cc063ea1","unresolved":true,"context_lines":[{"line_number":429,"context_line":"            \u0027op\u0027: \u0027add\u0027,"},{"line_number":430,"context_line":"            \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":431,"context_line":"            \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: meta},"},{"line_number":432,"context_line":"        }"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        if validation_data:"},{"line_number":435,"context_line":"            body \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"0d7e1331_52fa37fd","line":432,"updated":"2024-04-26 10:04:12.000000000","message":"This looks like an RFC 6902 JSON Patch document? If so, generating this feels like something that could go into a helper method in e.g. `openstack.common`? It can be very simple:\n\n```\ndef generate_patch(op, path, value):\n    ...\n```","commit_id":"1898c857d81a700e90517735046c91fa8ed7d909"}]}
