[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-10276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16480411#comment-16480411
 ] 

ASF GitHub Bot commented on CLOUDSTACK-10276:
---------------------------------------------

DaanHoogland closed pull request #2639: [CLOUDSTACK-10276] listVolumes not 
working when storage UUID is not a UUID
URL: https://github.com/apache/cloudstack/pull/2639
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/api/src/org/apache/cloudstack/api/command/admin/volume/ListVolumesCmdByAdmin.java
 
b/api/src/org/apache/cloudstack/api/command/admin/volume/ListVolumesCmdByAdmin.java
index 5fe5bfea485..add22713931 100644
--- 
a/api/src/org/apache/cloudstack/api/command/admin/volume/ListVolumesCmdByAdmin.java
+++ 
b/api/src/org/apache/cloudstack/api/command/admin/volume/ListVolumesCmdByAdmin.java
@@ -16,50 +16,15 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.volume;
 
-import org.apache.log4j.Logger;
-
-import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ResponseObject.ResponseView;
 import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
-import org.apache.cloudstack.api.response.PodResponse;
-import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.VolumeResponse;
 
 import com.cloud.storage.Volume;
 
-
-@APICommand(name = "listVolumes", description = "Lists all volumes.", 
responseObject = VolumeResponse.class, responseView = ResponseView.Full, 
entityType = {Volume.class},
-        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
+@APICommand(name = "listVolumes", description = "Lists all volumes.", 
responseObject = VolumeResponse.class, responseView = ResponseView.Full, 
entityType = {
+        Volume.class}, requestHasSensitiveInfo = false, 
responseHasSensitiveInfo = false)
 public class ListVolumesCmdByAdmin extends ListVolumesCmd {
-    public static final Logger s_logger = 
Logger.getLogger(ListVolumesCmdByAdmin.class.getName());
-
-    @Parameter(name=ApiConstants.POD_ID, type=CommandType.UUID, 
entityType=PodResponse.class,
-            description="the pod id the disk volume belongs to")
-    private Long podId;
-
-
-    @Parameter(name=ApiConstants.STORAGE_ID, type=CommandType.UUID, 
entityType=StoragePoolResponse.class,
-            description="the ID of the storage pool, available to ROOT admin 
only", since="4.3", authorized = { RoleType.Admin })
-    private Long storageId;
-
-
-    /////////////////////////////////////////////////////
-    /////////////////// Accessors ///////////////////////
-    /////////////////////////////////////////////////////
-
-
-    @Override
-    public Long getPodId() {
-        return podId;
-    }
-
-
-    @Override
-    public Long getStorageId() {
-        return storageId;
-    }
 
 }
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 554e029fc48..c858f494fef 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,9 +16,8 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.volume;
 
-import org.apache.log4j.Logger;
-
 import java.util.List;
+
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandJobType;
@@ -35,11 +34,12 @@
 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;
 
 import com.cloud.storage.Volume;
 
-@APICommand(name = "listVolumes", description = "Lists all volumes.", 
responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, 
entityType = {Volume.class},
-        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
+@APICommand(name = "listVolumes", description = "Lists all volumes.", 
responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, 
entityType = {
+        Volume.class}, requestHasSensitiveInfo = false, 
responseHasSensitiveInfo = false)
 public class ListVolumesCmd extends BaseListTaggedResourcesCmd {
     public static final Logger s_logger = 
Logger.getLogger(ListVolumesCmd.class.getName());
 
@@ -55,7 +55,7 @@
     @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = 
VolumeResponse.class, description = "the ID of the disk volume")
     private Long id;
 
-    @Parameter(name=ApiConstants.IDS, type=CommandType.LIST, 
collectionType=CommandType.UUID, entityType=VolumeResponse.class, 
description="the IDs of the volumes, mutually exclusive with id", since = "4.9")
+    @Parameter(name = ApiConstants.IDS, type = CommandType.LIST, 
collectionType = CommandType.UUID, entityType = VolumeResponse.class, 
description = "the IDs of the volumes, mutually exclusive with id", since = 
"4.9")
     private List<Long> ids;
 
     @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, 
description = "the name of the disk volume")
@@ -76,22 +76,15 @@
     @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, 
entityType = ZoneResponse.class, description = "the ID of the availability 
zone")
     private Long zoneId;
 
-    @Parameter(name = ApiConstants.STORAGE_ID,
-               type = CommandType.UUID,
-               entityType = StoragePoolResponse.class,
-               description = "the ID of the storage pool, available to ROOT 
admin only",
-               since = "4.3",
-               authorized = {RoleType.Admin})
-    private Long storageId;
-
-    @Parameter(name = ApiConstants.DISK_OFFERING_ID,
-            type = CommandType.UUID,
-            entityType = DiskOfferingResponse.class,
-            description = "list volumes by disk offering",
-            since = "4.4")
+    @Parameter(name = ApiConstants.STORAGE_ID, type = CommandType.STRING, 
entityType = StoragePoolResponse.class, description = "the ID of the storage 
pool, available to ROOT admin only", since = "4.3", authorized = {
+            RoleType.Admin})
+    private String storageId;
+
+    @Parameter(name = ApiConstants.DISK_OFFERING_ID, type = CommandType.UUID, 
entityType = DiskOfferingResponse.class, description = "list volumes by disk 
offering", since = "4.4")
     private Long diskOfferingId;
 
-    @Parameter(name = ApiConstants.DISPLAY_VOLUME, type = CommandType.BOOLEAN, 
description = "list resources by display flag; only ROOT admin is eligible to 
pass this parameter", since = "4.4", authorized = {RoleType.Admin})
+    @Parameter(name = ApiConstants.DISPLAY_VOLUME, type = CommandType.BOOLEAN, 
description = "list resources by display flag; only ROOT admin is eligible to 
pass this parameter", since = "4.4", authorized = {
+            RoleType.Admin})
     private Boolean display;
 
     /////////////////////////////////////////////////////
@@ -134,7 +127,7 @@ public Long getZoneId() {
         return zoneId;
     }
 
-    public Long getStorageId() {
+    public String getStorageId() {
         return storageId;
     }
 
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java 
b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 9c728ef0f78..9d24417e732 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -367,7 +367,8 @@
     @Inject
     AffinityGroupDomainMapDao _affinityGroupDomainMapDao;
 
-    @Inject NetworkDetailsDao _networkDetailsDao;
+    @Inject
+    NetworkDetailsDao _networkDetailsDao;
 
     @Inject
     ResourceTagDao _resourceTagDao;
@@ -386,8 +387,7 @@
     public ListResponse<UserResponse> searchForUsers(ListUsersCmd cmd) throws 
PermissionDeniedException {
         Pair<List<UserAccountJoinVO>, Integer> result = 
searchForUsersInternal(cmd);
         ListResponse<UserResponse> response = new ListResponse<UserResponse>();
-        List<UserResponse> userResponses =
-            
ViewResponseHelper.createUserResponse(CallContext.current().getCallingAccount().getDomainId(),
+        List<UserResponse> userResponses = 
ViewResponseHelper.createUserResponse(CallContext.current().getCallingAccount().getDomainId(),
                 result.first().toArray(new 
UserAccountJoinVO[result.first().size()]));
         response.setResponses(userResponses, result.second());
         return response;
@@ -407,10 +407,8 @@
             }
             id = currentId;
         }
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
null, permittedAccounts,
-                domainIdRecursiveListProject, listAll, false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
null, permittedAccounts, domainIdRecursiveListProject, listAll, false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
@@ -424,8 +422,7 @@
         Object keyword = cmd.getKeyword();
 
         SearchBuilder<UserAccountJoinVO> sb = 
_userAccountJoinDao.createSearchBuilder();
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
         sb.and("username", sb.entity().getUsername(), SearchCriteria.Op.LIKE);
         if (id != null && id == 1) {
             // system user should NOT be searchable
@@ -451,8 +448,7 @@
         SearchCriteria<UserAccountJoinVO> sc = sb.create();
 
         // building ACL condition
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (keyword != null) {
             SearchCriteria<UserAccountJoinVO> ssc = 
_userAccountJoinDao.createSearchCriteria();
@@ -522,18 +518,15 @@
         Integer duration = cmd.getDuration();
         Long startId = cmd.getStartId();
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, cmd.listAll(), false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, 
cmd.listAll(), false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
 
         Filter searchFilter = new Filter(EventJoinVO.class, "createDate", 
false, cmd.getStartIndex(), cmd.getPageSizeVal());
         SearchBuilder<EventJoinVO> sb = _eventJoinDao.createSearchBuilder();
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
         sb.and("levelL", sb.entity().getLevel(), SearchCriteria.Op.LIKE);
@@ -550,8 +543,7 @@
 
         SearchCriteria<EventJoinVO> sc = sb.create();
         // building ACL condition
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         // For end users display only enabled events
         if (!_accountMgr.isRootAdmin(caller.getId())) {
@@ -645,19 +637,16 @@
         String customerName = cmd.getCustomer();
         boolean listAll = cmd.listAll();
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject =
-            new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
 
-        _accountMgr.buildACLSearchParameters(caller, null, 
cmd.getAccountName(), cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, listAll, false);
+        _accountMgr.buildACLSearchParameters(caller, null, 
cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, 
domainIdRecursiveListProject, listAll, false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
         Filter searchFilter = new Filter(ResourceTagJoinVO.class, 
"resourceType", false, cmd.getStartIndex(), cmd.getPageSizeVal());
 
         SearchBuilder<ResourceTagJoinVO> sb = 
_resourceTagJoinDao.createSearchBuilder();
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("key", sb.entity().getKey(), SearchCriteria.Op.EQ);
         sb.and("value", sb.entity().getValue(), SearchCriteria.Op.EQ);
@@ -672,8 +661,7 @@
 
         // now set the SC criteria...
         SearchCriteria<ResourceTagJoinVO> sc = sb.create();
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (key != null) {
             sc.setParameters("key", key);
@@ -722,10 +710,8 @@
         Account caller = CallContext.current().getCallingAccount();
         List<Long> permittedAccounts = new ArrayList<Long>();
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, cmd.listAll(), false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, 
cmd.listAll(), false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
@@ -733,16 +719,13 @@
         Filter searchFilter = new Filter(InstanceGroupJoinVO.class, "id", 
true, cmd.getStartIndex(), cmd.getPageSizeVal());
 
         SearchBuilder<InstanceGroupJoinVO> sb = 
_vmGroupJoinDao.createSearchBuilder();
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
         sb.and("name", sb.entity().getName(), SearchCriteria.Op.LIKE);
 
         SearchCriteria<InstanceGroupJoinVO> sc = sb.create();
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
-
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (keyword != null) {
             SearchCriteria<InstanceGroupJoinVO> ssc = 
_vmGroupJoinDao.createSearchCriteria();
@@ -769,8 +752,7 @@
         if (cmd instanceof ListVMsCmdByAdmin) {
             respView = ResponseView.Full;
         }
-        List<UserVmResponse> vmResponses = 
ViewResponseHelper.createUserVmResponse(respView, "virtualmachine", 
cmd.getDetails(),
-                result.first().toArray(new 
UserVmJoinVO[result.first().size()]));
+        List<UserVmResponse> vmResponses = 
ViewResponseHelper.createUserVmResponse(respView, "virtualmachine", 
cmd.getDetails(), result.first().toArray(new 
UserVmJoinVO[result.first().size()]));
 
         response.setResponses(vmResponses, result.second());
         return response;
@@ -785,16 +767,13 @@
         Long userId = cmd.getUserId();
         Map<String, String> tags = cmd.getTags();
         Boolean display = cmd.getDisplay();
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, listAll, false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, 
false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
 
-        Filter searchFilter = new Filter(UserVmJoinVO.class, "id", true, 
cmd.getStartIndex(),
-                cmd.getPageSizeVal());
+        Filter searchFilter = new Filter(UserVmJoinVO.class, "id", true, 
cmd.getStartIndex(), cmd.getPageSizeVal());
 
         List<Long> ids = null;
         if (cmd.getId() != null) {
@@ -811,8 +790,7 @@
         SearchBuilder<UserVmJoinVO> sb = _userVmJoinDao.createSearchBuilder();
         sb.select(null, Func.DISTINCT, sb.entity().getId()); // select 
distinct ids
 
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         String hypervisor = cmd.getHypervisor();
         Object name = cmd.getName();
@@ -906,14 +884,13 @@
         SearchCriteria<UserVmJoinVO> sc = sb.create();
 
         // building ACL condition
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (tags != null && !tags.isEmpty()) {
             SearchCriteria<UserVmJoinVO> tagSc = 
_userVmJoinDao.createSearchCriteria();
-            for (Map.Entry<String,String> entry : tags.entrySet()) {
+            for (Map.Entry<String, String> entry : tags.entrySet()) {
                 SearchCriteria<UserVmJoinVO> tsc = 
_userVmJoinDao.createSearchCriteria();
-                tsc.addAnd("tagKey", SearchCriteria.Op.EQ,entry.getKey());
+                tsc.addAnd("tagKey", SearchCriteria.Op.EQ, entry.getKey());
                 tsc.addAnd("tagValue", SearchCriteria.Op.EQ, entry.getValue());
                 tagSc.addOr("tagKey", SearchCriteria.Op.SC, tsc);
             }
@@ -1001,20 +978,20 @@
         if (cmd instanceof ListVMsCmdByAdmin) {
             ListVMsCmdByAdmin aCmd = (ListVMsCmdByAdmin)cmd;
             if (aCmd.getPodId() != null) {
-            sc.setParameters("podId", pod);
+                sc.setParameters("podId", pod);
 
-            if (state == null) {
-                sc.setParameters("stateNEQ", "Destroyed");
+                if (state == null) {
+                    sc.setParameters("stateNEQ", "Destroyed");
+                }
             }
-        }
 
-        if (hostId != null) {
-            sc.setParameters("hostIdEQ", hostId);
-        }
+            if (hostId != null) {
+                sc.setParameters("hostIdEQ", hostId);
+            }
 
-        if (storageId != null) {
-            sc.setParameters("poolId", storageId);
-        }
+            if (storageId != null) {
+                sc.setParameters("poolId", storageId);
+            }
         }
 
         if (!isRootAdmin) {
@@ -1046,8 +1023,7 @@
         return response;
     }
 
-    private Pair<List<SecurityGroupJoinVO>, Integer> 
searchForSecurityGroupsInternal(ListSecurityGroupsCmd cmd) throws 
PermissionDeniedException,
-        InvalidParameterValueException {
+    private Pair<List<SecurityGroupJoinVO>, Integer> 
searchForSecurityGroupsInternal(ListSecurityGroupsCmd cmd) throws 
PermissionDeniedException, InvalidParameterValueException {
         Account caller = CallContext.current().getCallingAccount();
         Long instanceId = cmd.getVirtualMachineId();
         String securityGroup = cmd.getSecurityGroupName();
@@ -1065,10 +1041,8 @@
             return listSecurityGroupRulesByVM(instanceId.longValue(), 
cmd.getStartIndex(), cmd.getPageSizeVal());
         }
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, cmd.listAll(), false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, 
cmd.listAll(), false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
@@ -1077,15 +1051,13 @@
         SearchBuilder<SecurityGroupJoinVO> sb = 
_securityGroupJoinDao.createSearchBuilder();
         sb.select(null, Func.DISTINCT, sb.entity().getId()); // select distinct
         // ids
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
         sb.and("name", sb.entity().getName(), SearchCriteria.Op.EQ);
 
         SearchCriteria<SecurityGroupJoinVO> sc = sb.create();
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (id != null) {
             sc.setParameters("id", id);
@@ -1151,9 +1123,8 @@
 
     @Override
     public ListResponse<DomainRouterResponse> searchForRouters(ListRoutersCmd 
cmd) {
-        Pair<List<DomainRouterJoinVO>, Integer> result =
-            searchForRoutersInternal(cmd, cmd.getId(), cmd.getRouterName(), 
cmd.getState(), cmd.getZoneId(), cmd.getPodId(), cmd.getClusterId(), 
cmd.getHostId(),
-                cmd.getKeyword(), cmd.getNetworkId(), cmd.getVpcId(), 
cmd.getForVpc(), cmd.getRole(), cmd.getVersion());
+        Pair<List<DomainRouterJoinVO>, Integer> result = 
searchForRoutersInternal(cmd, cmd.getId(), cmd.getRouterName(), cmd.getState(), 
cmd.getZoneId(), cmd.getPodId(), cmd.getClusterId(),
+                cmd.getHostId(), cmd.getKeyword(), cmd.getNetworkId(), 
cmd.getVpcId(), cmd.getForVpc(), cmd.getRole(), cmd.getVersion());
         ListResponse<DomainRouterResponse> response = new 
ListResponse<DomainRouterResponse>();
 
         List<DomainRouterResponse> routerResponses = 
ViewResponseHelper.createDomainRouterResponse(result.first().toArray(new 
DomainRouterJoinVO[result.first().size()]));
@@ -1163,9 +1134,8 @@
 
     @Override
     public ListResponse<DomainRouterResponse> 
searchForInternalLbVms(ListInternalLBVMsCmd cmd) {
-        Pair<List<DomainRouterJoinVO>, Integer> result =
-            searchForRoutersInternal(cmd, cmd.getId(), cmd.getRouterName(), 
cmd.getState(), cmd.getZoneId(), cmd.getPodId(), null, cmd.getHostId(), 
cmd.getKeyword(),
-                cmd.getNetworkId(), cmd.getVpcId(), cmd.getForVpc(), 
cmd.getRole(), null);
+        Pair<List<DomainRouterJoinVO>, Integer> result = 
searchForRoutersInternal(cmd, cmd.getId(), cmd.getRouterName(), cmd.getState(), 
cmd.getZoneId(), cmd.getPodId(), null, cmd.getHostId(),
+                cmd.getKeyword(), cmd.getNetworkId(), cmd.getVpcId(), 
cmd.getForVpc(), cmd.getRole(), null);
         ListResponse<DomainRouterResponse> response = new 
ListResponse<DomainRouterResponse>();
 
         List<DomainRouterResponse> routerResponses = 
ViewResponseHelper.createDomainRouterResponse(result.first().toArray(new 
DomainRouterJoinVO[result.first().size()]));
@@ -1173,21 +1143,18 @@
         return response;
     }
 
-    private Pair<List<DomainRouterJoinVO>, Integer> 
searchForRoutersInternal(BaseListProjectAndAccountResourcesCmd cmd, Long id, 
String name, String state, Long zoneId,
-        Long podId, Long clusterId, Long hostId, String keyword, Long 
networkId, Long vpcId, Boolean forVpc, String role, String version) {
+    private Pair<List<DomainRouterJoinVO>, Integer> 
searchForRoutersInternal(BaseListProjectAndAccountResourcesCmd cmd, Long id, 
String name, String state, Long zoneId, Long podId, Long clusterId,
+            Long hostId, String keyword, Long networkId, Long vpcId, Boolean 
forVpc, String role, String version) {
 
         Account caller = CallContext.current().getCallingAccount();
         List<Long> permittedAccounts = new ArrayList<Long>();
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, cmd.listAll(), false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, 
cmd.listAll(), false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
-        Filter searchFilter = new Filter(DomainRouterJoinVO.class, "id", true, 
cmd.getStartIndex(),
-                cmd.getPageSizeVal());
+        Filter searchFilter = new Filter(DomainRouterJoinVO.class, "id", true, 
cmd.getStartIndex(), cmd.getPageSizeVal());
 
         SearchBuilder<DomainRouterJoinVO> sb = 
_routerJoinDao.createSearchBuilder();
         sb.select(null, Func.DISTINCT, sb.entity().getId()); // select distinct
@@ -1195,8 +1162,7 @@
         // number of
         // records with
         // pagination
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("name", sb.entity().getInstanceName(), SearchCriteria.Op.LIKE);
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
@@ -1223,8 +1189,7 @@
         }
 
         SearchCriteria<DomainRouterJoinVO> sc = sb.create();
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (keyword != null) {
             SearchCriteria<DomainRouterJoinVO> ssc = 
_routerJoinDao.createSearchCriteria();
@@ -1438,8 +1403,7 @@
     public ListResponse<ProjectInvitationResponse> 
listProjectInvitations(ListProjectInvitationsCmd cmd) {
         Pair<List<ProjectInvitationJoinVO>, Integer> invites = 
listProjectInvitationsInternal(cmd);
         ListResponse<ProjectInvitationResponse> response = new 
ListResponse<ProjectInvitationResponse>();
-        List<ProjectInvitationResponse> projectInvitationResponses =
-            
ViewResponseHelper.createProjectInvitationResponse(invites.first().toArray(new 
ProjectInvitationJoinVO[invites.first().size()]));
+        List<ProjectInvitationResponse> projectInvitationResponses = 
ViewResponseHelper.createProjectInvitationResponse(invites.first().toArray(new 
ProjectInvitationJoinVO[invites.first().size()]));
 
         response.setResponses(projectInvitationResponses, invites.second());
         return response;
@@ -1460,18 +1424,15 @@
         Account caller = CallContext.current().getCallingAccount();
         List<Long> permittedAccounts = new ArrayList<Long>();
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                domainId, isRecursive, null);
-        _accountMgr.buildACLSearchParameters(caller, id, accountName, 
projectId, permittedAccounts,
-                domainIdRecursiveListProject, listAll, true);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(domainId, isRecursive, null);
+        _accountMgr.buildACLSearchParameters(caller, id, accountName, 
projectId, permittedAccounts, domainIdRecursiveListProject, listAll, true);
         domainId = domainIdRecursiveListProject.first();
         isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
 
         Filter searchFilter = new Filter(ProjectInvitationJoinVO.class, "id", 
true, startIndex, pageSizeVal);
         SearchBuilder<ProjectInvitationJoinVO> sb = 
_projectInvitationJoinDao.createSearchBuilder();
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("projectId", sb.entity().getProjectId(), SearchCriteria.Op.EQ);
         sb.and("state", sb.entity().getState(), SearchCriteria.Op.EQ);
@@ -1479,8 +1440,7 @@
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
 
         SearchCriteria<ProjectInvitationJoinVO> sc = sb.create();
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (projectId != null) {
             sc.setParameters("projectId", projectId);
@@ -1507,8 +1467,7 @@
     public ListResponse<ProjectAccountResponse> 
listProjectAccounts(ListProjectAccountsCmd cmd) {
         Pair<List<ProjectAccountJoinVO>, Integer> projectAccounts = 
listProjectAccountsInternal(cmd);
         ListResponse<ProjectAccountResponse> response = new 
ListResponse<ProjectAccountResponse>();
-        List<ProjectAccountResponse> projectResponses =
-            
ViewResponseHelper.createProjectAccountResponse(projectAccounts.first().toArray(new
 ProjectAccountJoinVO[projectAccounts.first().size()]));
+        List<ProjectAccountResponse> projectResponses = 
ViewResponseHelper.createProjectAccountResponse(projectAccounts.first().toArray(new
 ProjectAccountJoinVO[projectAccounts.first().size()]));
         response.setResponses(projectResponses, projectAccounts.second());
         return response;
     }
@@ -1703,10 +1662,9 @@
             respView = ResponseView.Full;
         }
 
-        List<VolumeResponse> volumeResponses = 
ViewResponseHelper.createVolumeResponse(respView, result.first().toArray(
-                new VolumeJoinVO[result.first().size()]));
+        List<VolumeResponse> volumeResponses = 
ViewResponseHelper.createVolumeResponse(respView, result.first().toArray(new 
VolumeJoinVO[result.first().size()]));
 
-        for(VolumeResponse vr : volumeResponses) {
+        for (VolumeResponse vr : volumeResponses) {
             String poolId = vr.getStoragePoolId();
             if (poolId == null) {
                 continue;
@@ -1743,7 +1701,7 @@
         String keyword = cmd.getKeyword();
         String type = cmd.getType();
         Map<String, String> tags = cmd.getTags();
-        Long storageId = cmd.getStorageId();
+        String storageId = cmd.getStorageId();
         Long clusterId = cmd.getClusterId();
         Long diskOffId = cmd.getDiskOfferingId();
         Boolean display = cmd.getDisplay();
@@ -1753,10 +1711,8 @@
 
         List<Long> ids = getIdsListFromCmd(cmd.getId(), cmd.getIds());
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts,
-                domainIdRecursiveListProject, cmd.listAll(), false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, 
cmd.listAll(), false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
@@ -1771,8 +1727,7 @@
         // number of
         // records with
         // pagination
-        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         sb.and("name", sb.entity().getName(), SearchCriteria.Op.EQ);
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
@@ -1782,7 +1737,7 @@
         sb.and("instanceId", sb.entity().getVmId(), SearchCriteria.Op.EQ);
         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("storageId", sb.entity().getPoolUuid(), SearchCriteria.Op.EQ);
         sb.and("diskOfferingId", sb.entity().getDiskOfferingId(), 
SearchCriteria.Op.EQ);
         sb.and("display", sb.entity().isDisplayVolume(), SearchCriteria.Op.EQ);
         // Only return volumes that are not destroyed
@@ -1795,8 +1750,7 @@
 
         // now set the SC criteria...
         SearchCriteria<VolumeJoinVO> sc = sb.create();
-        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts,
-                listProjectResourcesCriteria);
+        _accountMgr.buildACLViewSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 
         if (keyword != null) {
             SearchCriteria<VolumeJoinVO> ssc = 
_volumeJoinDao.createSearchCriteria();
@@ -1947,7 +1901,7 @@
 
         if (domainId != null) {
             if (isRecursive) {
-                if(domain == null){
+                if (domain == null) {
                     domain = _domainDao.findById(domainId);
                 }
                 sc.setParameters("path", domain.getPath() + "%");
@@ -1972,8 +1926,7 @@
             respView = ResponseView.Full;
         }
 
-        List<AccountResponse> accountResponses = 
ViewResponseHelper.createAccountResponse(respView, result.first().toArray(
-                new AccountJoinVO[result.first().size()]));
+        List<AccountResponse> accountResponses = 
ViewResponseHelper.createAccountResponse(respView, result.first().toArray(new 
AccountJoinVO[result.first().size()]));
         response.setResponses(accountResponses, result.second());
         return response;
     }
@@ -2017,9 +1970,7 @@
             // if they're looking for an account by name
             account = _accountDao.findActiveAccount(accountName, domainId);
             if (account == null || account.getId() == 
Account.ACCOUNT_ID_SYSTEM) {
-                throw new InvalidParameterValueException(
-                        "Unable to find account by name " + accountName + " in 
domain " + domainId
-                );
+                throw new InvalidParameterValueException("Unable to find 
account by name " + accountName + " in domain " + domainId);
             }
             _accountMgr.checkAccess(caller, null, true, account);
         } else {
@@ -2030,11 +1981,7 @@
                 account = _accountDao.findActiveAccountById(accountId, 
domainId);
             }
             if (account == null || account.getId() == 
Account.ACCOUNT_ID_SYSTEM) {
-                throw new InvalidParameterValueException(
-                        "Unable to find account by id "
-                                + accountId
-                                + (domainId == null ? "" : " in domain " + 
domainId)
-                );
+                throw new InvalidParameterValueException("Unable to find 
account by id " + accountId + (domainId == null ? "" : " in domain " + 
domainId));
             }
             _accountMgr.checkAccess(caller, null, true, account);
         }
@@ -2124,10 +2071,8 @@
 
         List<Long> permittedAccounts = new ArrayList<Long>();
 
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, null, 
cmd.getAccountName(), null, permittedAccounts,
-                domainIdRecursiveListProject, cmd.listAll(), false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, null, 
cmd.getAccountName(), null, permittedAccounts, domainIdRecursiveListProject, 
cmd.listAll(), false);
         Long domainId = domainIdRecursiveListProject.first();
         Boolean isRecursive = domainIdRecursiveListProject.second();
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
@@ -2540,8 +2485,7 @@
     public ListResponse<DiskOfferingResponse> 
searchForDiskOfferings(ListDiskOfferingsCmd cmd) {
         Pair<List<DiskOfferingJoinVO>, Integer> result = 
searchForDiskOfferingsInternal(cmd);
         ListResponse<DiskOfferingResponse> response = new 
ListResponse<DiskOfferingResponse>();
-        List<DiskOfferingResponse> offeringResponses =
-            
ViewResponseHelper.createDiskOfferingResponse(result.first().toArray(new 
DiskOfferingJoinVO[result.first().size()]));
+        List<DiskOfferingResponse> offeringResponses = 
ViewResponseHelper.createDiskOfferingResponse(result.first().toArray(new 
DiskOfferingJoinVO[result.first().size()]));
         response.setResponses(offeringResponses, result.second());
         return response;
     }
@@ -2590,23 +2534,23 @@
         List<Long> domainIds = null;
         // For non-root users, only return all offerings for the user's domain,
         // and everything above till root
-        if ((_accountMgr.isNormalUser(account.getId()) || 
_accountMgr.isDomainAdmin(account.getId()))
-                || account.getType() == 
Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
+        if ((_accountMgr.isNormalUser(account.getId()) || 
_accountMgr.isDomainAdmin(account.getId())) || account.getType() == 
Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
             if (isRecursive) { // domain + all sub-domains
-                if (account.getType() == Account.ACCOUNT_TYPE_NORMAL)
+                if (account.getType() == Account.ACCOUNT_TYPE_NORMAL) {
                     throw new InvalidParameterValueException("Only ROOT admins 
and Domain admins can list disk offerings with isrecursive=true");
+                }
                 DomainVO domainRecord = 
_domainDao.findById(account.getDomainId());
                 sc.addAnd("domainPath", SearchCriteria.Op.LIKE, 
domainRecord.getPath() + "%");
             } else { // domain + all ancestors
                 // find all domain Id up to root domain for this account
                 domainIds = new ArrayList<Long>();
                 DomainVO domainRecord = 
_domainDao.findById(account.getDomainId());
-                if ( domainRecord == null ){
+                if (domainRecord == null) {
                     s_logger.error("Could not find the domainId for account:" 
+ account.getAccountName());
                     throw new CloudAuthenticationException("Could not find the 
domainId for account:" + account.getAccountName());
                 }
                 domainIds.add(domainRecord.getId());
-                while (domainRecord.getParent() != null ){
+                while (domainRecord.getParent() != null) {
                     domainRecord = 
_domainDao.findById(domainRecord.getParent());
                     domainIds.add(domainRecord.getId());
                 }
@@ -2662,15 +2606,17 @@
         return _diskOfferingJoinDao.searchAndCount(sc, searchFilter);
     }
 
-    private List<ServiceOfferingJoinVO> 
filterOfferingsOnCurrentTags(List<ServiceOfferingJoinVO> offerings, 
ServiceOfferingVO currentVmOffering){
-        if(currentVmOffering == null) return offerings;
+    private List<ServiceOfferingJoinVO> 
filterOfferingsOnCurrentTags(List<ServiceOfferingJoinVO> offerings, 
ServiceOfferingVO currentVmOffering) {
+        if (currentVmOffering == null) {
+            return offerings;
+        }
         List<String> currentTagsList = 
StringUtils.csvTagsToList(currentVmOffering.getTags());
 
         // New service offering should have all the tags of the current 
service offering.
         List<ServiceOfferingJoinVO> filteredOfferings = new ArrayList<>();
-        for (ServiceOfferingJoinVO offering : offerings){
+        for (ServiceOfferingJoinVO offering : offerings) {
             List<String> newTagsList = 
StringUtils.csvTagsToList(offering.getTags());
-            if(newTagsList.containsAll(currentTagsList)){
+            if (newTagsList.containsAll(currentTagsList)) {
                 filteredOfferings.add(offering);
             }
         }
@@ -2680,10 +2626,9 @@
     @Override
     public ListResponse<ServiceOfferingResponse> 
searchForServiceOfferings(ListServiceOfferingsCmd cmd) {
         Pair<List<ServiceOfferingJoinVO>, Integer> result = 
searchForServiceOfferingsInternal(cmd);
-         result.first();
+        result.first();
         ListResponse<ServiceOfferingResponse> response = new 
ListResponse<ServiceOfferingResponse>();
-        List<ServiceOfferingResponse> offeringResponses =
-            
ViewResponseHelper.createServiceOfferingResponse(result.first().toArray(new 
ServiceOfferingJoinVO[result.first().size()]));
+        List<ServiceOfferingResponse> offeringResponses = 
ViewResponseHelper.createServiceOfferingResponse(result.first().toArray(new 
ServiceOfferingJoinVO[result.first().size()]));
         response.setResponses(offeringResponses, result.second());
         return response;
     }
@@ -2746,7 +2691,7 @@
             sc.addAnd("useLocalStorage", SearchCriteria.Op.EQ, 
currentVmOffering.getUseLocalStorage());
 
             // 2.In case vm is running return only offerings greater than 
equal to current offering compute.
-            if(vmInstance.getState() == VirtualMachine.State.Running){
+            if (vmInstance.getState() == VirtualMachine.State.Running) {
                 sc.addAnd("cpu", Op.GTEQ, currentVmOffering.getCpu());
                 sc.addAnd("speed", Op.GTEQ, currentVmOffering.getSpeed());
                 sc.addAnd("ramSize", Op.GTEQ, currentVmOffering.getRamSize());
@@ -2754,15 +2699,15 @@
         }
 
         // boolean includePublicOfferings = false;
-        if ((_accountMgr.isNormalUser(caller.getId()) || 
_accountMgr.isDomainAdmin(caller.getId()))
-                || caller.getType() == 
Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
+        if ((_accountMgr.isNormalUser(caller.getId()) || 
_accountMgr.isDomainAdmin(caller.getId())) || caller.getType() == 
Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
             // For non-root users.
             if (isSystem) {
                 throw new InvalidParameterValueException("Only root admins can 
access system's offering");
             }
             if (isRecursive) { // domain + all sub-domains
-                if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL)
+                if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL) {
                     throw new InvalidParameterValueException("Only ROOT admins 
and Domain admins can list service offerings with isrecursive=true");
+                }
                 DomainVO domainRecord = 
_domainDao.findById(caller.getDomainId());
                 sc.addAnd("domainPath", SearchCriteria.Op.LIKE, 
domainRecord.getPath() + "%");
             } else { // domain + all ancestors
@@ -2772,19 +2717,19 @@
                 if (vmId != null) {
                     UserVmVO vmInstance = _userVmDao.findById(vmId);
                     domainRecord = 
_domainDao.findById(vmInstance.getDomainId());
-                    if ( domainRecord == null ){
+                    if (domainRecord == null) {
                         s_logger.error("Could not find the domainId for vmId:" 
+ vmId);
                         throw new CloudAuthenticationException("Could not find 
the domainId for vmId:" + vmId);
                     }
                 } else {
                     domainRecord = _domainDao.findById(caller.getDomainId());
-                    if ( domainRecord == null ){
+                    if (domainRecord == null) {
                         s_logger.error("Could not find the domainId for 
account:" + caller.getAccountName());
                         throw new CloudAuthenticationException("Could not find 
the domainId for account:" + caller.getAccountName());
                     }
                 }
                 domainIds.add(domainRecord.getId());
-                while (domainRecord.getParent() != null ){
+                while (domainRecord.getParent() != null) {
                     domainRecord = 
_domainDao.findById(domainRecord.getParent());
                     domainIds.add(domainRecord.getId());
                 }
@@ -2793,7 +2738,7 @@
                 spc.addOr("domainId", SearchCriteria.Op.IN, 
domainIds.toArray());
                 spc.addOr("domainId", SearchCriteria.Op.NULL); // include 
public offering as well
                 sc.addAnd("domainId", SearchCriteria.Op.SC, spc);
-             }
+            }
         } else {
             // for root users
             if (caller.getDomainId() != 1 && isSystem) { // NON ROOT admin
@@ -2847,8 +2792,7 @@
             respView = ResponseView.Full;
         }
 
-        List<ZoneResponse> dcResponses = 
ViewResponseHelper.createDataCenterResponse(respView, cmd.getShowCapacities(), 
result
-                .first().toArray(new DataCenterJoinVO[result.first().size()]));
+        List<ZoneResponse> dcResponses = 
ViewResponseHelper.createDataCenterResponse(respView, cmd.getShowCapacities(), 
result.first().toArray(new DataCenterJoinVO[result.first().size()]));
         response.setResponses(dcResponses, result.second());
         return response;
     }
@@ -2958,8 +2902,7 @@
                     sdc.addAnd("id", SearchCriteria.Op.NIN, 
dedicatedZoneIds.toArray(new Object[dedicatedZoneIds.size()]));
                 }
 
-            } else if (_accountMgr.isDomainAdmin(account.getId())
-                    || account.getType() == 
Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
+            } else if (_accountMgr.isDomainAdmin(account.getId()) || 
account.getType() == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
                 // it was decided to return all zones for the domain admin, and
                 // everything above till root, as well as zones till the domain
                 // leaf
@@ -3024,7 +2967,7 @@
         if (resourceTags != null && !resourceTags.isEmpty()) {
             int count = 0;
             sc.setJoinParameters("tagSearch", "resourceType", 
ResourceObjectType.Zone.toString());
-            for (Map.Entry<String,String> entry : resourceTags.entrySet()) {
+            for (Map.Entry<String, String> entry : resourceTags.entrySet()) {
                 sc.setJoinParameters("tagSearch", "key" + 
String.valueOf(count), entry.getKey());
                 sc.setJoinParameters("tagSearch", "value" + 
String.valueOf(count), entry.getValue());
                 count++;
@@ -3084,13 +3027,11 @@ private boolean isPermissible(Long accountDomainId, 
Long offeringDomainId) {
             respView = ResponseView.Full;
         }
 
-        List<TemplateResponse> templateResponses = 
ViewResponseHelper.createTemplateResponse(respView, result.first().toArray(
-                new TemplateJoinVO[result.first().size()]));
+        List<TemplateResponse> templateResponses = 
ViewResponseHelper.createTemplateResponse(respView, result.first().toArray(new 
TemplateJoinVO[result.first().size()]));
         response.setResponses(templateResponses, result.second());
         return response;
     }
 
-
     private Pair<List<TemplateJoinVO>, Integer> 
searchForTemplatesInternal(ListTemplatesCmd cmd) {
         TemplateFilter templateFilter = 
TemplateFilter.valueOf(cmd.getTemplateFilter());
         Long id = cmd.getId();
@@ -3102,17 +3043,14 @@ private boolean isPermissible(Long accountDomainId, 
Long offeringDomainId) {
         boolean listAll = false;
         if (templateFilter != null && templateFilter == TemplateFilter.all) {
             if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL) {
-                throw new InvalidParameterValueException("Filter " + 
TemplateFilter.all
-                        + " can be specified by admin only");
+                throw new InvalidParameterValueException("Filter " + 
TemplateFilter.all + " can be specified by admin only");
             }
             listAll = true;
         }
 
         List<Long> permittedAccountIds = new ArrayList<Long>();
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccountIds,
-                domainIdRecursiveListProject, listAll, false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, 
false);
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
         List<Account> permittedAccounts = new ArrayList<Account>();
         for (Long accountId : permittedAccountIds) {
@@ -3122,18 +3060,13 @@ private boolean isPermissible(Long accountDomainId, 
Long offeringDomainId) {
         boolean showDomr = ((templateFilter != TemplateFilter.selfexecutable) 
&& (templateFilter != TemplateFilter.featured));
         HypervisorType hypervisorType = 
HypervisorType.getType(cmd.getHypervisor());
 
-
-        return searchForTemplatesInternal(id, cmd.getTemplateName(), 
cmd.getKeyword(), templateFilter, false, null,
-                cmd.getPageSizeVal(), cmd.getStartIndex(), cmd.getZoneId(), 
hypervisorType, showDomr,
-                cmd.listInReadyState(), permittedAccounts, caller, 
listProjectResourcesCriteria, tags, showRemovedTmpl,
-                cmd.getIds(), parentTemplateId);
+        return searchForTemplatesInternal(id, cmd.getTemplateName(), 
cmd.getKeyword(), templateFilter, false, null, cmd.getPageSizeVal(), 
cmd.getStartIndex(), cmd.getZoneId(), hypervisorType,
+                showDomr, cmd.listInReadyState(), permittedAccounts, caller, 
listProjectResourcesCriteria, tags, showRemovedTmpl, cmd.getIds(), 
parentTemplateId);
     }
 
-    private Pair<List<TemplateJoinVO>, Integer> 
searchForTemplatesInternal(Long templateId, String name,
-            String keyword, TemplateFilter templateFilter, boolean isIso, 
Boolean bootable, Long pageSize,
-            Long startIndex, Long zoneId, HypervisorType hyperType, boolean 
showDomr, boolean onlyReady,
-            List<Account> permittedAccounts, Account caller, 
ListProjectResourcesCriteria listProjectResourcesCriteria,
-            Map<String, String> tags, boolean showRemovedTmpl, List<Long> ids, 
Long parentTemplateId) {
+    private Pair<List<TemplateJoinVO>, Integer> 
searchForTemplatesInternal(Long templateId, String name, String keyword, 
TemplateFilter templateFilter, boolean isIso, Boolean bootable, Long pageSize,
+            Long startIndex, Long zoneId, HypervisorType hyperType, boolean 
showDomr, boolean onlyReady, List<Account> permittedAccounts, Account caller,
+            ListProjectResourcesCriteria listProjectResourcesCriteria, 
Map<String, String> tags, boolean showRemovedTmpl, List<Long> ids, Long 
parentTemplateId) {
 
         // check if zone is configured, if not, just return empty list
         List<HypervisorType> hypers = null;
@@ -3153,7 +3086,7 @@ private boolean isPermissible(Long accountDomainId, Long 
offeringDomainId) {
 
         SearchBuilder<TemplateJoinVO> sb = 
_templateJoinDao.createSearchBuilder();
         sb.select(null, Func.DISTINCT, sb.entity().getTempZonePair()); // 
select distinct (templateId, zoneId) pair
-        if (ids != null && !ids.isEmpty()){
+        if (ids != null && !ids.isEmpty()) {
             sb.and("idIN", sb.entity().getId(), SearchCriteria.Op.IN);
         }
         SearchCriteria<TemplateJoinVO> sc = sb.create();
@@ -3166,15 +3099,13 @@ private boolean isPermissible(Long accountDomainId, 
Long offeringDomainId) {
             }// If ISO requested then it should be ISO.
             if (isIso && template.getFormat() != ImageFormat.ISO) {
                 s_logger.error("Template Id " + templateId + " is not an ISO");
-                InvalidParameterValueException ex = new 
InvalidParameterValueException(
-                        "Specified Template Id is not an ISO");
+                InvalidParameterValueException ex = new 
InvalidParameterValueException("Specified Template Id is not an ISO");
                 ex.addProxyObject(template.getUuid(), "templateId");
                 throw ex;
             }// If ISO not requested then it shouldn't be an ISO.
             if (!isIso && template.getFormat() == ImageFormat.ISO) {
                 s_logger.error("Incorrect format of the template id " + 
templateId);
-                InvalidParameterValueException ex = new 
InvalidParameterValueException("Incorrect format "
-                        + template.getFormat() + " of the specified template 
id");
+                InvalidParameterValueException ex = new 
InvalidParameterValueException("Incorrect format " + template.getFormat() + " 
of the specified template id");
                 ex.addProxyObject(template.getUuid(), "templateId");
                 throw ex;
             }
@@ -3292,7 +3223,7 @@ else if (!template.isPublicTemplate() && caller.getType() 
!= Account.ACCOUNT_TYP
                     scc.addOr("accountId", SearchCriteria.Op.IN, 
permittedAccountIds.toArray());
                 }
                 sc.addAnd("publicTemplate", SearchCriteria.Op.SC, scc);
-            }else if (templateFilter == TemplateFilter.all && caller.getType() 
!= Account.ACCOUNT_TYPE_ADMIN ){
+            } else if (templateFilter == TemplateFilter.all && 
caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
                 SearchCriteria<TemplateJoinVO> scc = 
_templateJoinDao.createSearchCriteria();
                 scc.addOr("publicTemplate", SearchCriteria.Op.EQ, true);
 
@@ -3310,7 +3241,7 @@ else if (!template.isPublicTemplate() && caller.getType() 
!= Account.ACCOUNT_TYP
             // add tags criteria
             if (tags != null && !tags.isEmpty()) {
                 SearchCriteria<TemplateJoinVO> scc = 
_templateJoinDao.createSearchCriteria();
-                for (Map.Entry<String,String>entry : tags.entrySet()) {
+                for (Map.Entry<String, String> entry : tags.entrySet()) {
                     SearchCriteria<TemplateJoinVO> scTag = 
_templateJoinDao.createSearchCriteria();
                     scTag.addAnd("tagKey", SearchCriteria.Op.EQ, 
entry.getKey());
                     scTag.addAnd("tagValue", SearchCriteria.Op.EQ, 
entry.getValue());
@@ -3390,7 +3321,7 @@ else if (!template.isPublicTemplate() && caller.getType() 
!= Account.ACCOUNT_TYP
         if (showRemovedTmpl) {
             uniqueTmplPair = 
_templateJoinDao.searchIncludingRemovedAndCount(sc, searchFilter);
         } else {
-            sc.addAnd("templateState", SearchCriteria.Op.IN, new 
State[]{State.Active, State.UploadAbandoned, State.UploadError, 
State.NotUploaded, State.UploadInProgress});
+            sc.addAnd("templateState", SearchCriteria.Op.IN, new State[] 
{State.Active, State.UploadAbandoned, State.UploadError, State.NotUploaded, 
State.UploadInProgress});
             final String[] distinctColumns = {"temp_zone_pair"};
             uniqueTmplPair = _templateJoinDao.searchAndDistinctCount(sc, 
searchFilter, distinctColumns);
         }
@@ -3426,8 +3357,7 @@ else if (!template.isPublicTemplate() && caller.getType() 
!= Account.ACCOUNT_TYP
             respView = ResponseView.Full;
         }
 
-        List<TemplateResponse> templateResponses = 
ViewResponseHelper.createIsoResponse(respView, result.first().toArray(
-                new TemplateJoinVO[result.first().size()]));
+        List<TemplateResponse> templateResponses = 
ViewResponseHelper.createIsoResponse(respView, result.first().toArray(new 
TemplateJoinVO[result.first().size()]));
         response.setResponses(templateResponses, result.second());
         return response;
     }
@@ -3442,17 +3372,14 @@ else if (!template.isPublicTemplate() && 
caller.getType() != Account.ACCOUNT_TYP
         boolean listAll = false;
         if (isoFilter != null && isoFilter == TemplateFilter.all) {
             if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL) {
-                throw new InvalidParameterValueException("Filter " + 
TemplateFilter.all
-                        + " can be specified by admin only");
+                throw new InvalidParameterValueException("Filter " + 
TemplateFilter.all + " can be specified by admin only");
             }
             listAll = true;
         }
 
         List<Long> permittedAccountIds = new ArrayList<Long>();
-        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(
-                cmd.getDomainId(), cmd.isRecursive(), null);
-        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccountIds,
-                domainIdRecursiveListProject, listAll, false);
+        Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
+        _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), 
cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, 
false);
         ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();
         List<Account> permittedAccounts = new ArrayList<Account>();
         for (Long accountId : permittedAccountIds) {
@@ -3461,10 +3388,8 @@ else if (!template.isPublicTemplate() && 
caller.getType() != Account.ACCOUNT_TYP
 
         HypervisorType hypervisorType = 
HypervisorType.getType(cmd.getHypervisor());
 
-        return searchForTemplatesInternal(cmd.getId(), cmd.getIsoName(), 
cmd.getKeyword(), isoFilter, true,
-                cmd.isBootable(), cmd.getPageSizeVal(), cmd.getStartIndex(), 
cmd.getZoneId(), hypervisorType, true,
-                cmd.listInReadyState(), permittedAccounts, caller, 
listProjectResourcesCriteria, tags, showRemovedISO,
-                null, null);
+        return searchForTemplatesInternal(cmd.getId(), cmd.getIsoName(), 
cmd.getKeyword(), isoFilter, true, cmd.isBootable(), cmd.getPageSizeVal(), 
cmd.getStartIndex(), cmd.getZoneId(),
+                hypervisorType, true, cmd.listInReadyState(), 
permittedAccounts, caller, listProjectResourcesCriteria, tags, showRemovedISO, 
null, null);
     }
 
     @Override
@@ -3513,8 +3438,8 @@ else if (!template.isPublicTemplate() && caller.getType() 
!= Account.ACCOUNT_TYP
 
         Filter searchFilter = new Filter(AffinityGroupJoinVO.class, ID_FIELD, 
true, startIndex, pageSize);
 
-        SearchCriteria<AffinityGroupJoinVO> sc = 
buildAffinityGroupSearchCriteria(domainId, isRecursive, permittedAccounts, 
listProjectResourcesCriteria, affinityGroupId,
-                affinityGroupName, affinityGroupType, keyword);
+        SearchCriteria<AffinityGroupJoinVO> sc = 
buildAffinityGroupSearchCriteria(domainId, isRecursive, permittedAccounts, 
listProjectResourcesCriteria, affinityGroupId, affinityGroupName,
+                affinityGroupType, keyword);
 
         Pair<List<AffinityGroupJoinVO>, Integer> uniqueGroupsPair = 
_affinityGroupJoinDao.searchAndCount(sc, searchFilter);
 
@@ -3535,23 +3460,23 @@ else if (!template.isPublicTemplate() && 
caller.getType() != Account.ACCOUNT_TYP
         if (!permittedAccounts.isEmpty()) {
             // add domain level affinity groups
             if (domainId != null) {
-                SearchCriteria<AffinityGroupJoinVO> scDomain = 
buildAffinityGroupSearchCriteria(null, isRecursive, new ArrayList<Long>(), 
listProjectResourcesCriteria,
-                        affinityGroupId, affinityGroupName, affinityGroupType, 
keyword);
+                SearchCriteria<AffinityGroupJoinVO> scDomain = 
buildAffinityGroupSearchCriteria(null, isRecursive, new ArrayList<Long>(), 
listProjectResourcesCriteria, affinityGroupId,
+                        affinityGroupName, affinityGroupType, keyword);
                 affinityGroups.addAll(listDomainLevelAffinityGroups(scDomain, 
searchFilter, domainId));
             } else {
 
                 for (Long permAcctId : permittedAccounts) {
                     Account permittedAcct = _accountDao.findById(permAcctId);
-                    SearchCriteria<AffinityGroupJoinVO> scDomain = 
buildAffinityGroupSearchCriteria(null, isRecursive, new ArrayList<Long>(), 
listProjectResourcesCriteria,
-                            affinityGroupId, affinityGroupName, 
affinityGroupType, keyword);
+                    SearchCriteria<AffinityGroupJoinVO> scDomain = 
buildAffinityGroupSearchCriteria(null, isRecursive, new ArrayList<Long>(), 
listProjectResourcesCriteria, affinityGroupId,
+                            affinityGroupName, affinityGroupType, keyword);
 
                     
affinityGroups.addAll(listDomainLevelAffinityGroups(scDomain, searchFilter, 
permittedAcct.getDomainId()));
                 }
             }
         } else if (((permittedAccounts.isEmpty()) && (domainId != null) && 
isRecursive)) {
             // list all domain level affinity groups for the domain admin case
-            SearchCriteria<AffinityGroupJoinVO> scDomain = 
buildAffinityGroupSearchCriteria(null, isRecursive, new ArrayList<Long>(), 
listProjectResourcesCriteria,
-                    affinityGroupId, affinityGroupName, affinityGroupType, 
keyword);
+            SearchCriteria<AffinityGroupJoinVO> scDomain = 
buildAffinityGroupSearchCriteria(null, isRecursive, new ArrayList<Long>(), 
listProjectResourcesCriteria, affinityGroupId, affinityGroupName,
+                    affinityGroupType, keyword);
             affinityGroups.addAll(listDomainLevelAffinityGroups(scDomain, 
searchFilter, domainId));
         }
 
@@ -3559,8 +3484,8 @@ else if (!template.isPublicTemplate() && caller.getType() 
!= Account.ACCOUNT_TYP
 
     }
 
-    private void 
buildAffinityGroupViewSearchBuilder(SearchBuilder<AffinityGroupJoinVO> sb, Long 
domainId,
-            boolean isRecursive, List<Long> permittedAccounts, 
ListProjectResourcesCriteria listProjectResourcesCriteria) {
+    private void 
buildAffinityGroupViewSearchBuilder(SearchBuilder<AffinityGroupJoinVO> sb, Long 
domainId, boolean isRecursive, List<Long> permittedAccounts,
+            ListProjectResourcesCriteria listProjectResourcesCriteria) {
 
         sb.and("accountIdIN", sb.entity().getAccountId(), 
SearchCriteria.Op.IN);
         sb.and("domainId", sb.entity().getDomainId(), SearchCriteria.Op.EQ);
@@ -3581,8 +3506,8 @@ private void 
buildAffinityGroupViewSearchBuilder(SearchBuilder<AffinityGroupJoin
 
     }
 
-    private void 
buildAffinityGroupViewSearchCriteria(SearchCriteria<AffinityGroupJoinVO> sc,
-            Long domainId, boolean isRecursive, List<Long> permittedAccounts, 
ListProjectResourcesCriteria listProjectResourcesCriteria) {
+    private void 
buildAffinityGroupViewSearchCriteria(SearchCriteria<AffinityGroupJoinVO> sc, 
Long domainId, boolean isRecursive, List<Long> permittedAccounts,
+            ListProjectResourcesCriteria listProjectResourcesCriteria) {
 
         if (listProjectResourcesCriteria != null) {
             sc.setParameters("accountType", Account.ACCOUNT_TYPE_PROJECT);
@@ -3604,8 +3529,7 @@ private void 
buildAffinityGroupViewSearchCriteria(SearchCriteria<AffinityGroupJo
             ListProjectResourcesCriteria listProjectResourcesCriteria, Long 
affinityGroupId, String affinityGroupName, String affinityGroupType, String 
keyword) {
 
         SearchBuilder<AffinityGroupJoinVO> groupSearch = 
_affinityGroupJoinDao.createSearchBuilder();
-        buildAffinityGroupViewSearchBuilder(groupSearch, domainId, 
isRecursive, permittedAccounts,
-                listProjectResourcesCriteria);
+        buildAffinityGroupViewSearchBuilder(groupSearch, domainId, 
isRecursive, permittedAccounts, listProjectResourcesCriteria);
 
         groupSearch.select(null, Func.DISTINCT, groupSearch.entity().getId()); 
// select
         // distinct
@@ -3703,12 +3627,12 @@ private void 
buildAffinityGroupViewSearchCriteria(SearchCriteria<AffinityGroupJo
         Long resourceId = null;
 
         //Validation - 1.1 - resourceId and value cant be null.
-        if(resourceIdStr == null && value == null){
+        if (resourceIdStr == null && value == null) {
             throw new InvalidParameterValueException("Insufficient parameters 
passed for listing by resourceId OR key,value pair. Please check your params 
and try again.");
         }
 
         //Validation - 1.2 - Value has to be passed along with key.
-        if(value != null && key == null){
+        if (value != null && key == null) {
             throw new InvalidParameterValueException("Listing by (key, value) 
but key is null. Please check the params and try again");
         }
 
@@ -3720,18 +3644,17 @@ private void 
buildAffinityGroupViewSearchCriteria(SearchCriteria<AffinityGroupJo
             }
         }
 
-
         List<? extends ResourceDetail> detailList = new 
ArrayList<ResourceDetail>();
         ResourceDetail requestedDetail = null;
 
         if (key == null) {
             detailList = _resourceMetaDataMgr.getDetailsList(resourceId, 
resourceType, forDisplay);
-        } else if (value == null){
+        } else if (value == null) {
             requestedDetail = _resourceMetaDataMgr.getDetail(resourceId, 
resourceType, key);
             if (requestedDetail != null && forDisplay != null && 
requestedDetail.isDisplay() != forDisplay) {
                 requestedDetail = null;
             }
-        }else {
+        } else {
             detailList = _resourceMetaDataMgr.getDetails(resourceType, key, 
value, forDisplay);
         }
 
@@ -3744,10 +3667,10 @@ private void 
buildAffinityGroupViewSearchCriteria(SearchCriteria<AffinityGroupJo
                 ResourceDetailResponse detailResponse = 
createResourceDetailsResponse(detail, resourceType);
                 responseList.add(detailResponse);
             }
-            }
+        }
 
         return responseList;
-        }
+    }
 
     protected ResourceDetailResponse 
createResourceDetailsResponse(ResourceDetail requestedDetail, 
ResourceTag.ResourceObjectType resourceType) {
         ResourceDetailResponse resourceDetailResponse = new 
ResourceDetailResponse();


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> View volumes from primary storage not working when storage UUID is not a UUID
> -----------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-10276
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10276
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>            Reporter: Rafael Weingärtner
>            Assignee: Rafael Weingärtner
>            Priority: Major
>
> When configuration a pre-setup primary storage we can enter the name-label of 
> the storage that is going to be used by ACS and is already set up in the 
> host. The problem is that we can use any String of characters there, and this 
> String does not need to be a UUID one. When listing volumes from a primary 
> storage that has such conditions, the list will return all of the volumes in 
> the cloud because the ad-hoc “API framework” will ignore that value as it is 
> not a UUID type.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to