Handle datastore clusters in list storage pools to list only parent not the children in the Datastore cluster

This commit is contained in:
Harikrishna Patnala 2020-07-22 00:18:51 +05:30
parent b4a23ea5f6
commit c9c38c0f37
5 changed files with 21 additions and 6 deletions

View File

@ -125,4 +125,6 @@ public interface PrimaryDataStoreDao extends GenericDao<StoragePoolVO, Long> {
void deletePoolTags(long poolId);
List<StoragePoolVO> listChildStoragePoolsInDatastoreCluster(long poolId);
Integer countAll();
}

View File

@ -557,5 +557,14 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase<StoragePoolVO, Long>
public List<StoragePoolVO> listChildStoragePoolsInDatastoreCluster(long poolId) {
QueryBuilder<StoragePoolVO> sc = QueryBuilder.create(StoragePoolVO.class);
sc.and(sc.entity().getParent(), Op.EQ, poolId);
return sc.list(); }
return sc.list();
}
@Override
public Integer countAll() {
SearchCriteria<StoragePoolVO> sc = createSearchCriteria();
sc.addAnd("parent", SearchCriteria.Op.EQ, 0);
sc.addAnd("removed", SearchCriteria.Op.NULL);
return getCount(sc);
}
}

View File

@ -181,7 +181,6 @@ import com.cloud.hypervisor.vmware.mo.StoragepodMO;
import com.cloud.hypervisor.vmware.mo.VirtualEthernetCardType;
import com.cloud.hypervisor.vmware.mo.VirtualMachineDiskInfoBuilder;
import com.cloud.hypervisor.vmware.mo.VirtualMachineMO;
import com.cloud.hypervisor.vmware.mo.VirtualStorageObjectManagerMO;
import com.cloud.hypervisor.vmware.mo.VirtualSwitchType;
import com.cloud.hypervisor.vmware.mo.VmwareHypervisorHost;
import com.cloud.hypervisor.vmware.mo.VmwareHypervisorHostNetworkSummary;
@ -227,7 +226,6 @@ import com.cloud.vm.VmDetailConstants;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.vmware.vim25.AboutInfo;
import com.vmware.vim25.AlreadyExistsFaultMsg;
import com.vmware.vim25.ArrayUpdateOperation;
import com.vmware.vim25.BoolPolicy;
import com.vmware.vim25.ComputeResourceSummary;
@ -247,7 +245,6 @@ import com.vmware.vim25.HostCapability;
import com.vmware.vim25.HostHostBusAdapter;
import com.vmware.vim25.HostInternetScsiHba;
import com.vmware.vim25.HostPortGroupSpec;
import com.vmware.vim25.ID;
import com.vmware.vim25.ManagedObjectReference;
import com.vmware.vim25.NasDatastoreInfo;
import com.vmware.vim25.ObjectContent;
@ -269,8 +266,6 @@ import com.vmware.vim25.VAppProductSpec;
import com.vmware.vim25.VAppPropertyInfo;
import com.vmware.vim25.VAppPropertySpec;
import com.vmware.vim25.VMwareDVSPortSetting;
import com.vmware.vim25.VStorageObject;
import com.vmware.vim25.VStorageObjectConfigInfo;
import com.vmware.vim25.VimPortType;
import com.vmware.vim25.VirtualDevice;
import com.vmware.vim25.VirtualDeviceBackingInfo;

View File

@ -2402,6 +2402,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
sb.and("clusterId", sb.entity().getClusterId(), SearchCriteria.Op.EQ);
sb.and("hostAddress", sb.entity().getHostAddress(), SearchCriteria.Op.EQ);
sb.and("scope", sb.entity().getScope(), SearchCriteria.Op.EQ);
sb.and("parent", sb.entity().getParent(), Op.EQ);
SearchCriteria<StoragePoolJoinVO> sc = sb.create();
@ -2439,6 +2440,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
if (scopeType != null) {
sc.setParameters("scope", scopeType.toString());
}
sc.setParameters("parent", 0);
// search Pool details by ids
Pair<List<StoragePoolJoinVO>, Integer> uniquePoolPair = _poolJoinDao.searchAndCount(sc, searchFilter);

View File

@ -139,6 +139,9 @@ public class StoragePoolJoinVO extends BaseViewVO implements InternalIdentity, I
@Column(name = "storage_provider_name")
private String storageProviderName;
@Column(name = "parent")
private Long parent;
/**
* @return the scope
*/
@ -263,4 +266,8 @@ public class StoragePoolJoinVO extends BaseViewVO implements InternalIdentity, I
public String getStorageProviderName() {
return storageProviderName;
}
public Long getParent() {
return parent;
}
}