)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"2d78e921fae590988e7883872a9dc4271fde289b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Allow user ID for authentication"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In Keystone V3 user names are no longer necessarily unique"},{"line_number":10,"context_line":"accross domains."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"A user can still authenticate a user in the non default"},{"line_number":13,"context_line":"domain via the V2 API providng they use IDs instead of names."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2BIuI%3D","line":10,"updated":"2014-03-28 21:44:23.000000000","message":"nit: across","commit_id":"82fef8411dafc1cc45410b103a15776604d2a2d3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ce17de641450eb6d851043442f93af53a9dbe96f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Tenant_ID is already supported, this change adds support"},{"line_number":16,"context_line":"for user ID"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I22fdd9a6749f7dfbdd2dc8313fddc81e5ea0b753"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2BIrk%3D","line":17,"updated":"2014-03-28 21:45:53.000000000","message":"I noticed right after I hit submit on my other nits.  We typically require bug or blueprint for every change.","commit_id":"82fef8411dafc1cc45410b103a15776604d2a2d3"}],"neutronclient/client.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a7e27214fdead74fa0ca39c239b952b4bf2073b6","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    USER_AGENT \u003d \u0027python-neutronclient\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, username\u003dNone, user_id\u003dNone,"},{"line_number":97,"context_line":"                 tenant_name\u003dNone, tenant_id\u003dNone,"},{"line_number":98,"context_line":"                 password\u003dNone, auth_url\u003dNone,"},{"line_number":99,"context_line":"                 token\u003dNone, region_name\u003dNone, timeout\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2B6GE%3D","line":96,"updated":"2014-03-21 19:31:38.000000000","message":"Please add user_id at the end of the parameter list. It breaks backward compatibility when a user uses positional parameters.","commit_id":"03485d7915e38d61dfc358356719bfac195ff2a9"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"1acf767fb5bb84e91b3fa089c7e3417623f8064e","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    USER_AGENT \u003d \u0027python-neutronclient\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, username\u003dNone, user_id\u003dNone,"},{"line_number":97,"context_line":"                 tenant_name\u003dNone, tenant_id\u003dNone,"},{"line_number":98,"context_line":"                 password\u003dNone, auth_url\u003dNone,"},{"line_number":99,"context_line":"                 token\u003dNone, region_name\u003dNone, timeout\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BVYA%3D","line":96,"in_reply_to":"AAAAWH%2F%2B5Zc%3D","updated":"2014-03-27 15:06:26.000000000","message":"I agree. I don\u0027t expect this to be an externally consumed class.","commit_id":"03485d7915e38d61dfc358356719bfac195ff2a9"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"5876ad00155aab370b5b30583cefbcc05cf7a3b3","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    USER_AGENT \u003d \u0027python-neutronclient\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, username\u003dNone, user_id\u003dNone,"},{"line_number":97,"context_line":"                 tenant_name\u003dNone, tenant_id\u003dNone,"},{"line_number":98,"context_line":"                 password\u003dNone, auth_url\u003dNone,"},{"line_number":99,"context_line":"                 token\u003dNone, region_name\u003dNone, timeout\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2B5Zc%3D","line":96,"in_reply_to":"AAAAWH%2F%2B6GE%3D","updated":"2014-03-21 21:27:47.000000000","message":"But there is no existing code in the client which calls this using only positional parameters ?  (and this in effect an internal class to the client).\n\nI think in this case having id after name (as was done for tenant) is cleaer","commit_id":"03485d7915e38d61dfc358356719bfac195ff2a9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ee92085f92c8bdad14747c98bf4ebdab9610888d","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    USER_AGENT \u003d \u0027python-neutronclient\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, username\u003dNone, user_id\u003dNone,"},{"line_number":97,"context_line":"                 tenant_name\u003dNone, tenant_id\u003dNone,"},{"line_number":98,"context_line":"                 password\u003dNone, auth_url\u003dNone,"},{"line_number":99,"context_line":"                 token\u003dNone, region_name\u003dNone, timeout\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BUn0%3D","line":96,"in_reply_to":"AAAAWH%2F%2BVYA%3D","updated":"2014-03-27 16:25:15.000000000","message":"Thanks. I understood. HTTPClient is called from v2_0.client.Client, but v2_0.client.Client only accept kwargs.","commit_id":"03485d7915e38d61dfc358356719bfac195ff2a9"}],"neutronclient/common/clientmanager.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a7e27214fdead74fa0ca39c239b952b4bf2073b6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                 auth_url\u003dNone,"},{"line_number":54,"context_line":"                 endpoint_type\u003dNone,"},{"line_number":55,"context_line":"                 tenant_name\u003dNone, tenant_id\u003dNone,"},{"line_number":56,"context_line":"                 username\u003dNone, user_id\u003dNone,"},{"line_number":57,"context_line":"                 password\u003dNone,"},{"line_number":58,"context_line":"                 region_name\u003dNone,"},{"line_number":59,"context_line":"                 api_version\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2B6Fo%3D","line":56,"updated":"2014-03-21 19:31:38.000000000","message":"Same as my comment in neutronclient/client.py","commit_id":"03485d7915e38d61dfc358356719bfac195ff2a9"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"2d78e921fae590988e7883872a9dc4271fde289b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                 auth_url\u003dNone,"},{"line_number":54,"context_line":"                 endpoint_type\u003dNone,"},{"line_number":55,"context_line":"                 tenant_name\u003dNone, tenant_id\u003dNone,"},{"line_number":56,"context_line":"                 username\u003dNone, user_id\u003dNone,"},{"line_number":57,"context_line":"                 password\u003dNone,"},{"line_number":58,"context_line":"                 region_name\u003dNone,"},{"line_number":59,"context_line":"                 api_version\u003dNone,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BItI%3D","line":56,"updated":"2014-03-28 21:44:23.000000000","message":"nit: with an argument list this long, I\u0027d prefer to see a newline here.","commit_id":"82fef8411dafc1cc45410b103a15776604d2a2d3"}],"neutronclient/shell.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"bcd07de1798e89bb9409903916ee4de3a54e88c2","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        parser.add_argument("},{"line_number":401,"context_line":"            \u0027--os-user-id\u0027, metavar\u003d\u0027\u003cauth-user-id\u003e\u0027,"},{"line_number":402,"context_line":"            default\u003denv(\u0027OS_USER_ID\u0027),"},{"line_number":403,"context_line":"            help\u003d_(\u0027Authentication user name (Env: OS_USER_ID)\u0027))"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        parser.add_argument("},{"line_number":406,"context_line":"            \u0027--os-password\u0027, metavar\u003d\u0027\u003cauth-password\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2FZug%3D","line":403,"updated":"2014-03-18 04:50:59.000000000","message":"s/user name/user id?","commit_id":"0ec6a4c2ed4927a63ffe7b5316d67ae5e4018537"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e82fc36565a59dc5d31940d3021283bdcc2b0fef","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                if (not self.options.os_username"},{"line_number":593,"context_line":"                    and not self.options.os_user_id):"},{"line_number":594,"context_line":"                    raise exc.CommandError("},{"line_number":595,"context_line":"                        _(\"You must provide a username or user id via\""},{"line_number":596,"context_line":"                          \"  --os-username, env[OS_USERNAME]\""},{"line_number":597,"context_line":"                          \"  --os-user_id, env[OS_USER_ID]\"))"},{"line_number":598,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BT88%3D","line":595,"updated":"2014-03-27 17:31:49.000000000","message":"nit: s/id/ID to match above help string","commit_id":"82fef8411dafc1cc45410b103a15776604d2a2d3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e82fc36565a59dc5d31940d3021283bdcc2b0fef","unresolved":false,"context_lines":[{"line_number":593,"context_line":"                    and not self.options.os_user_id):"},{"line_number":594,"context_line":"                    raise exc.CommandError("},{"line_number":595,"context_line":"                        _(\"You must provide a username or user id via\""},{"line_number":596,"context_line":"                          \"  --os-username, env[OS_USERNAME]\""},{"line_number":597,"context_line":"                          \"  --os-user_id, env[OS_USER_ID]\"))"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"                if not self.options.os_password:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BT84%3D","line":596,"updated":"2014-03-27 17:31:49.000000000","message":"nit: add an \"or\" the end of this line","commit_id":"82fef8411dafc1cc45410b103a15776604d2a2d3"}],"neutronclient/tests/unit/test_auth.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"487ed11f80fe0c05220eb96a2ab4518fced5cc1d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.client.request("},{"line_number":113,"context_line":"            AUTH_URL + \u0027/tokens\u0027, \u0027POST\u0027,"},{"line_number":114,"context_line":"            body\u003dself.auth_body, headers\u003dmox.IsA(dict)"},{"line_number":115,"context_line":"            #body\u003dmox.IsA(str), headers\u003dmox.IsA(dict)"},{"line_number":116,"context_line":"        ).AndReturn((res200, json.dumps(KS_TOKEN_RESULT)))"},{"line_number":117,"context_line":"        self.client.request("},{"line_number":118,"context_line":"            mox.StrContains(ENDPOINT_URL + \u0027/resource\u0027), \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2FAmI%3D","line":115,"updated":"2014-03-20 23:36:51.000000000","message":"Whoops. I\u0027ll delete this for you.","commit_id":"4a0d79a2f01062af08b00c6ad66ede470a51e714"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b94a271f7459b2f4d7eec9fbec742bfbb1dd4e2","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.client.request("},{"line_number":113,"context_line":"            AUTH_URL + \u0027/tokens\u0027, \u0027POST\u0027,"},{"line_number":114,"context_line":"            body\u003dself.auth_body, headers\u003dmox.IsA(dict)"},{"line_number":115,"context_line":"            #body\u003dmox.IsA(str), headers\u003dmox.IsA(dict)"},{"line_number":116,"context_line":"        ).AndReturn((res200, json.dumps(KS_TOKEN_RESULT)))"},{"line_number":117,"context_line":"        self.client.request("},{"line_number":118,"context_line":"            mox.StrContains(ENDPOINT_URL + \u0027/resource\u0027), \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2BA90%3D","line":115,"updated":"2014-03-31 14:41:50.000000000","message":"This commented-out line can be removed.  Sorry Phil, should have noticed that the last nit pick review.","commit_id":"1da3fee6bf1176659d2c55d0198a88ef160ee381"}]}
