)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"7ee62e191347c1caf6493af9be9daf2ed1d90695","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Replace \u0027#\u0027 with url code \u0027%23\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"\u0027#\u0027 in the request url with member id can\u0027t be analyzed"},{"line_number":10,"context_line":"directly, we should encode it first."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-bug: #1574991"},{"line_number":13,"context_line":"Change-Id: I82dba8f8a7afd397b542583667eef8be2e87c7a6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a6eadb0_5a7dfee5","line":10,"updated":"2016-12-14 16:33:52.000000000","message":"It\u0027s unclear to me how this fixes the associated bug or in what set-up someone would actually have a # in their member-id.","commit_id":"d4e35e3902aeefe416a38332903a40db1f085ab4"}],"glanceclient/v2/image_members.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"7ee62e191347c1caf6493af9be9daf2ed1d90695","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            yield self.model(member)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def delete(self, image_id, member_id):"},{"line_number":42,"context_line":"        member_id \u003d member_id.replace(\u0027#\u0027, \u0027%23\u0027)"},{"line_number":43,"context_line":"        self.http_client.delete(\u0027/v2/images/%s/members/%s\u0027 %"},{"line_number":44,"context_line":"                                (image_id, member_id))"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_7a847ad3","line":42,"updated":"2016-12-14 16:33:52.000000000","message":"Why would we not use the standard urlencode calls here?","commit_id":"d4e35e3902aeefe416a38332903a40db1f085ab4"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"dba1b18bae53d51c346123f58c64ddaed3aa5b3a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                (image_id, member_id))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def update(self, image_id, member_id, member_status):"},{"line_number":47,"context_line":"        member_id \u003d member_id.replace(\u0027#\u0027, \u0027%23\u0027)"},{"line_number":48,"context_line":"        url \u003d \u0027/v2/images/%s/members/%s\u0027 % (image_id, member_id)"},{"line_number":49,"context_line":"        body \u003d {\u0027status\u0027: member_status}"},{"line_number":50,"context_line":"        resp, updated_member \u003d self.http_client.put(url, data\u003dbody)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_11fdbb6d","line":47,"updated":"2016-12-16 17:47:45.000000000","message":"Kairat, member-ids are project IDs which are *not* always UUIDs. Keystone can be configured to provide integers instead.","commit_id":"d4e35e3902aeefe416a38332903a40db1f085ab4"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"e7ff0d104a3fdef037f533f6dbc573611fd007ef","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                (image_id, member_id))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def update(self, image_id, member_id, member_status):"},{"line_number":47,"context_line":"        member_id \u003d member_id.replace(\u0027#\u0027, \u0027%23\u0027)"},{"line_number":48,"context_line":"        url \u003d \u0027/v2/images/%s/members/%s\u0027 % (image_id, member_id)"},{"line_number":49,"context_line":"        body \u003d {\u0027status\u0027: member_status}"},{"line_number":50,"context_line":"        resp, updated_member \u003d self.http_client.put(url, data\u003dbody)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_31bc8eba","line":47,"updated":"2016-12-16 09:47:07.000000000","message":"Unfortunately, there is no simple way to validate this on client side IMO.\nYou can try to validate this value against UUID exception but we need to ensure that keystone member IDs are always UUIDS. Additionally, this will lead to problems once keystone decide to introduce another member_id format.\nIMO, you need just encode this value and let the server decide if member_id is correct or not.","commit_id":"d4e35e3902aeefe416a38332903a40db1f085ab4"}]}
