)]}'
{"glance/api/middleware/version_negotiation.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"6a175dd14b435c4299578bbc8aa34e1d59edf95c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        req.environ[\u0027api.version\u0027] \u003d version"},{"line_number":70,"context_line":"        req.path_info \u003d \u0027\u0027.join((\u0027/v\u0027, str(version), req.path_info))"},{"line_number":71,"context_line":"        LOG.debug(_(\"Matched version: v%d\"), version)"},{"line_number":72,"context_line":"        LOG.debug(\u0027new path %s\u0027 % req.path_info)"},{"line_number":73,"context_line":"        return None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _match_version_string(self, subject):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAS3%2F%2FIgU%3D","line":72,"updated":"2013-10-07 18:25:43.000000000","message":"I don\u0027t believe this is intended in this patch is it? Doesn\u0027t seem to address your original set of concerns.","commit_id":"c250edf485f776716ab3aa6fa9cfb994468cadad"}],"glance/db/sqlalchemy/migrate_repo/versions/015_quote_swift_credentials.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"f6c52d5eaef21eb8188a29872073f715c14d2fcb","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                   \"like so: \""},{"line_number":88,"context_line":"                   \"swift+http://user:pass@authurl.com/v1/container/obj\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        LOG.error(_(\"Invalid store uri: %(reason)s\") % locals())"},{"line_number":91,"context_line":"        raise exception.BadStoreUri(message\u003dreason)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    pieces \u003d urlparse.urlparse(uri)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FOCw%3D","line":90,"updated":"2013-10-02 02:33:59.000000000","message":"IMO remove \u0027locals()\u0027 and do replace directly.\n\nLOG.error(_(\"Invalid store uri: %s\") % reason)","commit_id":"2df46974d1f418b36d0dd053c51b4a74132bf5e7"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"a35007fdc29e958d93abb654afad4620c2aa9a74","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    images \u003d list(images_table.select(images_table.c.location.startswith("},{"line_number":53,"context_line":"                                      \u0027swift\u0027)).execute())"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    for image in images:"},{"line_number":56,"context_line":"        fixed_uri \u003d legacy_parse_uri(image[\u0027location\u0027], to_quoted)"},{"line_number":57,"context_line":"        images_table.update()\\"},{"line_number":58,"context_line":"                    .where(images_table.c.id \u003d\u003d image[\u0027id\u0027])\\"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2Fusk%3D","line":55,"updated":"2013-10-10 15:39:13.000000000","message":"Can we just easily pass image[\u0027id\u0027] in legacy_parse_uri() for logging at line #90?","commit_id":"c250edf485f776716ab3aa6fa9cfb994468cadad"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"bc41a50016931856eecd68ee0b79db1132a67bae","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    images \u003d list(images_table.select(images_table.c.location.startswith("},{"line_number":53,"context_line":"                                      \u0027swift\u0027)).execute())"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    for image in images:"},{"line_number":56,"context_line":"        fixed_uri \u003d legacy_parse_uri(image[\u0027location\u0027], to_quoted)"},{"line_number":57,"context_line":"        images_table.update()\\"},{"line_number":58,"context_line":"                    .where(images_table.c.id \u003d\u003d image[\u0027id\u0027])\\"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2Furg%3D","line":55,"in_reply_to":"AAAATH%2F%2Fusk%3D","updated":"2013-10-10 15:44:32.000000000","message":"Yes, good thinking -- thanks!","commit_id":"c250edf485f776716ab3aa6fa9cfb994468cadad"}],"glance/db/sqlalchemy/migrate_repo/versions/017_quote_encrypted_swift_credentials.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"f6c52d5eaef21eb8188a29872073f715c14d2fcb","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                   \"like so: \""},{"line_number":151,"context_line":"                   \"swift+http://user:pass@authurl.com/v1/container/obj\")"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        LOG.error(_(\"Invalid store uri: %(reason)s\") % locals())"},{"line_number":154,"context_line":"        raise exception.BadStoreUri(message\u003dreason)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    pieces \u003d urlparse.urlparse(uri)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FOC0%3D","line":153,"updated":"2013-10-02 02:33:59.000000000","message":"IMO remove \u0027locals()\u0027 and do replace directly.\n\nLOG.error(_(\"Invalid store uri: %s\") % reason)","commit_id":"2df46974d1f418b36d0dd053c51b4a74132bf5e7"}],"glance/store/__init__.py":[{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"db572b7e72754a5089d970fc323a4f2fa9646226","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return delete_from_backend(context, uri, **kwargs)"},{"line_number":274,"context_line":"    except exception.NotFound:"},{"line_number":275,"context_line":"        msg \u003d _(\u0027Failed to delete image in store from URI\u0027)"},{"line_number":276,"context_line":"        LOG.warn(msg)"},{"line_number":277,"context_line":"    except exception.StoreDeleteNotSupported as e:"},{"line_number":278,"context_line":"        LOG.warn(str(e))"},{"line_number":279,"context_line":"    except UnsupportedBackend:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FQRI%3D","line":276,"updated":"2013-10-01 13:48:59.000000000","message":"Can we include the image_id in the log message here. It might be useful to track down which delete image failed.","commit_id":"a63ac17b782377e28e2ed5a5244d5324f227e2aa"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"170ca4752c32925b514ebb3904364e41d2994d7f","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return delete_from_backend(context, uri, **kwargs)"},{"line_number":274,"context_line":"    except exception.NotFound:"},{"line_number":275,"context_line":"        msg \u003d _(\u0027Failed to delete image in store from URI\u0027)"},{"line_number":276,"context_line":"        LOG.warn(msg)"},{"line_number":277,"context_line":"    except exception.StoreDeleteNotSupported as e:"},{"line_number":278,"context_line":"        LOG.warn(str(e))"},{"line_number":279,"context_line":"    except UnsupportedBackend:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FQPw%3D","line":276,"in_reply_to":"AAAAS3%2F%2FQRI%3D","updated":"2013-10-01 13:54:11.000000000","message":"Yes, makes sense -- thanks.","commit_id":"a63ac17b782377e28e2ed5a5244d5324f227e2aa"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"db572b7e72754a5089d970fc323a4f2fa9646226","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FQRA%3D","line":282,"updated":"2013-10-01 13:48:59.000000000","message":"same here. image_id can be included as part of the msg.","commit_id":"a63ac17b782377e28e2ed5a5244d5324f227e2aa"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"f6c52d5eaef21eb8188a29872073f715c14d2fcb","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image %s from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (image_id, exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FODE%3D","line":282,"updated":"2013-10-02 02:33:59.000000000","message":"Please use dict here since we have more then one variable need to replace.","commit_id":"2df46974d1f418b36d0dd053c51b4a74132bf5e7"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"7f354350e9ed098b04df190732cc5c4c93ecae54","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image %s from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (image_id, exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FMAk%3D","line":282,"in_reply_to":"AAAAS3%2F%2FNXY%3D","updated":"2013-10-02 17:34:30.000000000","message":"Hey, yes it\u0027s workable I agree. But I still think a dict will be better then list multiple variables here, it\u0027s terse and clear to us IMO, and its format string is clear also since the suited variable name in it but a type (\u0027%s\u0027) only. Thanks.\n\nActually I consider other folks like this style also since they given me the same comments to my previous change.","commit_id":"2df46974d1f418b36d0dd053c51b4a74132bf5e7"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"8c70cc2196a20c73ad48835f2aed213d5cddb83a","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image %s from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (image_id, exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FNXY%3D","line":282,"in_reply_to":"AAAAS3%2F%2FODE%3D","updated":"2013-10-02 09:52:26.000000000","message":"Hi, I think what\u0027s there will work ok. Is there a  reason for preferring a dict here? Thanks.","commit_id":"2df46974d1f418b36d0dd053c51b4a74132bf5e7"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"54d67f91b1828770f921d880351a6ba9d7697a38","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAS3%2F%2FJjs%3D","line":282,"updated":"2013-10-03 14:04:57.000000000","message":"do you think it will be better:\n\n1. if we put \u0027image_id\u0027 in log msg?\n\n2. write this line to \u0027exc_type)\u0027 ?","commit_id":"5daf1f44991f38df5ef5e402521c9e4882cb8dcb"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"89b7cdddd4580bbaf1ca5a4c90333100b99a0381","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAS3%2F%2FJeQ%3D","line":282,"in_reply_to":"AAAAS3%2F%2FJjs%3D","updated":"2013-10-03 14:36:04.000000000","message":"Printing the id makes sense -- thanks.","commit_id":"5daf1f44991f38df5ef5e402521c9e4882cb8dcb"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"d17bea33224cc74b69ef07822157c668babdcd9c","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        LOG.warn(str(e))"},{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image %s from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (image_id, exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAS3%2F%2FEGg%3D","line":281,"updated":"2013-10-05 05:07:49.000000000","message":"(nit): It would be nice if you can update the error message since the sentence is not smooth. I\u0027m not native speaker, but how about \u0027Failed to delete image %s from store because of (%s)\u0027.","commit_id":"c250edf485f776716ab3aa6fa9cfb994468cadad"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"4dfbcc42fce77150e1881aee5eca41c6c5a5f1e3","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        LOG.warn(str(e))"},{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image %s from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (image_id, exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2F%2F6g%3D","line":281,"in_reply_to":"AAAAS3%2F%2FEGg%3D","updated":"2013-10-05 17:19:15.000000000","message":"I\u0027ve kept very close to the original wording. Remember, the purpose of this patch is to increase security rather than rephrase error messages.","commit_id":"c250edf485f776716ab3aa6fa9cfb994468cadad"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"d5f14e1f112e90f291a8cedf1d9228a4cbe092f0","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        LOG.warn(str(e))"},{"line_number":279,"context_line":"    except UnsupportedBackend:"},{"line_number":280,"context_line":"        exc_type \u003d sys.exc_info()[0].__name__"},{"line_number":281,"context_line":"        msg \u003d (_(\u0027Failed to delete image %s from store (%s)\u0027) %"},{"line_number":282,"context_line":"               (image_id, exc_type))"},{"line_number":283,"context_line":"        LOG.error(msg)"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2F%2FnY%3D","line":281,"in_reply_to":"AAAATH%2F%2F%2F6g%3D","updated":"2013-10-06 05:00:58.000000000","message":"Okay, fair enough.","commit_id":"c250edf485f776716ab3aa6fa9cfb994468cadad"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"8eb2166e456a06c48995be58b23acfd99d3636ae","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    try:"},{"line_number":273,"context_line":"        return delete_from_backend(context, uri, **kwargs)"},{"line_number":274,"context_line":"    except exception.NotFound:"},{"line_number":275,"context_line":"        msg \u003d _(\u0027Failed to delete image %s in store from URI\u0027 % image_id)"},{"line_number":276,"context_line":"        LOG.warn(msg)"},{"line_number":277,"context_line":"    except exception.StoreDeleteNotSupported as e:"},{"line_number":278,"context_line":"        LOG.warn(str(e))"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FtgE%3D","line":275,"updated":"2013-10-10 21:16:04.000000000","message":"the variable should be outside of the _():\n\nmsg \u003d _(\u0027Failed to delete image %s in store from URI\u0027) % image_id","commit_id":"ebd10d09765e7fbce4c4ae009bb82531f99dee15"}]}
