mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-2120: mixed zone management - (1) extend listVirtualMachines API to to take in zonetype. (2) UI: populate Instances list page with instances whose zonetype matches selected option in zone type dropdown on top menu.
This commit is contained in:
parent
b7f5197c85
commit
cdd459bb0b
|
|
@ -79,6 +79,9 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
|
|||
description="the availability zone ID")
|
||||
private Long zoneId;
|
||||
|
||||
@Parameter(name=ApiConstants.ZONE_TYPE, type=CommandType.STRING, description="the network type of the zone that the virtual machine belongs to")
|
||||
private String zoneType;
|
||||
|
||||
@Parameter(name=ApiConstants.FOR_VIRTUAL_NETWORK, type=CommandType.BOOLEAN,
|
||||
description="list by network type; true if need to list vms using Virtual Network, false otherwise")
|
||||
private Boolean forVirtualNetwork;
|
||||
|
|
@ -147,6 +150,10 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
|
|||
return zoneId;
|
||||
}
|
||||
|
||||
public String getZoneType() {
|
||||
return zoneType;
|
||||
}
|
||||
|
||||
public Boolean getForVirtualNetwork() {
|
||||
return forVirtualNetwork;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -632,6 +632,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
|
|||
c.addCriteria(Criteria.NAME, cmd.getInstanceName());
|
||||
c.addCriteria(Criteria.STATE, cmd.getState());
|
||||
c.addCriteria(Criteria.DATACENTERID, cmd.getZoneId());
|
||||
c.addCriteria(Criteria.DATACENTERTYPE, cmd.getZoneType());
|
||||
c.addCriteria(Criteria.GROUPID, cmd.getGroupId());
|
||||
c.addCriteria(Criteria.FOR_VIRTUAL_NETWORK, cmd.getForVirtualNetwork());
|
||||
c.addCriteria(Criteria.NETWORKID, cmd.getNetworkId());
|
||||
|
|
@ -680,7 +681,8 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
|
|||
Object name = c.getCriteria(Criteria.NAME);
|
||||
Object state = c.getCriteria(Criteria.STATE);
|
||||
Object notState = c.getCriteria(Criteria.NOTSTATE);
|
||||
Object zone = c.getCriteria(Criteria.DATACENTERID);
|
||||
Object zoneId = c.getCriteria(Criteria.DATACENTERID);
|
||||
Object zoneType = c.getCriteria(Criteria.DATACENTERTYPE);
|
||||
Object pod = c.getCriteria(Criteria.PODID);
|
||||
Object hostId = c.getCriteria(Criteria.HOSTID);
|
||||
Object hostName = c.getCriteria(Criteria.HOSTNAME);
|
||||
|
|
@ -703,6 +705,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
|
|||
sb.and("stateNEQ", sb.entity().getState(), SearchCriteria.Op.NEQ);
|
||||
sb.and("stateNIN", sb.entity().getState(), SearchCriteria.Op.NIN);
|
||||
sb.and("dataCenterId", sb.entity().getDataCenterId(), SearchCriteria.Op.EQ);
|
||||
sb.and("dataCenterType", sb.entity().getDataCenterType(), SearchCriteria.Op.EQ);
|
||||
sb.and("podId", sb.entity().getPodId(), SearchCriteria.Op.EQ);
|
||||
sb.and("hypervisorType", sb.entity().getHypervisorType(), SearchCriteria.Op.EQ);
|
||||
sb.and("hostIdEQ", sb.entity().getHostId(), SearchCriteria.Op.EQ);
|
||||
|
|
@ -809,13 +812,18 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
|
|||
sc.setParameters("stateNIN", "Destroyed", "Expunging");
|
||||
}
|
||||
|
||||
if (zone != null) {
|
||||
sc.setParameters("dataCenterId", zone);
|
||||
if (zoneId != null) {
|
||||
sc.setParameters("dataCenterId", zoneId);
|
||||
|
||||
if (state == null) {
|
||||
sc.setParameters("stateNEQ", "Destroyed");
|
||||
}
|
||||
}
|
||||
|
||||
if (zoneType != null) {
|
||||
sc.setParameters("dataCenterType", zoneType);
|
||||
}
|
||||
|
||||
if (pod != null) {
|
||||
sc.setParameters("podId", pod);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ public class Criteria {
|
|||
public static final String NOTSTATE = "notState";
|
||||
public static final String STATE = "state";
|
||||
public static final String DATACENTERID = "dataCenterId";
|
||||
public static final String DATACENTERTYPE = "dataCenterType";
|
||||
public static final String DESCRIPTION = "description";
|
||||
public static final String PODID = "podId";
|
||||
public static final String CLUSTERID = "clusterId";
|
||||
|
|
|
|||
|
|
@ -194,38 +194,26 @@
|
|||
}
|
||||
|
||||
if("hosts" in args.context) {
|
||||
$.extend(data, {
|
||||
hostid: args.context.hosts[0].id
|
||||
});
|
||||
}
|
||||
|
||||
$.extend(data, {
|
||||
hostid: args.context.hosts[0].id
|
||||
});
|
||||
}
|
||||
|
||||
if(args.context.zoneType != null && args.context.zoneType.length > 0) { //Basic type or Advanced type
|
||||
$.extend(data, {
|
||||
zonetype: args.context.zoneType
|
||||
});
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: createURL('listVirtualMachines'),
|
||||
data: data,
|
||||
success: function(json) {
|
||||
var items = json.listvirtualmachinesresponse.virtualmachine;
|
||||
// Code for hiding "Expunged VMs"
|
||||
/* if(items != null) {
|
||||
var i=0;
|
||||
for( i=0;i< items.length;i++){
|
||||
if(items[i].state == 'Expunging')
|
||||
args.response.success ({
|
||||
|
||||
});
|
||||
else {
|
||||
var items = json.listvirtualmachinesresponse.virtualmachine;
|
||||
args.response.success({
|
||||
actionFilter: vmActionfilter,
|
||||
data: items[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
else {*/
|
||||
args.response.success({
|
||||
actionFilter: vmActionfilter,
|
||||
data: items
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue