)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"a0d193a30806d834f117459c2c15c859fe84783d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sushil Kumar \u003csushil.kumar3@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-03 08:31:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes the non-existent exception NoTokenLookupException"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Found that troveclient.client raises a non-existent exception,"},{"line_number":10,"context_line":"resolved the same."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3afb71cf_4410ee4e","line":7,"updated":"2015-06-04 18:39:44.000000000","message":"non-existent is nonexistent ;)","commit_id":"ad68fb2897f7fa376bfbcf04b2698a46f2186ac3"}],"troveclient/client.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"d5492c422a54048d426a5e083568e9c5be542ff0","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from keystoneclient import adapter"},{"line_number":28,"context_line":"from oslo_utils import importutils"},{"line_number":29,"context_line":"from troveclient import exceptions"},{"line_number":30,"context_line":"from troveclient.openstack.common.apiclient import client"},{"line_number":31,"context_line":"from troveclient import service_catalog"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5afe65bd_db690ec0","line":29,"updated":"2015-06-03 08:00:06.000000000","message":"Can you please break this bugfix out into its own commit and not club it together with the unit test additions (this one)? Thanks!","commit_id":"1afc2b56ee88cc7204abd29a1ea82e62907b0b44"}],"troveclient/tests/test_client.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"577ba89fbc9883eb99bea1a0a4bf3cfac9a54073","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            projectid\u003d\u0027project\u0027, timeout\u003d2, auth_url\u003d\"http://www.blah.com\","},{"line_number":51,"context_line":"            auth_system\u003d\u0027something\u0027)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_client_with_auth_system_with_auth_plugin(self):"},{"line_number":54,"context_line":"        auth_plugin \u003d mock.Mock()"},{"line_number":55,"context_line":"        auth_plugin.get_auth_url \u003d mock.Mock(return_value\u003dNone)"},{"line_number":56,"context_line":"        self.assertRaises("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_82dc5d47","line":53,"updated":"2015-05-27 06:47:22.000000000","message":"Copy Pasta Error here -- should be:\n test_client_with_auth_system_without_endpoint","commit_id":"c9dfe8a3f2def8a1a8bc9707fb0b1f61a4edb674"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"577ba89fbc9883eb99bea1a0a4bf3cfac9a54073","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    def test_client_version_url(self):"},{"line_number":182,"context_line":"        self._check_version_url(\u0027http://foo.com/v1/%s\u0027, \u0027http://foo.com/\u0027)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def test_client_version_url_with_project_name(self):"},{"line_number":185,"context_line":"        self._check_version_url(\u0027http://foo.com/trove/v1/%s\u0027,"},{"line_number":186,"context_line":"                                \u0027http://foo.com/trove/\u0027)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_e2c0b12c","line":184,"updated":"2015-05-27 06:47:22.000000000","message":"\"project\" terminology is old. Please use tenant instead.","commit_id":"c9dfe8a3f2def8a1a8bc9707fb0b1f61a4edb674"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"577ba89fbc9883eb99bea1a0a4bf3cfac9a54073","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @mock.patch.object(service_catalog, \u0027ServiceCatalog\u0027,"},{"line_number":259,"context_line":"                       side_effect\u003dother_client.exceptions.AmbiguousEndpoints)"},{"line_number":260,"context_line":"    def test_client_auth_token_ambiguous_endpoints(self, mock_service_catalog):"},{"line_number":261,"context_line":"        auth_url \u003d \u0027http://www.blah.com\u0027"},{"line_number":262,"context_line":"        proxy_token \u003d \u0027foobar\u0027"},{"line_number":263,"context_line":"        proxy_tenant_id \u003d \u0027user\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c230150a","line":260,"updated":"2015-05-27 06:47:22.000000000","message":"The server no longer raises the  AmbiguousEndpoints exception, so this part of the client can be cleaned up and doesn\u0027t need to be tested.\n\nI772e6698566c4c8e43ec5aebea5ac9362ce01ee7","commit_id":"c9dfe8a3f2def8a1a8bc9707fb0b1f61a4edb674"}]}
