server: fix issue while list ssh keypairs by keyword (#3916)

in 4.13, list sshkeypairs with keyword will ignore the search by name if name is specifed
Fixes an issue in #3098

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"
    }
  ]
}
This commit is contained in:
Wei Zhou 2020-02-28 10:35:49 +01:00 committed by GitHub
parent e8d418c091
commit 79f7f0f007
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3747,8 +3747,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
}
if (keyword != null) {
sc.addOr("name", SearchCriteria.Op.LIKE, "%" + keyword + "%");
sc.addOr("fingerprint", SearchCriteria.Op.LIKE, "%" + keyword + "%");
final SearchCriteria<SSHKeyPairVO> 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<List<SSHKeyPairVO>, Integer> result = _sshKeyPairDao.searchAndCount(sc, searchFilter);