Simulator failures fixing

This commit is contained in:
Harikrishna Patnala 2020-08-09 13:43:48 +05:30
parent ab171adfdd
commit 201ebe8868
2 changed files with 39 additions and 36 deletions

View File

@ -19,6 +19,7 @@
package com.cloud.agent.api;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -29,7 +30,7 @@ public class ModifyStoragePoolAnswer extends Answer {
private Map<String, TemplateProp> templateInfo;
private String localDatastoreName;
private String poolType;
private List<ModifyStoragePoolAnswer> datastoreClusterChildren;
private List<ModifyStoragePoolAnswer> datastoreClusterChildren = new ArrayList<>();;
public ModifyStoragePoolAnswer(ModifyStoragePoolCommand cmd, long capacityBytes, long availableBytes, Map<String, TemplateProp> tInfo) {
super(cmd);

View File

@ -103,42 +103,44 @@ public class DefaultHostListener implements HypervisorHostListener {
StoragePoolVO poolVO = this.primaryStoreDao.findById(poolId);
updateStoragePoolHostVOAndDetails(poolVO, hostId, mspAnswer);
for (ModifyStoragePoolAnswer childDataStoreAnswer : ((ModifyStoragePoolAnswer) answer).getDatastoreClusterChildren()) {
StoragePoolInfo childStoragePoolInfo = childDataStoreAnswer.getPoolInfo();
StoragePoolVO dataStoreVO = primaryStoreDao.findPoolByUUID(childStoragePoolInfo.getUuid());
if (dataStoreVO != null) {
continue;
if (pool.getPoolType() == Storage.StoragePoolType.DatastoreCluster) {
for (ModifyStoragePoolAnswer childDataStoreAnswer : ((ModifyStoragePoolAnswer) answer).getDatastoreClusterChildren()) {
StoragePoolInfo childStoragePoolInfo = childDataStoreAnswer.getPoolInfo();
StoragePoolVO dataStoreVO = primaryStoreDao.findPoolByUUID(childStoragePoolInfo.getUuid());
if (dataStoreVO != null) {
continue;
}
dataStoreVO = new StoragePoolVO();
dataStoreVO.setStorageProviderName(poolVO.getStorageProviderName());
dataStoreVO.setHostAddress(childStoragePoolInfo.getHost());
dataStoreVO.setPoolType(Storage.StoragePoolType.PreSetup);
dataStoreVO.setPath(childStoragePoolInfo.getHostPath());
dataStoreVO.setPort(poolVO.getPort());
dataStoreVO.setName(childStoragePoolInfo.getName());
dataStoreVO.setUuid(childStoragePoolInfo.getUuid());
dataStoreVO.setDataCenterId(poolVO.getDataCenterId());
dataStoreVO.setPodId(poolVO.getPodId());
dataStoreVO.setClusterId(poolVO.getClusterId());
dataStoreVO.setStatus(StoragePoolStatus.Up);
dataStoreVO.setUserInfo(poolVO.getUserInfo());
dataStoreVO.setManaged(poolVO.isManaged());
dataStoreVO.setCapacityIops(poolVO.getCapacityIops());
dataStoreVO.setCapacityBytes(childDataStoreAnswer.getPoolInfo().getCapacityBytes());
dataStoreVO.setUsedBytes(childDataStoreAnswer.getPoolInfo().getCapacityBytes() - childDataStoreAnswer.getPoolInfo().getAvailableBytes());
dataStoreVO.setHypervisor(poolVO.getHypervisor());
dataStoreVO.setScope(poolVO.getScope());
dataStoreVO.setParent(poolVO.getId());
Map<String, String> details = new HashMap<>();
if(StringUtils.isNotEmpty(childDataStoreAnswer.getPoolType())) {
details.put("pool_type", childDataStoreAnswer.getPoolType());
}
List<String> storageTags = storagePoolTagsDao.getStoragePoolTags(poolId);
primaryStoreDao.persist(dataStoreVO, details, storageTags);
updateStoragePoolHostVOAndDetails(dataStoreVO, hostId, childDataStoreAnswer);
}
dataStoreVO = new StoragePoolVO();
dataStoreVO.setStorageProviderName(poolVO.getStorageProviderName());
dataStoreVO.setHostAddress(childStoragePoolInfo.getHost());
dataStoreVO.setPoolType(Storage.StoragePoolType.PreSetup);
dataStoreVO.setPath(childStoragePoolInfo.getHostPath());
dataStoreVO.setPort(poolVO.getPort());
dataStoreVO.setName(childStoragePoolInfo.getName());
dataStoreVO.setUuid(childStoragePoolInfo.getUuid());
dataStoreVO.setDataCenterId(poolVO.getDataCenterId());
dataStoreVO.setPodId(poolVO.getPodId());
dataStoreVO.setClusterId(poolVO.getClusterId());
dataStoreVO.setStatus(StoragePoolStatus.Up);
dataStoreVO.setUserInfo(poolVO.getUserInfo());
dataStoreVO.setManaged(poolVO.isManaged());
dataStoreVO.setCapacityIops(poolVO.getCapacityIops());
dataStoreVO.setCapacityBytes(childDataStoreAnswer.getPoolInfo().getCapacityBytes());
dataStoreVO.setUsedBytes(childDataStoreAnswer.getPoolInfo().getCapacityBytes() - childDataStoreAnswer.getPoolInfo().getAvailableBytes());
dataStoreVO.setHypervisor(poolVO.getHypervisor());
dataStoreVO.setScope(poolVO.getScope());
dataStoreVO.setParent(poolVO.getId());
Map<String, String> details = new HashMap<>();
if(StringUtils.isNotEmpty(childDataStoreAnswer.getPoolType())) {
details.put("pool_type", childDataStoreAnswer.getPoolType());
}
List<String> storageTags = storagePoolTagsDao.getStoragePoolTags(poolId);
primaryStoreDao.persist(dataStoreVO, details, storageTags);
updateStoragePoolHostVOAndDetails(dataStoreVO, hostId, childDataStoreAnswer);
}
s_logger.info("Connection established between storage pool " + pool + " and host " + hostId);