Skip to content

Commit b1012d2

Browse files
committed
Fix search pools logic
1 parent b981367 commit b1012d2

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
import com.cloud.uservm.UserVm;
123123
import com.cloud.utils.LogUtils;
124124
import com.cloud.utils.Pair;
125+
import com.cloud.utils.UuidUtils;
125126
import com.cloud.utils.db.EntityManager;
126127
import com.cloud.utils.exception.CloudRuntimeException;
127128
import com.cloud.utils.net.NetUtils;
@@ -183,6 +184,7 @@
183184
import java.util.ArrayList;
184185
import java.util.Arrays;
185186
import java.util.HashMap;
187+
import java.util.HashSet;
186188
import java.util.LinkedHashMap;
187189
import java.util.List;
188190
import java.util.Map;
@@ -565,11 +567,12 @@ private StoragePool getStoragePool(final UnmanagedInstanceTO.Disk disk, final Da
565567
}
566568

567569
if (storagePool == null) {
568-
List<StoragePoolVO> pools = primaryDataStoreDao.listPoolsByCluster(cluster.getId());
570+
Set<StoragePoolVO> pools = new HashSet<>(primaryDataStoreDao.listPoolsByCluster(cluster.getId()));
569571
pools.addAll(primaryDataStoreDao.listByDataCenterId(zone.getId()));
572+
boolean isNameUuid = StringUtils.isNotBlank(dsName) && UuidUtils.isUuid(dsName);
570573
for (StoragePool pool : pools) {
571574
String searchPoolParam = StringUtils.isNotBlank(dsPath) ? dsPath : dsName;
572-
if ((StringUtils.contains(pool.getPath(), searchPoolParam) || pool.getUuid().equals(searchPoolParam)) &&
575+
if ((StringUtils.contains(pool.getPath(), searchPoolParam) || isNameUuid && pool.getUuid().equals(dsName)) &&
573576
volumeApiService.doesStoragePoolSupportDiskOffering(pool, diskOffering)) {
574577
storagePool = pool;
575578
break;

0 commit comments

Comments
 (0)