)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3972e9c71ba97401e2ee0683cc7405bd48c9aeb8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"ignore it. Since the EC2 credentials code calls list_credentials() with"},{"line_number":12,"context_line":"user_id as a param, a separate method list_credentials_for_user has been"},{"line_number":13,"context_line":"introduced to provide the compatibility while support the standard hints"},{"line_number":14,"context_line":"mechanism in list_credentials()."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1353511"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_708e9833","line":14,"updated":"2014-08-11 11:02:01.000000000","message":"nit: It isn\u0027t really obvious this as to why you have added the hints if you have not plugged them into the regular controller.  Perhaps it is worth mentioning that this prepares the way for implementation of the bp to support filtering credentials by user in a follow on patch.","commit_id":"557200c327d1600b141cf36c045c920c997d3c52"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"2f8f15c0ce2c738c4b8054f79cbed05dd928bd7e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"ignore it. Since the EC2 credentials code calls list_credentials() with"},{"line_number":12,"context_line":"user_id as a param, a separate method list_credentials_for_user has been"},{"line_number":13,"context_line":"introduced to provide the compatibility while support the standard hints"},{"line_number":14,"context_line":"mechanism in list_credentials()."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1353511"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_33a98a8f","line":14,"in_reply_to":"baada198_708e9833","updated":"2014-08-11 11:38:16.000000000","message":"Agree, fixed.","commit_id":"557200c327d1600b141cf36c045c920c997d3c52"}],"keystone/credential/backends/sql.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3135c0ac4fbba7d3138d3c3c5e802d73b1e66bc5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        credentials \u003d session.query(CredentialModel)"},{"line_number":48,"context_line":"        credentials \u003d sql.filter_limit_query(CredentialModel,"},{"line_number":49,"context_line":"                                             credentials, hints)"},{"line_number":50,"context_line":"        return [s.to_dict() for s in list(credentials)]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def list_credentials_for_user(self, user_id):"},{"line_number":53,"context_line":"        session \u003d sql.get_session()"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_a41f2bb7","line":50,"updated":"2014-08-10 10:21:19.000000000","message":"not sure what the list() is needed for?","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"a0a9532614e9f7cfc7113fac61defc2674770594","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        credentials \u003d session.query(CredentialModel)"},{"line_number":48,"context_line":"        credentials \u003d sql.filter_limit_query(CredentialModel,"},{"line_number":49,"context_line":"                                             credentials, hints)"},{"line_number":50,"context_line":"        return [s.to_dict() for s in list(credentials)]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def list_credentials_for_user(self, user_id):"},{"line_number":53,"context_line":"        session \u003d sql.get_session()"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_3ad5f21a","line":50,"in_reply_to":"baada198_a41f2bb7","updated":"2014-08-10 14:05:21.000000000","message":"Removed.","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"}],"keystone/credential/core.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3135c0ac4fbba7d3138d3c3c5e802d73b1e66bc5","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        super(Manager, self).__init__(CONF.credential.driver)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @manager.response_truncated"},{"line_number":47,"context_line":"    def list_credentials(self, hints\u003dNone):"},{"line_number":48,"context_line":"        return self.driver.list_credentials(hints or driver_hints.Hints())"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_84222700","line":47,"updated":"2014-08-10 10:21:19.000000000","message":"so we don\u0027t actually test the hints in this patch, is that happening in a follow on patch, or should that be tested in, say, test_v3_filters/test_v3_credentials?","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"a0a9532614e9f7cfc7113fac61defc2674770594","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        super(Manager, self).__init__(CONF.credential.driver)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @manager.response_truncated"},{"line_number":47,"context_line":"    def list_credentials(self, hints\u003dNone):"},{"line_number":48,"context_line":"        return self.driver.list_credentials(hints or driver_hints.Hints())"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_bf4d74c7","line":47,"in_reply_to":"baada198_84222700","updated":"2014-08-10 14:05:21.000000000","message":"Credential API doesn\u0027t support any filters at the moment, because of controller. This support will be introduced as part of \u0027filter-credentials-by-user\u0027 blueprint.  This patch creates an infrastructure for this functionality by enabling backend to work with hints.  So high-level tests in test_v3_filters/test_v3_credentials aren\u0027t possible, but I\u0027m adding backend tests in test_backend_sql.","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f702dfaa8b51c70a3534e92b63ed91980a775ee2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        super(Manager, self).__init__(CONF.credential.driver)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @manager.response_truncated"},{"line_number":47,"context_line":"    def list_credentials(self, hints\u003dNone):"},{"line_number":48,"context_line":"        return self.driver.list_credentials(hints or driver_hints.Hints())"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_daf4f657","line":47,"updated":"2014-08-10 14:49:02.000000000","message":"So following on from your comment on the previous version of patch, I would have thought that if you aren\u0027t going to test hints in this patch, then you shouldn\u0027t introduce it here.  Maybe it would be better for this patch to just crate (and test) the new list_credentials_for_user(), including getting ec2 credentials to call it, leaving list_credentials() with no params.  Then in the fix for the bp, you can bring in the hints() ?","commit_id":"8fe0465d7fe0e868bd8b422db50825709289004b"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"39954e6874fd54fe23c9201ec51902d5583052b6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        super(Manager, self).__init__(CONF.credential.driver)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @manager.response_truncated"},{"line_number":47,"context_line":"    def list_credentials(self, hints\u003dNone):"},{"line_number":48,"context_line":"        return self.driver.list_credentials(hints or driver_hints.Hints())"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_950faf2e","line":47,"in_reply_to":"baada198_daf4f657","updated":"2014-08-10 15:13:29.000000000","message":"I\u0027ve added hints test to to the test_backend_sql, would it work?","commit_id":"8fe0465d7fe0e868bd8b422db50825709289004b"}],"keystone/tests/test_backend_sql.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3135c0ac4fbba7d3138d3c3c5e802d73b1e66bc5","unresolved":false,"context_lines":[{"line_number":583,"context_line":"        credentials \u003d self.credential_api.list_credentials()"},{"line_number":584,"context_line":"        expected_ids \u003d [c[\u0027id\u0027] for c in self.credentials]"},{"line_number":585,"context_line":"        self.assertEqual(len(self.credentials), len(credentials))"},{"line_number":586,"context_line":"        for cred in self.credentials:"},{"line_number":587,"context_line":"            self.assertIn(cred[\u0027id\u0027], expected_ids)"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    def test_list_credentials_for_user(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_e43e8325","line":586,"updated":"2014-08-10 10:21:19.000000000","message":"do you mean credentials here, rather than self.credentials?","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"a0a9532614e9f7cfc7113fac61defc2674770594","unresolved":false,"context_lines":[{"line_number":583,"context_line":"        credentials \u003d self.credential_api.list_credentials()"},{"line_number":584,"context_line":"        expected_ids \u003d [c[\u0027id\u0027] for c in self.credentials]"},{"line_number":585,"context_line":"        self.assertEqual(len(self.credentials), len(credentials))"},{"line_number":586,"context_line":"        for cred in self.credentials:"},{"line_number":587,"context_line":"            self.assertIn(cred[\u0027id\u0027], expected_ids)"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    def test_list_credentials_for_user(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_9ffef037","line":586,"in_reply_to":"baada198_e43e8325","updated":"2014-08-10 14:05:21.000000000","message":"Yes, it\u0027s a mistake. But not not in the loop, in the second line which should gather retrieved credentials ids, not expected ones. Fixed.","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3135c0ac4fbba7d3138d3c3c5e802d73b1e66bc5","unresolved":false,"context_lines":[{"line_number":595,"context_line":"            self.user_foo[\u0027id\u0027])"},{"line_number":596,"context_line":"        expected_ids \u003d [c[\u0027id\u0027] for c in user_credentials]"},{"line_number":597,"context_line":"        self.assertEqual(len(user_credentials), len(credentials))"},{"line_number":598,"context_line":"        for cred in user_credentials:"},{"line_number":599,"context_line":"            self.assertIn(cred[\u0027id\u0027], expected_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_c4417fa8","line":598,"updated":"2014-08-10 10:21:19.000000000","message":"do you mean credentials here, rather than user_credentials?","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"a0a9532614e9f7cfc7113fac61defc2674770594","unresolved":false,"context_lines":[{"line_number":595,"context_line":"            self.user_foo[\u0027id\u0027])"},{"line_number":596,"context_line":"        expected_ids \u003d [c[\u0027id\u0027] for c in user_credentials]"},{"line_number":597,"context_line":"        self.assertEqual(len(user_credentials), len(credentials))"},{"line_number":598,"context_line":"        for cred in user_credentials:"},{"line_number":599,"context_line":"            self.assertIn(cred[\u0027id\u0027], expected_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_bffbb446","line":598,"in_reply_to":"baada198_c4417fa8","updated":"2014-08-10 14:05:21.000000000","message":"Same as above, fixed.","commit_id":"2e86c8940665c93d7079322a6cae294eb78571ea"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"0eeb6f436405c92acfd003426f37fd34beb3f1e7","unresolved":false,"context_lines":[{"line_number":600,"context_line":"        credentials \u003d self.credential_api.list_credentials_for_user("},{"line_number":601,"context_line":"            self.user_foo[\u0027id\u0027])"},{"line_number":602,"context_line":"        self._validateCredentialList(credentials, user_credentials)"},{"line_number":603,"context_line":"        # test filtering using hints"},{"line_number":604,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":605,"context_line":"        hints.add_filter(\u0027user_id\u0027, self.user_foo[\u0027id\u0027])"},{"line_number":606,"context_line":"        credentials \u003d self.credential_api.list_credentials(hints)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_90ca5d6d","line":603,"updated":"2014-08-10 18:38:14.000000000","message":"Good to be testing this...although I\u0027d prefer this test under the test_list_credentials() method (since that\u0027s what its testing)","commit_id":"8fe0465d7fe0e868bd8b422db50825709289004b"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"71d124b0e65dcfa35fbd931cde1a38becbdce20a","unresolved":false,"context_lines":[{"line_number":600,"context_line":"        credentials \u003d self.credential_api.list_credentials_for_user("},{"line_number":601,"context_line":"            self.user_foo[\u0027id\u0027])"},{"line_number":602,"context_line":"        self._validateCredentialList(credentials, user_credentials)"},{"line_number":603,"context_line":"        # test filtering using hints"},{"line_number":604,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":605,"context_line":"        hints.add_filter(\u0027user_id\u0027, self.user_foo[\u0027id\u0027])"},{"line_number":606,"context_line":"        credentials \u003d self.credential_api.list_credentials(hints)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_302d11fe","line":603,"in_reply_to":"baada198_90ca5d6d","updated":"2014-08-10 19:17:38.000000000","message":"Done","commit_id":"8fe0465d7fe0e868bd8b422db50825709289004b"}]}
