From 9badd1c88ec3908fc40529e39335ff22dcdcce09 Mon Sep 17 00:00:00 2001 From: mabofu Date: Tue, 9 Apr 2024 15:04:24 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20bug-I9F5M2=EF=BC=9ASwitching=20storage?= =?UTF-8?q?=20directory=20pages=20during=20file=20system=20deletion=20caus?= =?UTF-8?q?ed=20task=20to=20get=20stuck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FileSystemServiceImpl.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dsms-engine-application/src/main/java/com/dsms/modules/filesystem/service/impl/FileSystemServiceImpl.java b/dsms-engine-application/src/main/java/com/dsms/modules/filesystem/service/impl/FileSystemServiceImpl.java index 48126896..8275676f 100644 --- a/dsms-engine-application/src/main/java/com/dsms/modules/filesystem/service/impl/FileSystemServiceImpl.java +++ b/dsms-engine-application/src/main/java/com/dsms/modules/filesystem/service/impl/FileSystemServiceImpl.java @@ -38,6 +38,9 @@ import com.dsms.dfsbroker.filesystem.api.FileSystemApi; import com.dsms.dfsbroker.filesystem.model.dto.FileSystemDTO; import com.dsms.dfsbroker.filesystem.model.remote.FsStatusResponse; import com.dsms.dfsbroker.filesystem.service.IFileSystemService; +import com.dsms.dfsbroker.storagedir.api.StorageDirApi; +import com.dsms.dfsbroker.storagedir.model.dto.StorageDirDTO; +import com.dsms.dfsbroker.storagedir.model.remote.SubvolumeLsResponse; import com.dsms.dfsbroker.storagepool.model.StoragePool; import com.dsms.dfsbroker.storagepool.service.IStoragePoolService; import com.dsms.modules.util.RemoteCallUtil; @@ -76,6 +79,10 @@ public class FileSystemServiceImpl implements IFileSystemService { @Autowired private IStepService stepService; + + @Autowired + private StorageDirApi storageDirApi; + @Override public List list() { FsStatusResponse fsStatusResponse = null; @@ -148,6 +155,19 @@ public class FileSystemServiceImpl implements IFileSystemService { log.warn("Task already exist,task message:{}", taskMessage); throw new DsmsEngineException(ResultCode.FS_REMOVE_TASK_EXIST); } + + StorageDirDTO storageDirDTO = new StorageDirDTO(); + storageDirDTO.setVolName(fileSystemDTO.getFsName()); + List storageDirList; + try { + storageDirList = storageDirApi.getStorageDirList(RemoteCallUtil.generateRemoteRequest(), storageDirDTO); + } catch (Throwable e) { + log.error("get storage dir info from dsms-storage fail,fail message:{}", e.getMessage(), e); + throw DsmsEngineException.exceptionWithThrowable(e, ResultCode.STORAGE_DIR_LIST_ERROR); + } + if (!storageDirList.isEmpty()) { + throw new DsmsEngineException(ResultCode.STORAGE_DIR_ALREADY_EXIST); + } try { fileSystemApi.getFsLs(RemoteCallUtil.generateRemoteRequest()) .forEach(fs -> { -- Gitee