Repository: cloudstack
Updated Branches:
  refs/heads/master a6f17675d -> bb6fddf43


listVirtualMachines API: ability to search by service offering the vm is 
created from
listVolumes API: ability to search by disk offering the volume is created from


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/bb6fddf4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bb6fddf4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bb6fddf4

Branch: refs/heads/master
Commit: bb6fddf434d9bc8aee6ee74e74652c39cb6e335e
Parents: a6f1767
Author: Alena Prokharchyk <alena.prokharc...@citrix.com>
Authored: Wed Feb 26 16:48:27 2014 -0800
Committer: Alena Prokharchyk <alena.prokharc...@citrix.com>
Committed: Wed Feb 26 16:56:33 2014 -0800

----------------------------------------------------------------------
 .../cloudstack/api/command/user/vm/ListVMsCmd.java  | 11 +++++++++--
 .../api/command/user/volume/ListVolumesCmd.java     | 11 +++++++++--
 .../src/com/cloud/api/query/QueryManagerImpl.java   | 16 ++++++++++++++++
 server/src/com/cloud/server/Criteria.java           |  1 +
 4 files changed, 35 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bb6fddf4/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 54f735d..3c0c8b0 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
@@ -20,8 +20,6 @@ import java.util.ArrayList;
 import java.util.EnumSet;
 import java.util.List;
 
-import org.apache.log4j.Logger;
-
 import org.apache.cloudstack.affinity.AffinityGroupResponse;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandJobType;
@@ -35,11 +33,13 @@ import org.apache.cloudstack.api.response.IsoVmResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.NetworkResponse;
 import org.apache.cloudstack.api.response.PodResponse;
+import org.apache.cloudstack.api.response.ServiceOfferingResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.TemplateResponse;
 import org.apache.cloudstack.api.response.UserVmResponse;
 import org.apache.cloudstack.api.response.VpcResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.log4j.Logger;
 
 import com.cloud.exception.InvalidParameterValueException;
 
