)]}'
{"keystone/application_credential/core.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"5f6e92b59f9fda4f3211d3fcb48dec1f3ad5a277","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        This is triggered when a user is deleted."},{"line_number":198,"context_line":"        \"\"\""},{"line_number":199,"context_line":"        app_cred_ids \u003d self.driver.delete_application_credentials_for_user("},{"line_number":200,"context_line":"            user_id)"},{"line_number":201,"context_line":"        for app_cred_id in app_cred_ids:"},{"line_number":202,"context_line":"            self.get_application_credential.invalidate(self, app_cred_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_63fd7607","line":199,"updated":"2018-02-03 22:52:49.000000000","message":"looks strange to me a delete method return what it has just deleted. Why not first fetch the list of app creds that will be deleted, delete them and later invalidate the cache?","commit_id":"382358d7934e7b3b6ad66bd1f8c6caaa39fb33d8"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8cf53ed42a509ffe9f6cdbd3d71116dcb42c37a7","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        This is triggered when a user is deleted."},{"line_number":198,"context_line":"        \"\"\""},{"line_number":199,"context_line":"        app_creds \u003d self.driver.list_application_credentials_for_user("},{"line_number":200,"context_line":"            user_id, driver_hints.Hints())"},{"line_number":201,"context_line":"        self.driver.delete_application_credentials_for_user(user_id)"},{"line_number":202,"context_line":"        for app_cred in app_creds:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa0c359_0b9ef462","line":199,"updated":"2018-02-05 18:02:36.000000000","message":"nice","commit_id":"c6cfaadf5f0846c551f1331619a2b1e0d6823622"}],"keystone/tests/unit/application_credential/test_backends.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"5f6e92b59f9fda4f3211d3fcb48dec1f3ad5a277","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        self.app_cred_api.create_application_credential(app_cred_2)"},{"line_number":184,"context_line":"        self.assertIn(app_cred_1[\u0027id\u0027], self._list_ids(self.user_foo))"},{"line_number":185,"context_line":"        self.assertIn(app_cred_2[\u0027id\u0027], self._list_ids(self.user_foo))"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        # cache the information"},{"line_number":188,"context_line":"        self.app_cred_api.get_application_credential(app_cred_1[\u0027id\u0027])"},{"line_number":189,"context_line":"        self.app_cred_api.get_application_credential(app_cred_2[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_a31a9e6c","line":186,"updated":"2018-02-03 22:52:49.000000000","message":"can you follow the same pattern as suggested at [1]?\n\n[1] https://review.openstack.org/#/c/540270","commit_id":"382358d7934e7b3b6ad66bd1f8c6caaa39fb33d8"}]}
