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 481268966a6ee0a04c463c07c5f7fadcaeab3934..8275676f8afa2678234a76420757aa8d89f34ca5 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 -> {