diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 18a155f9805..20080c282ec 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -623,9 +623,8 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { sb.and("value", sb.entity().getValue(), SearchCriteria.Op.EQ); if (resourceId != null) { - sb.and().op("resourceId", sb.entity().getResourceId(), SearchCriteria.Op.EQ); - sb.or("resourceUuid", sb.entity().getResourceUuid(), SearchCriteria.Op.EQ); - sb.cp(); + sb.and("resourceId", sb.entity().getResourceId(), SearchCriteria.Op.EQ); + sb.and("resourceUuid", sb.entity().getResourceUuid(), SearchCriteria.Op.EQ); } sb.and("resourceType", sb.entity().getResourceType(), SearchCriteria.Op.EQ); @@ -645,8 +644,13 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { } if (resourceId != null) { - sc.setParameters("resourceId", resourceId); - sc.setParameters("resourceUuid", resourceId); + try { + long rid = Long.parseLong(resourceId); + sc.setParameters("resourceId", rid); + } catch (NumberFormatException ex) { + // internal id instead of resource id is passed + sc.setParameters("resourceUuid", resourceId); + } } if (resourceType != null) {