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
-             });
-
+            });
           }
         });
       },