)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"8c727e30678c402d28089971831b4bab132389f3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add policy test for volume GET_ALL_POLICY, and remove it from"},{"line_number":10,"context_line":"test policy file."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is one of the serious patches of policy-in-code test, see"},{"line_number":13,"context_line":"more information on [1] and [2]."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1] 530fb9319ce21b7ff99e55f095c04f13f0785842"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_3a80f9f6","line":12,"range":{"start_line":12,"start_character":19,"end_line":12,"end_character":26},"updated":"2018-11-13 01:13:51.000000000","message":"serious? ok...","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"00c78be0df267e7d6b0356c05ab52fccc4c458d3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add policy test for volume GET_ALL_POLICY, and remove it from"},{"line_number":10,"context_line":"test policy file."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is one of the serious patches of policy-in-code test, see"},{"line_number":13,"context_line":"more information on [1] and [2]."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1] 530fb9319ce21b7ff99e55f095c04f13f0785842"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_23c3f48e","line":12,"range":{"start_line":12,"start_character":19,"end_line":12,"end_character":26},"in_reply_to":"3f79a3b5_3a80f9f6","updated":"2018-11-14 06:39:05.000000000","message":"oops, series","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"}],"cinder/tests/unit/api/v3/test_volume_protection.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"eeb0158b36f5a1b0b91ee07e0b8a495a5b5e1523","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        self.assertEqual(volume.id, res_vol[\u0027id\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_owner_can_get_all_volumes_detail(self):"},{"line_number":138,"context_line":"        # Make sure owners are authorized to list volumes"},{"line_number":139,"context_line":"        user_context \u003d self.user_context"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_669aa112","line":137,"range":{"start_line":137,"start_character":13,"end_line":137,"end_character":18},"updated":"2018-11-08 10:08:49.000000000","message":"i see nonadmin at some places and owner at some but they have the same context,\nit looks quite confusing, can we use only one consistently?","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"cffa538d61aafef49590e95931c29af067083a8a","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        self.assertEqual(volume.id, res_vol[\u0027id\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_owner_can_get_all_volumes_detail(self):"},{"line_number":138,"context_line":"        # Make sure owners are authorized to list volumes"},{"line_number":139,"context_line":"        user_context \u003d self.user_context"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_6b08f77d","line":137,"range":{"start_line":137,"start_character":13,"end_line":137,"end_character":18},"in_reply_to":"3f79a3b5_0b79432e","updated":"2018-11-12 06:29:03.000000000","message":"ignore the prev comment. got the explanation.","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1506a4d1f138292d5c66ac5fac09a7debcfd142b","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        self.assertEqual(volume.id, res_vol[\u0027id\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_owner_can_get_all_volumes_detail(self):"},{"line_number":138,"context_line":"        # Make sure owners are authorized to list volumes"},{"line_number":139,"context_line":"        user_context \u003d self.user_context"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_0b79432e","line":137,"range":{"start_line":137,"start_character":13,"end_line":137,"end_character":18},"in_reply_to":"3f79a3b5_248a50bc","updated":"2018-11-12 06:08:10.000000000","message":"Agree on the name point.\ncan you please elaborate why case 3 is meaningless here?","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"27c0c41798f4474aa85a5b1521c9fda79da98c10","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        self.assertEqual(volume.id, res_vol[\u0027id\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_owner_can_get_all_volumes_detail(self):"},{"line_number":138,"context_line":"        # Make sure owners are authorized to list volumes"},{"line_number":139,"context_line":"        user_context \u003d self.user_context"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_248a50bc","line":137,"range":{"start_line":137,"start_character":13,"end_line":137,"end_character":18},"in_reply_to":"3f79a3b5_669aa112","updated":"2018-11-09 02:26:14.000000000","message":"If the policy is \"ADMIN\", we need 2 cases:\n1.1 admin are authorized\n1.2 non-admin are notauthorized\n\nIf the policy is \"ADMIN_OR_OWNER\", we need 3 cases:\n2.1 admin are authorized\n2.2 owner are authorized\n2.3 owner are not authorized to check others.\n\nAlthough, 1.2 and 2.2 have same context, but the key point is not same.\n\nand \"list detail\" in here is a little special, its  policy is \"ADMIN_OR_OWNER\", but case 3 is meaningless, So we only write 2.1 and 2.2.\n\nAnd for name things I don\u0027t think we must keep it consistent, do I make any sense?","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"cdbb1bccfed29232a909aaa1de225e30104cb01e","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        self.assertEqual(volume.id, res_vol[\u0027id\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_owner_can_get_all_volumes_detail(self):"},{"line_number":138,"context_line":"        # Make sure owners are authorized to list volumes"},{"line_number":139,"context_line":"        user_context \u003d self.user_context"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d6d8ce7d","line":137,"range":{"start_line":137,"start_character":13,"end_line":137,"end_character":18},"in_reply_to":"3f79a3b5_6b08f77d","updated":"2018-11-12 07:24:16.000000000","message":"Thanks, and as we discussed in irc, list other users record is controlled by db filter (such as by \u0027project_id\u0027) rather than controlled by policy. So, we don\u0027t need this case_2.3 anymore.","commit_id":"3c4daedbbab16e555a7cd17e689ce7db763bd7a3"}]}
