You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/25 16:45:31 UTC
[05/51] [abbrv] git commit: updated refs/heads/marvin_refactor to
dbcfc66
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.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cdd459bb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cdd459bb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cdd459bb
Branch: refs/heads/marvin_refactor
Commit: cdd459bb0bfb502df056a553a42735d4bd8f0e31
Parents: b7f5197
Author: Jessica Wang <je...@apache.org>
Authored: Wed Apr 24 10:35:47 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Wed Apr 24 10:38:28 2013 -0700
----------------------------------------------------------------------
.../cloudstack/api/command/user/vm/ListVMsCmd.java | 7 +++
.../src/com/cloud/api/query/QueryManagerImpl.java | 14 ++++-
server/src/com/cloud/server/Criteria.java | 1 +
ui/scripts/instances.js | 38 +++++----------
4 files changed, 32 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cdd459bb/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
index dae9df3..d93d657 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
@@ -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;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cdd459bb/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 2298252..d0b4237 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -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);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cdd459bb/server/src/com/cloud/server/Criteria.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/Criteria.java b/server/src/com/cloud/server/Criteria.java
index d54aaf5..cbe022a 100755
--- a/server/src/com/cloud/server/Criteria.java
+++ b/server/src/com/cloud/server/Criteria.java
@@ -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";
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cdd459bb/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index 3a43c60..0c4c7d2 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -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
- });
-
+ });
}
});
},