Skip to content

Commit 1ac10fe

Browse files
sureshanapartidhslove
authored andcommitted
list hosts API fix, when any stale entries exists on storage_pool_host_ref for the removed pools (apache#9852)
1 parent 2a25c83 commit 1ac10fe

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

server/src/main/java/com/cloud/storage/StorageManagerImpl.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,8 @@ public List<StoragePoolVO> ListByDataCenterHypervisor(long datacenterId, Hypervi
499499
public boolean isLocalStorageActiveOnHost(Long hostId) {
500500
List<StoragePoolHostVO> storagePoolHostRefs = _storagePoolHostDao.listByHostId(hostId);
501501
for (StoragePoolHostVO storagePoolHostRef : storagePoolHostRefs) {
502-
StoragePoolVO PrimaryDataStoreVO = _storagePoolDao.findById(storagePoolHostRef.getPoolId());
503-
if (PrimaryDataStoreVO.getPoolType() == StoragePoolType.LVM || PrimaryDataStoreVO.getPoolType() == StoragePoolType.EXT) {
502+
StoragePoolVO primaryDataStoreVO = _storagePoolDao.findById(storagePoolHostRef.getPoolId());
503+
if (primaryDataStoreVO != null && (primaryDataStoreVO.getPoolType() == StoragePoolType.LVM || primaryDataStoreVO.getPoolType() == StoragePoolType.EXT)) {
504504
SearchBuilder<VolumeVO> volumeSB = volumeDao.createSearchBuilder();
505505
volumeSB.and("poolId", volumeSB.entity().getPoolId(), SearchCriteria.Op.EQ);
506506
volumeSB.and("removed", volumeSB.entity().getRemoved(), SearchCriteria.Op.NULL);
@@ -511,7 +511,7 @@ public boolean isLocalStorageActiveOnHost(Long hostId) {
511511
volumeSB.join("activeVmSB", activeVmSB, volumeSB.entity().getInstanceId(), activeVmSB.entity().getId(), JoinBuilder.JoinType.INNER);
512512

513513
SearchCriteria<VolumeVO> volumeSC = volumeSB.create();
514-
volumeSC.setParameters("poolId", PrimaryDataStoreVO.getId());
514+
volumeSC.setParameters("poolId", primaryDataStoreVO.getId());
515515
volumeSC.setParameters("state", Volume.State.Expunging, Volume.State.Destroy);
516516
volumeSC.setJoinParameters("activeVmSB", "state", State.Starting, State.Running, State.Stopping, State.Migrating);
517517

@@ -2179,9 +2179,9 @@ public String getPrimaryStorageNameLabel(VolumeVO volume) {
21792179
// poolId is null only if volume is destroyed, which has been checked
21802180
// before.
21812181
assert poolId != null;
2182-
StoragePoolVO PrimaryDataStoreVO = _storagePoolDao.findById(poolId);
2183-
assert PrimaryDataStoreVO != null;
2184-
return PrimaryDataStoreVO.getUuid();
2182+
StoragePoolVO primaryDataStoreVO = _storagePoolDao.findById(poolId);
2183+
assert primaryDataStoreVO != null;
2184+
return primaryDataStoreVO.getUuid();
21852185
}
21862186

21872187
@Override
@@ -2732,8 +2732,8 @@ private CapacityVO getStoragePoolUsedStatsInternal(Long zoneId, Long podId, Long
27322732
}
27332733

27342734
CapacityVO capacity = new CapacityVO(poolId, zoneId, podId, clusterId, 0, 0, Capacity.CAPACITY_TYPE_STORAGE);
2735-
for (StoragePoolVO pool : pools) {
2736-
StorageStats stats = ApiDBUtils.getStoragePoolStatistics(pool.getId());
2735+
for (StoragePoolVO primaryDataStoreVO : pools) {
2736+
StorageStats stats = ApiDBUtils.getStoragePoolStatistics(primaryDataStoreVO.getId());
27372737
if (stats == null) {
27382738
continue;
27392739
}

0 commit comments

Comments
 (0)