mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-3047 java.lang.NullPointerException encountered when executing capacityChecker thread.
Changes: - Added null check around clusterId, since its possible to have null clusterId for storagepool and host records Conflicts: server/src/com/cloud/capacity/CapacityManagerImpl.java
This commit is contained in:
parent
80dd1e263f
commit
3eacdb1547
|
|
@ -633,15 +633,21 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
}
|
||||
}else {
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
CapacityState capacityState = _configMgr.findClusterAllocationState(ApiDBUtils.findClusterById(host.getClusterId())) == AllocationState.Disabled ?
|
||||
CapacityState.Disabled : CapacityState.Enabled;
|
||||
txn.start();
|
||||
CapacityVO capacity = new CapacityVO(host.getId(),
|
||||
host.getDataCenterId(), host.getPodId(), host.getClusterId(), usedMemory,
|
||||
host.getTotalMemory(),
|
||||
CapacityVO.CAPACITY_TYPE_MEMORY);
|
||||
capacity.setReservedCapacity(reservedMemory);
|
||||
capacity.setCapacityState(capacityState);
|
||||
CapacityState capacityState = CapacityState.Enabled;
|
||||
if (host.getClusterId() != null) {
|
||||
ClusterVO clusterOfHost = ApiDBUtils.findClusterById(host.getClusterId());
|
||||
if (clusterOfHost != null) {
|
||||
capacityState = _configMgr.findClusterAllocationState(clusterOfHost) == AllocationState.Disabled ? CapacityState.Disabled
|
||||
: CapacityState.Enabled;
|
||||
capacity.setCapacityState(capacityState);
|
||||
}
|
||||
}
|
||||
_capacityDao.persist(capacity);
|
||||
|
||||
capacity = new CapacityVO(
|
||||
|
|
|
|||
|
|
@ -984,16 +984,24 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
|
|||
if (capacities.size() == 0) {
|
||||
CapacityVO capacity = new CapacityVO(storagePool.getId(), storagePool.getDataCenterId(), storagePool.getPodId(),
|
||||
storagePool.getClusterId(), allocated, totalOverProvCapacity, capacityType);
|
||||
AllocationState allocationState = null;
|
||||
|
||||
if (storagePool.getScope() == ScopeType.ZONE) {
|
||||
DataCenterVO dc = ApiDBUtils.findZoneById(storagePool.getDataCenterId());
|
||||
allocationState = dc.getAllocationState();
|
||||
AllocationState allocationState = dc.getAllocationState();
|
||||
CapacityState capacityState = (allocationState == AllocationState.Disabled) ? CapacityState.Disabled
|
||||
: CapacityState.Enabled;
|
||||
capacity.setCapacityState(capacityState);
|
||||
} else {
|
||||
allocationState = _configMgr.findClusterAllocationState(ApiDBUtils.findClusterById(storagePool.getClusterId()));
|
||||
if (storagePool.getClusterId() != null) {
|
||||
ClusterVO cluster = ApiDBUtils.findClusterById(storagePool.getClusterId());
|
||||
if (cluster != null) {
|
||||
AllocationState allocationState = _configMgr.findClusterAllocationState(cluster);
|
||||
CapacityState capacityState = (allocationState == AllocationState.Disabled) ? CapacityState.Disabled
|
||||
: CapacityState.Enabled;
|
||||
capacity.setCapacityState(capacityState);
|
||||
}
|
||||
}
|
||||
}
|
||||
CapacityState capacityState = (allocationState == AllocationState.Disabled) ? CapacityState.Disabled : CapacityState.Enabled;
|
||||
|
||||
capacity.setCapacityState(capacityState);
|
||||
_capacityDao.persist(capacity);
|
||||
} else {
|
||||
CapacityVO capacity = capacities.get(0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue