)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"85cb14dc91eef5e899091e4732c2f2def091f135","unresolved":false,"context_lines":[{"line_number":13,"context_line":"called backup_keystone_url to differentiate the two."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Unit tests are also provided for testing backup_keystone_url."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Iee466fe1404eef9402a19d529dba19c7d5a4ef2b"},{"line_number":18,"context_line":"Closes-Bug: #1449972"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a1a9d01_f6405e36","line":16,"updated":"2015-09-28 23:31:34.000000000","message":"Need DocImpact here.","commit_id":"351ae2295c05b0800ac80da1176eef4fe19207c0"}],"cinder/backup/drivers/swift.py":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7a0a784108836346fc9611895fb648b65f222159","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            raise exception.BackupDriverException(_("},{"line_number":159,"context_line":"                \"Could not determine which Swift endpoint to use. This can \""},{"line_number":160,"context_line":"                \"either be set in the service catalog or with the \""},{"line_number":161,"context_line":"                \"cinder.conf config option \u0027backup_swift_url\u0027.\"))"},{"line_number":162,"context_line":"        if CONF.backup_keystone_url is None:"},{"line_number":163,"context_line":"            self.keystone_url \u003d None"},{"line_number":164,"context_line":"            info \u003d CONF.keystone_catalog_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_f0e62614","line":161,"updated":"2015-09-28 22:34:28.000000000","message":"I think you changed two already existing line by removing space. Since it was not added by you I will advise to revise it.","commit_id":"351ae2295c05b0800ac80da1176eef4fe19207c0"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"c2847542ed538884b2237505cbcb46a3ba3e0cd9","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            raise exception.BackupDriverException(_("},{"line_number":159,"context_line":"                \"Could not determine which Swift endpoint to use. This can \""},{"line_number":160,"context_line":"                \"either be set in the service catalog or with the \""},{"line_number":161,"context_line":"                \"cinder.conf config option \u0027backup_swift_url\u0027.\"))"},{"line_number":162,"context_line":"        if CONF.backup_keystone_url is None:"},{"line_number":163,"context_line":"            self.keystone_url \u003d None"},{"line_number":164,"context_line":"            info \u003d CONF.keystone_catalog_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_309c9e5c","line":161,"in_reply_to":"9a1a9d01_f0e62614","updated":"2015-09-28 22:38:13.000000000","message":"sorry it make sense to add that space.","commit_id":"351ae2295c05b0800ac80da1176eef4fe19207c0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"12e16161217200898394821ce4ad9eda06695e9c","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            for entry in context.service_catalog:"},{"line_number":173,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":174,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":175,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":178,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_23a5b5b4","line":175,"updated":"2015-10-01 14:46:30.000000000","message":"Break once it\u0027s been found?","commit_id":"baf97e77b5bdb74a17dea238e75740a06f751967"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"f4994ce52f967518ba8f7058d05f989d97251414","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            for entry in context.service_catalog:"},{"line_number":173,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":174,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":175,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":178,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_634acdae","line":175,"in_reply_to":"9a1a9d01_23a5b5b4","updated":"2015-10-01 14:50:45.000000000","message":"Sure, I can add that in. While I\u0027m at it that could probably be added to the similar loop on lines 150-153 searching for the swift endpoint.","commit_id":"baf97e77b5bdb74a17dea238e75740a06f751967"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a5cabf36d3340c9fd4146dc477a5ef3edeba7237","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":175,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":176,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":180,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_192a5e7f","line":177,"updated":"2015-10-01 15:08:25.000000000","message":"I was going to ask about this issue myself.\n\nApart from the optimization gained by the \u0027break\u0027, is there a potential correctness issue here?  Can there be different results depending on whether the \u0027break\u0027 is present or not, or which order the entries are in?","commit_id":"7de20ac3cb633338f2b29b2c199d4fe1e149ba6a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"aebbf81635c8bc6b42a714386bbde2fb7c9d1dad","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":175,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":176,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":180,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_b478192d","line":177,"in_reply_to":"9a1a9d01_149a25c6","updated":"2015-10-01 15:33:20.000000000","message":"Great, thanks.","commit_id":"7de20ac3cb633338f2b29b2c199d4fe1e149ba6a"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"80cfcd8c68995550aa8d02287074cbbb821e1a6d","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":175,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":176,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":180,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_19649e47","line":177,"in_reply_to":"9a1a9d01_192a5e7f","updated":"2015-10-01 15:19:31.000000000","message":"I don\u0027t think there would be different results if all of the services in the catalog have a unique service type, and if they don\u0027t then there would be some other inherent issues with that. Are there any situations where multiple services with different endpoints might have the same service type?","commit_id":"7de20ac3cb633338f2b29b2c199d4fe1e149ba6a"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"64e8ca969a502d047f49ffdb8cd7ca75fdfb48ec","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":175,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":176,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":180,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_149a25c6","line":177,"in_reply_to":"9a1a9d01_19357ef6","updated":"2015-10-01 15:26:33.000000000","message":"Sure, something like \u0027it is assumed that service_types are unique in the service catalog, so once the correct one is found it is safe to break out of the loop\u0027?","commit_id":"7de20ac3cb633338f2b29b2c199d4fe1e149ba6a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c98cf998175d4fe40e70fd6bf244f6deb13cd447","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                if entry.get(\u0027type\u0027) \u003d\u003d service_type:"},{"line_number":175,"context_line":"                    self.auth_url \u003d entry.get("},{"line_number":176,"context_line":"                        \u0027endpoints\u0027)[0].get(endpoint_type)"},{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"        else:"},{"line_number":179,"context_line":"            self.auth_url \u003d \u0027%s%s\u0027 % (CONF.backup_swift_auth_url,"},{"line_number":180,"context_line":"                                      context.project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_19357ef6","line":177,"in_reply_to":"9a1a9d01_19649e47","updated":"2015-10-01 15:23:50.000000000","message":"Would you consider adding a comment explicitly stating this assumption here and in the other loop?","commit_id":"7de20ac3cb633338f2b29b2c199d4fe1e149ba6a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"22e8c0717eca616fa4c5cdda54387ca660bfe0bf","unresolved":false,"context_lines":[{"line_number":68,"context_line":"               \u0027catalog. Format is: separated values of the form: \u0027"},{"line_number":69,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"},{"line_number":70,"context_line":"               \u0027Only used if backup_swift_url is unset\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027keystone_catalog_info\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027identity:keystone:publicURL\u0027,"},{"line_number":73,"context_line":"               help\u003d\u0027Info to match when looking for keystone in the service \u0027"},{"line_number":74,"context_line":"               \u0027catalog. Format is: separated values of the form: \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a2fa921_626b741f","line":71,"updated":"2015-10-06 15:22:15.000000000","message":"Nit: I suspect we\u0027ll want to move this to a more general location at some point, but this is probably ok for now.","commit_id":"767c71961e9596fdae01b9d1973192bcaaca5a69"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"22e8c0717eca616fa4c5cdda54387ca660bfe0bf","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"},{"line_number":70,"context_line":"               \u0027Only used if backup_swift_url is unset\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027keystone_catalog_info\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027identity:keystone:publicURL\u0027,"},{"line_number":73,"context_line":"               help\u003d\u0027Info to match when looking for keystone in the service \u0027"},{"line_number":74,"context_line":"               \u0027catalog. Format is: separated values of the form: \u0027"},{"line_number":75,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a2fa921_82449074","line":72,"updated":"2015-10-06 15:22:15.000000000","message":"I don\u0027t think this is the correct default value, see\n\nhttps://review.openstack.org/#/c/141727/\n\nWe probably want\n\u0027identity:Identity Service:publicURL\u0027 .","commit_id":"767c71961e9596fdae01b9d1973192bcaaca5a69"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"0e9fb9996a0a649b5dc0537cb31473c887fc043d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"},{"line_number":70,"context_line":"               \u0027Only used if backup_swift_url is unset\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027keystone_catalog_info\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027identity:keystone:publicURL\u0027,"},{"line_number":73,"context_line":"               help\u003d\u0027Info to match when looking for keystone in the service \u0027"},{"line_number":74,"context_line":"               \u0027catalog. Format is: separated values of the form: \u0027"},{"line_number":75,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a2fa921_7d823902","line":72,"in_reply_to":"7a2fa921_82449074","updated":"2015-10-06 15:31:29.000000000","message":"Okay, sounds good - I was going based off of the installation documentation here http://docs.openstack.org/kilo/install-guide/install/apt/content/keystone-services.html. When configuring Keystone the example command is \u0027openstack service create --name keystone --description \"OpenStack Identity\" identity\u0027.","commit_id":"767c71961e9596fdae01b9d1973192bcaaca5a69"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"2eedd6751b358497cf74fb65afee4fc3b9c10966","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"},{"line_number":70,"context_line":"               \u0027Only used if backup_swift_url is unset\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027keystone_catalog_info\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027identity:keystone:publicURL\u0027,"},{"line_number":73,"context_line":"               help\u003d\u0027Info to match when looking for keystone in the service \u0027"},{"line_number":74,"context_line":"               \u0027catalog. Format is: separated values of the form: \u0027"},{"line_number":75,"context_line":"               \u0027\u003cservice_type\u003e:\u003cservice_name\u003e:\u003cendpoint_type\u003e - \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a2fa921_12a8cf1e","line":72,"in_reply_to":"7a2fa921_82449074","updated":"2015-10-06 16:15:08.000000000","message":"Should \u0027object-store:swift:publicURL\u0027 be changed to something else as well or is that correct for the swift catalog entry?","commit_id":"767c71961e9596fdae01b9d1973192bcaaca5a69"}]}
