)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"1dde242211a5c13a4399c78fb013f1919c1cbff9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Current status:"},{"line_number":12,"context_line":"* API will accept \u0027community\u0027 as a visiblity value"},{"line_number":13,"context_line":"* \u0027all\u0027 can get image details and download \u0027community\u0027 images"},{"line_number":14,"context_line":"* (after patchset 26 on parent change 326128) image_get_all with a"},{"line_number":15,"context_line":"        filter for visibility\u003d\u003d\u0027community\u0027 works as expected."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Partially Implements bp community-level-v2-image-sharing"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1ac06dbe_450b2fd6","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":61},"updated":"2016-08-23 22:03:10.000000000","message":"Wrong. Currently DOES NOT WORK for non-owner.","commit_id":"af1ac2a1ab129adb4b027a865ebc148d518fbfe9"}],"glance/api/authorization.py":[{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"1bb0eddf1cadfc80a66299d1bcd25d7cdf833947","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        self._check_image_visibility()"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def _check_image_visibility(self):"},{"line_number":130,"context_line":"        if self.image.visibility !\u003d \u0027shared\u0027:"},{"line_number":131,"context_line":"            message \u003d _(\"Only shared images have members.\")"},{"line_number":132,"context_line":"            raise exception.Forbidden(message)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a89bdaa_265860fa","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":45},"updated":"2016-09-09 22:42:22.000000000","message":"I am probably missing something here, but how come this check isn\u0027t \u0027shared\u0027 or \u0027community\u0027?","commit_id":"9aca7e4f7b0b02d4df77fcb5af848ccc32cafc64"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"adf42fdc953f8f6d3031da3cc4a0c4313b415738","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        self._check_image_visibility()"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def _check_image_visibility(self):"},{"line_number":130,"context_line":"        if self.image.visibility !\u003d \u0027shared\u0027:"},{"line_number":131,"context_line":"            message \u003d _(\"Only shared images have members.\")"},{"line_number":132,"context_line":"            raise exception.Forbidden(message)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a89bdaa_a6fc703f","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":45},"in_reply_to":"9a89bdaa_265860fa","updated":"2016-09-09 22:54:05.000000000","message":"The check used to only stop \u0027public\u0027 images because they were the only visibility WITHOUT members (and private was the only visibility with, because shared was private). With the rewrite, \u0027shared\u0027 is the only visibility WITH members. It is not \u0027or community\u0027 because community images, according to the merged spec, do not utilize image_members.","commit_id":"9aca7e4f7b0b02d4df77fcb5af848ccc32cafc64"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"1bb0eddf1cadfc80a66299d1bcd25d7cdf833947","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                            \"for the image.\")"},{"line_number":221,"context_line":"                raise exception.Forbidden(message)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if image.visibility !\u003d \u0027shared\u0027:"},{"line_number":224,"context_line":"            message \u003d _(\"Only shared images have members.\")"},{"line_number":225,"context_line":"            raise exception.Forbidden(message)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a89bdaa_86468c1f","line":223,"range":{"start_line":223,"start_character":8,"end_line":223,"end_character":40},"updated":"2016-09-09 22:42:22.000000000","message":"ditto line 130","commit_id":"9aca7e4f7b0b02d4df77fcb5af848ccc32cafc64"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"adf42fdc953f8f6d3031da3cc4a0c4313b415738","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                            \"for the image.\")"},{"line_number":221,"context_line":"                raise exception.Forbidden(message)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if image.visibility !\u003d \u0027shared\u0027:"},{"line_number":224,"context_line":"            message \u003d _(\"Only shared images have members.\")"},{"line_number":225,"context_line":"            raise exception.Forbidden(message)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a89bdaa_0698bc1a","line":223,"range":{"start_line":223,"start_character":8,"end_line":223,"end_character":40},"in_reply_to":"9a89bdaa_86468c1f","updated":"2016-09-09 22:54:05.000000000","message":"also ditto.","commit_id":"9aca7e4f7b0b02d4df77fcb5af848ccc32cafc64"}]}
