Adding affinitygroupid search parameter to listVMsCmd

This commit is contained in:
Prachi Damle 2013-04-19 10:49:04 -07:00
parent fc08c2372c
commit ff4a4876c7
4 changed files with 30 additions and 9 deletions

View File

@ -479,6 +479,7 @@ public class ApiConstants {
public static final String AFFINITY_GROUP_IDS = "affinitygroupids";
public static final String AFFINITY_GROUP_NAMES = "affinitygroupnames";
public static final String ASA_INSIDE_PORT_PROFILE = "insideportprofile";
public static final String AFFINITY_GROUP_ID = "affinitygroupid";
public enum HostDetails {
all, capacity, events, stats, min;

View File

@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
@ -110,6 +111,10 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
@Parameter(name=ApiConstants.VPC_ID, type=CommandType.UUID, entityType=VpcResponse.class,
description="list vms by vpc")
private Long vpcId;
@Parameter(name = ApiConstants.AFFINITY_GROUP_ID, type = CommandType.UUID, entityType = AffinityGroupResponse.class, description = "list vms by affinity group")
private Long affinityGroupId;
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
@ -174,6 +179,10 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
return vpcId;
}
public Long getAffinityGroupId() {
return affinityGroupId;
}
public EnumSet<VMDetails> getDetails() throws InvalidParameterValueException {
EnumSet<VMDetails> dv;
if (viewDetails==null || viewDetails.size() <=0){

View File

@ -638,6 +638,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
c.addCriteria(Criteria.TEMPLATE_ID, cmd.getTemplateId());
c.addCriteria(Criteria.ISO_ID, cmd.getIsoId());
c.addCriteria(Criteria.VPC_ID, cmd.getVpcId());
c.addCriteria(Criteria.AFFINITY_GROUP_ID, cmd.getAffinityGroupId());
if (domainId != null) {
c.addCriteria(Criteria.DOMAINID, domainId);
@ -693,6 +694,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
Object templateId = c.getCriteria(Criteria.TEMPLATE_ID);
Object isoId = c.getCriteria(Criteria.ISO_ID);
Object vpcId = c.getCriteria(Criteria.VPC_ID);
Object affinityGroupId = c.getCriteria(Criteria.AFFINITY_GROUP_ID);
sb.and("displayName", sb.entity().getDisplayName(), SearchCriteria.Op.LIKE);
sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
@ -733,6 +735,10 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
sb.and("poolId", sb.entity().getPoolId(), SearchCriteria.Op.EQ);
}
if (affinityGroupId != null) {
sb.and("affinityGroupId", sb.entity().getAffinityGroupId(), SearchCriteria.Op.EQ);
}
// populate the search criteria with the values passed in
SearchCriteria<UserVmJoinVO> sc = sb.create();
@ -830,6 +836,10 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
sc.setParameters("poolId", storageId);
}
if (affinityGroupId != null) {
sc.setParameters("affinityGroupId", affinityGroupId);
}
// search vm details by ids
Pair<List<UserVmJoinVO>, Integer> uniqueVmPair = _userVmJoinDao.searchAndCount(sc, searchFilter);
Integer count = uniqueVmPair.second();

View File

@ -82,6 +82,7 @@ public class Criteria {
public static final String TEMPLATE_ID = "templateid";
public static final String ISO_ID = "isoid";
public static final String VPC_ID = "vpcId";
public static final String AFFINITY_GROUP_ID = "affinitygroupid";
public Criteria(String orderBy, Boolean ascending, Long offset, Long limit) {
this.offset = offset;