)]}'
{"cinder/tests/unit/api/v2/test_volumes.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[{"line_number":1679,"context_line":"    def test_get_volume_filter_options_using_config(self):"},{"line_number":1680,"context_line":"        filter_list \u003d [\"name\", \"status\", \"metadata\", \"bootable\","},{"line_number":1681,"context_line":"                       \"migration_status\", \"availability_zone\", \"group_id\"]"},{"line_number":1682,"context_line":"        test_filter_file \u003d os.getcwd() + \u0027/resource_filters_tests.json\u0027"},{"line_number":1683,"context_line":"        self.override_config(\u0027resource_query_filters_file\u0027,"},{"line_number":1684,"context_line":"                             test_filter_file)"},{"line_number":1685,"context_line":"        with open(CONF.resource_query_filters_file, \u0027w\u0027) as filters_file:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f769fc5_7abc1b69","line":1682,"updated":"2018-12-26 02:23:58.000000000","message":"nit: we could use fixtures.TempDir()[1] to store it, and it would be deleted in base class after run out all cases.\n\n[1] https://github.com/openstack/cinder/blob/70f3312/cinder/test.py#L261","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[{"line_number":1682,"context_line":"        test_filter_file \u003d os.getcwd() + \u0027/resource_filters_tests.json\u0027"},{"line_number":1683,"context_line":"        self.override_config(\u0027resource_query_filters_file\u0027,"},{"line_number":1684,"context_line":"                             test_filter_file)"},{"line_number":1685,"context_line":"        with open(CONF.resource_query_filters_file, \u0027w\u0027) as filters_file:"},{"line_number":1686,"context_line":"            filters_file.write(json.dumps({\"volume\": filter_list}))"},{"line_number":1687,"context_line":"        self.assertEqual(filter_list,"},{"line_number":1688,"context_line":"                         self.controller._get_volume_filter_options())"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f769fc5_fa7cabb6","line":1685,"range":{"start_line":1685,"start_character":18,"end_line":1685,"end_character":50},"updated":"2018-12-26 02:23:58.000000000","message":"nit: could just be \"test_filter_file\"","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[{"line_number":1684,"context_line":"                             test_filter_file)"},{"line_number":1685,"context_line":"        with open(CONF.resource_query_filters_file, \u0027w\u0027) as filters_file:"},{"line_number":1686,"context_line":"            filters_file.write(json.dumps({\"volume\": filter_list}))"},{"line_number":1687,"context_line":"        self.assertEqual(filter_list,"},{"line_number":1688,"context_line":"                         self.controller._get_volume_filter_options())"},{"line_number":1689,"context_line":"        if os.path.exists(test_filter_file):"},{"line_number":1690,"context_line":"            os.remove(test_filter_file)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f769fc5_daaa0f18","line":1687,"updated":"2018-12-26 02:23:58.000000000","message":"-1: before we do the _get_volume_filter_options, we should clear the global filter cache to make sure that it can be reloaded by filters.\n\notherwise, if the cache is already set, the cache will always keep original value.","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[{"line_number":1686,"context_line":"            filters_file.write(json.dumps({\"volume\": filter_list}))"},{"line_number":1687,"context_line":"        self.assertEqual(filter_list,"},{"line_number":1688,"context_line":"                         self.controller._get_volume_filter_options())"},{"line_number":1689,"context_line":"        if os.path.exists(test_filter_file):"},{"line_number":1690,"context_line":"            os.remove(test_filter_file)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f769fc5_ba671326","line":1689,"updated":"2018-12-26 02:23:58.000000000","message":"nit: if we use the TempDir thing, we could ignore this step.","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1f769fc5_3a7303ea","line":1691,"updated":"2018-12-26 02:23:58.000000000","message":"-1: after running, we should reset CONF.resource_query_filters_file back to original json path, avoid to leak other cases. also, we should clear the global cache to reload the original json.","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"}],"cinder/tests/unit/api/v3/test_volumes.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            req.headers \u003d mv.get_mv_header(mv.BASE_VERSION)"},{"line_number":71,"context_line":"            req.environ[\u0027cinder.context\u0027].is_admin \u003d True"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"            self.override_config(\u0027resource_query_filters_file\u0027,"},{"line_number":74,"context_line":"                                 {\u0027volume\u0027: [\u0027bootable\u0027]})"},{"line_number":75,"context_line":"            self.controller.index(req)"},{"line_number":76,"context_line":"            filters \u003d req.params.copy()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f769fc5_5a459f6f","line":73,"updated":"2018-12-26 02:23:58.000000000","message":"-1: it also should be addressed.","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ccfbd987a8dc7ecb8106b910ffa179299ad105c7","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            volume_get.assert_called_with(filters, False)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_check_volume_filters_strict_called(self):"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        with mock.patch.object(vol_get.API,"},{"line_number":83,"context_line":"                               \u0027check_volume_filters\u0027) as volume_get:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f769fc5_9a4b3786","line":80,"updated":"2018-12-26 02:23:58.000000000","message":"same suggestion in this case.","commit_id":"8e7f2d8899da7128f8e49fcac355f4d8ebf2bbb2"}]}
