From b5a36df96639cdf976c516700c0f730b24ecdb0f Mon Sep 17 00:00:00 2001 From: alena Date: Wed, 9 Mar 2011 16:23:57 -0800 Subject: [PATCH] listPublicIpAddresses - when do search by keyword, apply keyword to account search --- .../cloud/server/ManagementServerImpl.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 3d8d72fdecc..c0f6da1432f 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -2431,6 +2431,7 @@ public class ManagementServerImpl implements ManagementServer { Account account = UserContext.current().getCaller(); Long domainId = cmd.getDomainId(); String accountName = cmd.getAccountName(); + Object keyword = cmd.getKeyword(); Long accountId = null; @@ -2448,13 +2449,20 @@ public class ManagementServerImpl implements ManagementServer { } else { throw new InvalidParameterValueException("Unable to find account " + accountName + " in domain " + domainId); } - } + } } else { domainId = ((account == null) ? DomainVO.ROOT_DOMAIN : account.getDomainId()); } } else { accountId = account.getId(); } + + if (accountId == null && keyword != null) { + Account userAccount = _accountDao.findActiveAccount((String)keyword, domainId); + if (userAccount != null) { + accountId = userAccount.getId(); + } + } Boolean isAllocated = cmd.isAllocatedOnly(); if (isAllocated == null) { @@ -2466,7 +2474,6 @@ public class ManagementServerImpl implements ManagementServer { Object zone = cmd.getZoneId(); Object address = cmd.getIpAddress(); Object vlan = cmd.getVlanId(); - Object keyword = cmd.getKeyword(); Object forVirtualNetwork = cmd.isForVirtualNetwork(); Object ipId = cmd.getId(); @@ -2474,7 +2481,6 @@ public class ManagementServerImpl implements ManagementServer { sb.and("accountIdEQ", sb.entity().getAllocatedToAccountId(), SearchCriteria.Op.EQ); sb.and("dataCenterId", sb.entity().getDataCenterId(), SearchCriteria.Op.EQ); sb.and("address", sb.entity().getAddress(), SearchCriteria.Op.EQ); - sb.and("addressLike", sb.entity().getAddress(), SearchCriteria.Op.LIKE); sb.and("vlanDbId", sb.entity().getVlanId(), SearchCriteria.Op.EQ); sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ); @@ -2485,6 +2491,10 @@ public class ManagementServerImpl implements ManagementServer { sb.join("domainSearch", domainSearch, sb.entity().getAllocatedInDomainId(), domainSearch.entity().getId(), JoinBuilder.JoinType.INNER); } + if (keyword != null && address == null) { + sb.and("addressLIKE", sb.entity().getAddress(), SearchCriteria.Op.LIKE); + } + if (forVirtualNetwork != null) { SearchBuilder vlanSearch = _vlanDao.createSearchBuilder(); vlanSearch.and("vlanType", vlanSearch.entity().getVlanType(), SearchCriteria.Op.EQ); @@ -2516,8 +2526,8 @@ public class ManagementServerImpl implements ManagementServer { sc.setParameters("id", ipId); } - if ((address == null) && (keyword != null)) { - sc.setParameters("addressLike", "%" + keyword + "%"); + if (address == null && keyword != null) { + sc.setParameters("addressLIKE", "%" + keyword + "%"); } if (address != null) {