)]}'
{"keystone/policy/backends/sql.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"85d360bfc0d05071d1db295c93bad9cbc7252d4a","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        with session.begin():"},{"line_number":102,"context_line":"            # Deletes always occurs in the main table, caching mechanism will"},{"line_number":103,"context_line":"            # apply the changes in the cache table"},{"line_number":104,"context_line":"            ref \u003d self._get_policy(session, policy_id)"},{"line_number":105,"context_line":"            session.delete(ref)"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_fcd68526","line":103,"updated":"2015-09-01 14:29:26.000000000","message":"Rather than we do the clean up when caching policy, why not do it when trying to delete policy/update policy? In this patch, when the policy has been deleted we can still get the cached policy with the deleted policy id,\nobviously, this cached policy is invalid but client has no knowledge about this, right?","commit_id":"8ff5678a5074b47ece19e4bc82242af13cc34c9a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"85d360bfc0d05071d1db295c93bad9cbc7252d4a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                cached_ref_dict[\u0027valid_to\u0027] \u003d valid_to"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                cached_ref \u003d PolicyCacheModel.from_dict(cached_ref_dict)"},{"line_number":122,"context_line":"                session.merge(cached_ref)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return cached_ref.to_dict()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_7cc0357d","line":122,"updated":"2015-09-01 14:29:26.000000000","message":"add a testcase to test merge behaviour, i.e. cache an existing cached policy.","commit_id":"8ff5678a5074b47ece19e4bc82242af13cc34c9a"}],"keystone/tests/unit/backend/policy/test_sql.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"85d360bfc0d05071d1db295c93bad9cbc7252d4a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self.assertEqual(valid_to, policy_cache.pop(\u0027valid_to\u0027))"},{"line_number":94,"context_line":"        self.assertEqual(self.policy, policy_cache)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_cache_policy(self):"},{"line_number":97,"context_line":"        self.assertRaises(exception.PolicyNotFound,"},{"line_number":98,"context_line":"                          self.driver.get_policy_cache,"},{"line_number":99,"context_line":"                          self.policy[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_59cd4385","line":96,"updated":"2015-09-01 14:29:26.000000000","message":"this testcase could be split into two sub-test, then it will be more clear what the testcase want to test,\nmaybe?\n- test_cache_policy (this seems duplicated with the test_get_policy_cache)\n- test_cache_policy_without_policy","commit_id":"8ff5678a5074b47ece19e4bc82242af13cc34c9a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"85d360bfc0d05071d1db295c93bad9cbc7252d4a","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                         self.driver.get_policy_cache(self.policy[\u0027id\u0027]))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self.driver.delete_policy(self.policy[\u0027id\u0027])"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        self.assertEqual(policy_cache,"},{"line_number":111,"context_line":"                         self.driver.get_policy_cache(self.policy[\u0027id\u0027]))"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_7cab55d7","line":109,"updated":"2015-09-01 14:29:26.000000000","message":"why policy deletion doesn\u0027t clean up the policy cache?","commit_id":"8ff5678a5074b47ece19e4bc82242af13cc34c9a"}]}