@@ -112,6 +112,9 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
     @Parameter(name = ApiConstants.AFFINITY_GROUP_ID, type = CommandType.UUID, 
entityType = AffinityGroupResponse.class, description = "list vms by affinity 
group")
     private Long affinityGroupId;
 
+    @Parameter(name = ApiConstants.SERVICE_OFFERING_ID, type = 
CommandType.UUID, entityType = ServiceOfferingResponse.class, description = 
"list by the service offering", since = "4.4")
+    private Long serviceOffId;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -140,6 +143,10 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd 
{
         return state;
     }
 
+    public Long getServiceOfferingId() {
+        return serviceOffId;
+    }
+
     public Long getZoneId() {
         return zoneId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bb6fddf4/api/src/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
----------------------------------------------------------------------
diff --git 
a/api/src/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java 
b/api/src/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
index 8c998a5..92afff4 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
@@ -16,14 +16,13 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.volume;
 
-import org.apache.log4j.Logger;
-
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandJobType;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
 import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.response.DiskOfferingResponse;
 import org.apache.cloudstack.api.response.HostResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.PodResponse;
@@ -31,6 +30,7 @@ import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.UserVmResponse;
 import org.apache.cloudstack.api.response.VolumeResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.log4j.Logger;
 
 @APICommand(name = "listVolumes", description = "Lists all volumes.", 
responseObject = VolumeResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@@ -72,6 +72,9 @@ public class ListVolumesCmd extends 
BaseListTaggedResourcesCmd {
                authorized = {RoleType.Admin})
     private Long storageId;
 
+    @Parameter(name = ApiConstants.DISK_OFFERING_ID, type = CommandType.UUID, 
entityType = DiskOfferingResponse.class, description = "list volumes by disk 
offering")
+    private Long diskOfferingId;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -92,6 +95,10 @@ public class ListVolumesCmd extends 
BaseListTaggedResourcesCmd {
         return podId;
     }
 
+    public Long getDiskOfferingId() {
+        return diskOfferingId;
+    }
+
     public String getType() {
         return type;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bb6fddf4/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 4d5a42f..6e2b36c 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -735,6 +735,7 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
         c.addCriteria(Criteria.ISO_ID, cmd.getIsoId());
         c.addCriteria(Criteria.VPC_ID, cmd.getVpcId());
         c.addCriteria(Criteria.AFFINITY_GROUP_ID, cmd.getAffinityGroupId());
+        c.addCriteria(Criteria.SERVICE_OFFERING_ID, 
cmd.getServiceOfferingId());
 
         if (domainId != null) {
             c.addCriteria(Criteria.DOMAINID, domainId);
@@ -791,6 +792,7 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
         Object isoId = c.getCriteria(Criteria.ISO_ID);
         Object vpcId = c.getCriteria(Criteria.VPC_ID);
         Object affinityGroupId = c.getCriteria(Criteria.AFFINITY_GROUP_ID);
+        Object serviceOffId = c.getCriteria(Criteria.SERVICE_OFFERING_ID);
 
         sb.and("displayName", sb.entity().getDisplayName(), 
SearchCriteria.Op.LIKE);
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
@@ -807,6 +809,10 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
         sb.and("isoId", sb.entity().getIsoId(), SearchCriteria.Op.EQ);
         sb.and("instanceGroupId", sb.entity().getInstanceGroupId(), 
SearchCriteria.Op.EQ);
 
+        if (serviceOffId != null) {
+            sb.and("serviceOfferingId", sb.entity().getServiceOfferingId(), 
SearchCriteria.Op.EQ);
+        }
+
         if (groupId != null && (Long)groupId != -1) {
             sb.and("instanceGroupId", sb.entity().getInstanceGroupId(), 
SearchCriteria.Op.EQ);
         }
@@ -862,6 +868,10 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
             sc.addAnd("displayName", SearchCriteria.Op.SC, ssc);
         }
 
+        if (serviceOffId != null) {
+            sc.setParameters("serviceOfferingId", serviceOffId);
+        }
+
         if (id != null) {
             sc.setParameters("id", id);
         }
@@ -1612,6 +1622,7 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
         Map<String, String> tags = cmd.getTags();
         boolean isRootAdmin = _accountMgr.isRootAdmin(caller.getType());
         Long storageId = cmd.getStorageId();
+        Long diskOffId = cmd.getDiskOfferingId();
 
         Long zoneId = cmd.getZoneId();
         Long podId = null;
@@ -1645,6 +1656,7 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
         sb.and("dataCenterId", sb.entity().getDataCenterId(), 
SearchCriteria.Op.EQ);
         sb.and("podId", sb.entity().getPodId(), SearchCriteria.Op.EQ);
         sb.and("storageId", sb.entity().getPoolId(), SearchCriteria.Op.EQ);
+        sb.and("diskOfferingId", sb.entity().getDiskOfferingId(), 
SearchCriteria.Op.EQ);
         // Only return volumes that are not destroyed
         sb.and("state", sb.entity().getState(), SearchCriteria.Op.NEQ);
         sb.and("systemUse", sb.entity().isSystemUse(), SearchCriteria.Op.NEQ);
@@ -1685,6 +1697,10 @@ public class QueryManagerImpl extends ManagerBase 
implements QueryService {
             sc.addAnd("tagKey", SearchCriteria.Op.SC, tagSc);
         }
 
+        if (diskOffId != null) {
+            sc.setParameters("diskOfferingId", diskOffId);
+        }
+
         if (id != null) {
             sc.setParameters("id", id);
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bb6fddf4/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 6ff8a28..de29e3e 100755
--- a/server/src/com/cloud/server/Criteria.java
+++ b/server/src/com/cloud/server/Criteria.java
@@ -84,6 +84,7 @@ public class Criteria {
     public static final String ISO_ID = "isoid";
     public static final String VPC_ID = "vpcId";
     public static final String AFFINITY_GROUP_ID = "affinitygroupid";
+    public static final String SERVICE_OFFERING_ID = "serviceofferingid";
 
     public Criteria(String orderBy, Boolean ascending, Long offset, Long 
limit) {
         this.offset = offset;

Reply via email to