From 02905dfef81d2db010518be42cdb16004a49f71a Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Tue, 25 Feb 2020 14:26:22 +0000 Subject: [PATCH] server: fix issue while list ssh keypairs by keyword in 4.13, list sshkeypairs with keyword will ignore the search by name if name is specifed for example, (local) > list sshkeypairs name=wei keyword=wei filter=name { "count": 3, "sshkeypair": [ { "name": "wei3" }, { "name": "wei2" }, { "name": "wei" } ] } with this patch ,it gives correct result. (local) > list sshkeypairs name=wei keyword=wei filter=name { "count": 1, "sshkeypair": [ { "name": "wei" } ] } --- .../main/java/com/cloud/server/ManagementServerImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index 147c527b2739..57a6f8c7f759 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -3747,8 +3747,10 @@ public Pair, Integer> listSSHKeyPairs(final ListSSHKe } if (keyword != null) { - sc.addOr("name", SearchCriteria.Op.LIKE, "%" + keyword + "%"); - sc.addOr("fingerprint", SearchCriteria.Op.LIKE, "%" + keyword + "%"); + final SearchCriteria ssc = _sshKeyPairDao.createSearchCriteria(); + ssc.addOr("name", SearchCriteria.Op.LIKE, "%" + keyword + "%"); + ssc.addOr("fingerprint", SearchCriteria.Op.LIKE, "%" + keyword + "%"); + sc.addAnd("name", SearchCriteria.Op.SC, ssc); } final Pair, Integer> result = _sshKeyPairDao.searchAndCount(sc, searchFilter);