mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Fix adding Datastore clusters and listing
This commit is contained in:
parent
c9c38c0f37
commit
75fb1d91ee
@ -120,7 +120,7 @@ public class StoragePoolVO implements StoragePool {
|
|||||||
private HypervisorType hypervisor;
|
private HypervisorType hypervisor;
|
||||||
|
|
||||||
@Column(name = "parent")
|
@Column(name = "parent")
|
||||||
private Long parent;
|
private Long parent = 0L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getId() {
|
public long getId() {
|
||||||
|
|||||||
@ -161,6 +161,13 @@ public class PrimaryDataStoreHelper {
|
|||||||
pool.setScope(ScopeType.CLUSTER);
|
pool.setScope(ScopeType.CLUSTER);
|
||||||
pool.setStatus(StoragePoolStatus.Up);
|
pool.setStatus(StoragePoolStatus.Up);
|
||||||
this.dataStoreDao.update(pool.getId(), pool);
|
this.dataStoreDao.update(pool.getId(), pool);
|
||||||
|
if(pool.getPoolType() == StoragePoolType.DatastoreCluster && pool.getParent() == 0) {
|
||||||
|
List<StoragePoolVO> childDatastores = dataStoreDao.listChildStoragePoolsInDatastoreCluster(pool.getId());
|
||||||
|
for (StoragePoolVO child : childDatastores) {
|
||||||
|
child.setScope(ScopeType.CLUSTER);
|
||||||
|
this.dataStoreDao.update(child.getId(), child);
|
||||||
|
}
|
||||||
|
}
|
||||||
return dataStoreMgr.getDataStore(store.getId(), DataStoreRole.Primary);
|
return dataStoreMgr.getDataStore(store.getId(), DataStoreRole.Primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,6 +185,13 @@ public class PrimaryDataStoreHelper {
|
|||||||
pool.setHypervisor(hypervisor);
|
pool.setHypervisor(hypervisor);
|
||||||
pool.setStatus(StoragePoolStatus.Up);
|
pool.setStatus(StoragePoolStatus.Up);
|
||||||
this.dataStoreDao.update(pool.getId(), pool);
|
this.dataStoreDao.update(pool.getId(), pool);
|
||||||
|
if(pool.getPoolType() == StoragePoolType.DatastoreCluster && pool.getParent() == 0) {
|
||||||
|
List<StoragePoolVO> childDatastores = dataStoreDao.listChildStoragePoolsInDatastoreCluster(pool.getId());
|
||||||
|
for (StoragePoolVO child : childDatastores) {
|
||||||
|
child.setScope(ScopeType.ZONE);
|
||||||
|
this.dataStoreDao.update(child.getId(), child);
|
||||||
|
}
|
||||||
|
}
|
||||||
return dataStoreMgr.getDataStore(store.getId(), DataStoreRole.Primary);
|
return dataStoreMgr.getDataStore(store.getId(), DataStoreRole.Primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import com.cloud.agent.api.StoragePoolInfo;
|
|||||||
import com.cloud.alert.AlertManager;
|
import com.cloud.alert.AlertManager;
|
||||||
import com.cloud.exception.StorageConflictException;
|
import com.cloud.exception.StorageConflictException;
|
||||||
import com.cloud.storage.DataStoreRole;
|
import com.cloud.storage.DataStoreRole;
|
||||||
|
import com.cloud.storage.Storage;
|
||||||
import com.cloud.storage.StoragePool;
|
import com.cloud.storage.StoragePool;
|
||||||
import com.cloud.storage.StoragePoolHostVO;
|
import com.cloud.storage.StoragePoolHostVO;
|
||||||
import com.cloud.storage.StoragePoolStatus;
|
import com.cloud.storage.StoragePoolStatus;
|
||||||
@ -111,7 +112,7 @@ public class DefaultHostListener implements HypervisorHostListener {
|
|||||||
dataStoreVO = new StoragePoolVO();
|
dataStoreVO = new StoragePoolVO();
|
||||||
dataStoreVO.setStorageProviderName(poolVO.getStorageProviderName());
|
dataStoreVO.setStorageProviderName(poolVO.getStorageProviderName());
|
||||||
dataStoreVO.setHostAddress(childStoragePoolInfo.getHost());
|
dataStoreVO.setHostAddress(childStoragePoolInfo.getHost());
|
||||||
dataStoreVO.setPoolType(poolVO.getPoolType());
|
dataStoreVO.setPoolType(Storage.StoragePoolType.PreSetup);
|
||||||
dataStoreVO.setPath(childStoragePoolInfo.getHostPath());
|
dataStoreVO.setPath(childStoragePoolInfo.getHostPath());
|
||||||
dataStoreVO.setPort(poolVO.getPort());
|
dataStoreVO.setPort(poolVO.getPort());
|
||||||
dataStoreVO.setName(childStoragePoolInfo.getName());
|
dataStoreVO.setName(childStoragePoolInfo.getName());
|
||||||
@ -127,6 +128,7 @@ public class DefaultHostListener implements HypervisorHostListener {
|
|||||||
dataStoreVO.setUsedBytes(childDataStoreAnswer.getPoolInfo().getCapacityBytes() - childDataStoreAnswer.getPoolInfo().getAvailableBytes());
|
dataStoreVO.setUsedBytes(childDataStoreAnswer.getPoolInfo().getCapacityBytes() - childDataStoreAnswer.getPoolInfo().getAvailableBytes());
|
||||||
dataStoreVO.setHypervisor(poolVO.getHypervisor());
|
dataStoreVO.setHypervisor(poolVO.getHypervisor());
|
||||||
dataStoreVO.setScope(poolVO.getScope());
|
dataStoreVO.setScope(poolVO.getScope());
|
||||||
|
dataStoreVO.setParent(poolVO.getId());
|
||||||
|
|
||||||
Map<String, String> details = new HashMap<>();
|
Map<String, String> details = new HashMap<>();
|
||||||
if(StringUtils.isNotEmpty(childDataStoreAnswer.getPoolType())) {
|
if(StringUtils.isNotEmpty(childDataStoreAnswer.getPoolType())) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user