From eaaac8187092444f48caa1fa5d1c90dc96391a76 Mon Sep 17 00:00:00 2001 From: Min Chen Date: Mon, 17 Nov 2014 15:04:03 -0800 Subject: [PATCH] CLOUDSTACK-7954:ListTags API is ignoring the resourceID and displaying all the tags of all resources. (cherry picked from commit 5fa7801b20f3ffb4fe0ae0380167873dfbc346ba) Signed-off-by: Rohit Yadav --- .../src/com/cloud/api/query/QueryManagerImpl.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 06def7f35ca..5117d7a5bfd 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -616,9 +616,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); @@ -638,8 +637,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) {