)]}'
{"cinder/tests/unit/volume/drivers/test_remotefs.py":[{"author":{"_account_id":32171,"name":"Girish Chilukuri","email":"girish.chilukuri@ibm.com","username":"GirishChilukuri"},"change_message_id":"eb02184078d3e620880484a3e509ea98378fa21f","unresolved":true,"context_lines":[{"line_number":634,"context_line":"    @mock.patch.object(remotefs.RemoteFSSnapDriver, \u0027_read_info_file\u0027)"},{"line_number":635,"context_line":"    @mock.patch.object(remotefs.RemoteFSSnapDriver,"},{"line_number":636,"context_line":"                       \u0027_get_mount_point_for_share\u0027)"},{"line_number":637,"context_line":"    def test_local_path_from_info(self, mock_mount_path, mock_read_info):"},{"line_number":638,"context_line":"        fake_mountpoint \u003d \u0027/fake_mnt\u0027"},{"line_number":639,"context_line":"        mock_mount_path.return_value \u003d fake_mountpoint"},{"line_number":640,"context_line":"        mock_read_info.return_value \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"0c2cb7b3_8ed909be","line":637,"updated":"2020-11-30 16:46:50.000000000","message":"one more unit test can be added for \"path does not exists\" case.","commit_id":"c573b22b58b95002b48b451e311128e0aa9f57e7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d27629a8dc4f54f543a12f46b5c06126f587e71c","unresolved":true,"context_lines":[{"line_number":634,"context_line":"    @mock.patch.object(remotefs.RemoteFSSnapDriver, \u0027_read_info_file\u0027)"},{"line_number":635,"context_line":"    @mock.patch.object(remotefs.RemoteFSSnapDriver,"},{"line_number":636,"context_line":"                       \u0027_get_mount_point_for_share\u0027)"},{"line_number":637,"context_line":"    def test_local_path_from_info(self, mock_mount_path, mock_read_info):"},{"line_number":638,"context_line":"        fake_mountpoint \u003d \u0027/fake_mnt\u0027"},{"line_number":639,"context_line":"        mock_mount_path.return_value \u003d fake_mountpoint"},{"line_number":640,"context_line":"        mock_read_info.return_value \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"a65da004_31afa765","line":637,"in_reply_to":"0c2cb7b3_8ed909be","updated":"2021-01-05 14:20:18.000000000","message":"This will not occur since the info file will be created with volume creation and will be removed with volume deletion.","commit_id":"c573b22b58b95002b48b451e311128e0aa9f57e7"}],"cinder/volume/drivers/remotefs.py":[{"author":{"_account_id":32171,"name":"Girish Chilukuri","email":"girish.chilukuri@ibm.com","username":"GirishChilukuri"},"change_message_id":"eb02184078d3e620880484a3e509ea98378fa21f","unresolved":true,"context_lines":[{"line_number":539,"context_line":"        \"\"\"Get volume path (mounted locally fs path) for given volume."},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        The volume file path is tracked in the info file and updated"},{"line_number":542,"context_line":"        after a blockRebase operation, this method returns the that"},{"line_number":543,"context_line":"        path from info file."},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        :param volume: volume reference"},{"line_number":546,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"cf269218_434de1aa","line":543,"range":{"start_line":542,"start_character":51,"end_line":543,"end_character":12},"updated":"2020-11-30 16:46:50.000000000","message":"NIT comment \"returns the that path\" should be \"returns the path\"","commit_id":"c573b22b58b95002b48b451e311128e0aa9f57e7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d27629a8dc4f54f543a12f46b5c06126f587e71c","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        \"\"\"Get volume path (mounted locally fs path) for given volume."},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        The volume file path is tracked in the info file and updated"},{"line_number":542,"context_line":"        after a blockRebase operation, this method returns the that"},{"line_number":543,"context_line":"        path from info file."},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        :param volume: volume reference"},{"line_number":546,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"2e74fb1b_dbc1bb8a","line":543,"range":{"start_line":542,"start_character":51,"end_line":543,"end_character":12},"in_reply_to":"cf269218_434de1aa","updated":"2021-01-05 14:20:18.000000000","message":"Done","commit_id":"c573b22b58b95002b48b451e311128e0aa9f57e7"},{"author":{"_account_id":32171,"name":"Girish Chilukuri","email":"girish.chilukuri@ibm.com","username":"GirishChilukuri"},"change_message_id":"eb02184078d3e620880484a3e509ea98378fa21f","unresolved":true,"context_lines":[{"line_number":549,"context_line":"        info_path \u003d \u0027%s%s\u0027 % (os.path.join(path, volume.name), \u0027.info\u0027)"},{"line_number":550,"context_line":"        info \u003d self._read_info_file(info_path, empty_if_missing\u003dTrue)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        return os.path.join(path, info[volume.id])"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def local_path(self, volume):"},{"line_number":555,"context_line":"        \"\"\"Get volume path (mounted locally fs path) for given volume."}],"source_content_type":"text/x-python","patch_set":2,"id":"629a710b_b78f9a07","line":552,"updated":"2020-11-30 16:46:50.000000000","message":"If \"_read_info_file\" method returns empty dict, accessing empty info dict will throw exception.","commit_id":"c573b22b58b95002b48b451e311128e0aa9f57e7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d27629a8dc4f54f543a12f46b5c06126f587e71c","unresolved":true,"context_lines":[{"line_number":549,"context_line":"        info_path \u003d \u0027%s%s\u0027 % (os.path.join(path, volume.name), \u0027.info\u0027)"},{"line_number":550,"context_line":"        info \u003d self._read_info_file(info_path, empty_if_missing\u003dTrue)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        return os.path.join(path, info[volume.id])"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    def local_path(self, volume):"},{"line_number":555,"context_line":"        \"\"\"Get volume path (mounted locally fs path) for given volume."}],"source_content_type":"text/x-python","patch_set":2,"id":"f754f25e_902f014f","line":552,"in_reply_to":"629a710b_b78f9a07","updated":"2021-01-05 14:20:18.000000000","message":"It will never return an empty dict.\nduring volume creation, we add the entry of {\"volume.id\": \"volume.name\"}\nand this method is called for volume operation so as long as the volume exists, so that case wouldn\u0027t occur.","commit_id":"c573b22b58b95002b48b451e311128e0aa9f57e7"}]}
