Skip to content

Commit ce9760f

Browse files
author
Prachi Damle
committed
CLOUDSTACK-5732 [UI] Search is not working in Affinity Groups panel
- Added keyword support
1 parent 02f6e02 commit ce9760f

3 files changed

Lines changed: 18 additions & 10 deletions

File tree

‎api/src/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void execute(){
7878

7979
ListResponse<AffinityGroupResponse> response = _queryService.listAffinityGroups(id, affinityGroupName,
8080
affinityGroupType, virtualMachineId, this.getAccountName(), this.getDomainId(), this.isRecursive(),
81-
this.listAll(), this.getStartIndex(), this.getPageSizeVal());
81+
this.listAll(), this.getStartIndex(), this.getPageSizeVal(), this.getKeyword());
8282
response.setResponseName(getCommandName());
8383
this.setResponseObject(response);
8484

‎api/src/org/apache/cloudstack/query/QueryService.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public interface QueryService {
9898
public ListResponse<TemplateResponse> listIsos(ListIsosCmd cmd);
9999
public ListResponse<AffinityGroupResponse> listAffinityGroups(Long affinityGroupId, String affinityGroupName,
100100
String affinityGroupType, Long vmId, String accountName, Long domainId, boolean isRecursive,
101-
boolean listAll, Long startIndex, Long pageSize);
101+
boolean listAll, Long startIndex, Long pageSize, String keyword);
102102

103103
public List<ResourceDetailResponse> listResourceDetails(ListResourceDetailsCmd cmd);
104104

‎server/src/com/cloud/api/query/QueryManagerImpl.java‎

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3138,10 +3138,10 @@ private Pair<List<TemplateJoinVO>, Integer> searchForIsosInternal(ListIsosCmd cm
31383138
@Override
31393139
public ListResponse<AffinityGroupResponse> listAffinityGroups(Long affinityGroupId, String affinityGroupName,
31403140
String affinityGroupType, Long vmId, String accountName, Long domainId, boolean isRecursive,
3141-
boolean listAll, Long startIndex, Long pageSize) {
3141+
boolean listAll, Long startIndex, Long pageSize, String keyword) {
31423142
Pair<List<AffinityGroupJoinVO>, Integer> result = listAffinityGroupsInternal(affinityGroupId,
31433143
affinityGroupName, affinityGroupType, vmId, accountName, domainId, isRecursive, listAll, startIndex,
3144-
pageSize);
3144+
pageSize, keyword);
31453145
ListResponse<AffinityGroupResponse> response = new ListResponse<AffinityGroupResponse>();
31463146
List<AffinityGroupResponse> agResponses = ViewResponseHelper.createAffinityGroupResponses(result.first());
31473147
response.setResponses(agResponses, result.second());
@@ -3150,7 +3150,7 @@ public ListResponse<AffinityGroupResponse> listAffinityGroups(Long affinityGroup
31503150

31513151
public Pair<List<AffinityGroupJoinVO>, Integer> listAffinityGroupsInternal(Long affinityGroupId,
31523152
String affinityGroupName, String affinityGroupType, Long vmId, String accountName, Long domainId,
3153-
boolean isRecursive, boolean listAll, Long startIndex, Long pageSize) {
3153+
boolean isRecursive, boolean listAll, Long startIndex, Long pageSize, String keyword) {
31543154

31553155
Account caller = CallContext.current().getCallingAccount();
31563156

@@ -3177,7 +3177,7 @@ public Pair<List<AffinityGroupJoinVO>, Integer> listAffinityGroupsInternal(Long
31773177

31783178
Filter searchFilter = new Filter(AffinityGroupJoinVO.class, "id", true, startIndex, pageSize);
31793179
SearchCriteria<AffinityGroupJoinVO> sc = buildAffinityGroupSearchCriteria(domainId, isRecursive,
3180-
permittedAccounts, listProjectResourcesCriteria, affinityGroupId, affinityGroupName, affinityGroupType);
3180+
permittedAccounts, listProjectResourcesCriteria, affinityGroupId, affinityGroupName, affinityGroupType, keyword);
31813181

31823182
Pair<List<AffinityGroupJoinVO>, Integer> uniqueGroupsPair = _affinityGroupJoinDao.searchAndCount(sc,
31833183
searchFilter);
@@ -3199,15 +3199,15 @@ public Pair<List<AffinityGroupJoinVO>, Integer> listAffinityGroupsInternal(Long
31993199
if (domainId != null) {
32003200
SearchCriteria<AffinityGroupJoinVO> scDomain = buildAffinityGroupSearchCriteria(null, isRecursive,
32013201
new ArrayList<Long>(), listProjectResourcesCriteria, affinityGroupId, affinityGroupName,
3202-
affinityGroupType);
3202+
affinityGroupType, keyword);
32033203
vrs.addAll(listDomainLevelAffinityGroups(scDomain, searchFilter, domainId));
32043204
} else {
32053205

32063206
for (Long permAcctId : permittedAccounts) {
32073207
Account permittedAcct = _accountDao.findById(permAcctId);
32083208
SearchCriteria<AffinityGroupJoinVO> scDomain = buildAffinityGroupSearchCriteria(
32093209
null, isRecursive, new ArrayList<Long>(),
3210-
listProjectResourcesCriteria, affinityGroupId, affinityGroupName, affinityGroupType);
3210+
listProjectResourcesCriteria, affinityGroupId, affinityGroupName, affinityGroupType, keyword);
32113211

32123212
vrs.addAll(listDomainLevelAffinityGroups(scDomain, searchFilter, permittedAcct.getDomainId()));
32133213
}
@@ -3216,7 +3216,7 @@ public Pair<List<AffinityGroupJoinVO>, Integer> listAffinityGroupsInternal(Long
32163216
// list all domain level affinity groups for the domain admin case
32173217
SearchCriteria<AffinityGroupJoinVO> scDomain = buildAffinityGroupSearchCriteria(null, isRecursive,
32183218
new ArrayList<Long>(), listProjectResourcesCriteria, affinityGroupId, affinityGroupName,
3219-
affinityGroupType);
3219+
affinityGroupType, keyword);
32203220
vrs.addAll(listDomainLevelAffinityGroups(scDomain, searchFilter, domainId));
32213221
}
32223222

@@ -3226,7 +3226,7 @@ public Pair<List<AffinityGroupJoinVO>, Integer> listAffinityGroupsInternal(Long
32263226

32273227
private SearchCriteria<AffinityGroupJoinVO> buildAffinityGroupSearchCriteria(Long domainId, boolean isRecursive,
32283228
List<Long> permittedAccounts, ListProjectResourcesCriteria listProjectResourcesCriteria,
3229-
Long affinityGroupId, String affinityGroupName, String affinityGroupType) {
3229+
Long affinityGroupId, String affinityGroupName, String affinityGroupType, String keyword) {
32303230

32313231
SearchBuilder<AffinityGroupJoinVO> groupSearch = _affinityGroupJoinDao.createSearchBuilder();
32323232
_accountMgr.buildACLViewSearchBuilder(groupSearch, domainId, isRecursive, permittedAccounts,
@@ -3251,6 +3251,14 @@ private SearchCriteria<AffinityGroupJoinVO> buildAffinityGroupSearchCriteria(Lon
32513251
sc.addAnd("type", SearchCriteria.Op.EQ, affinityGroupType);
32523252
}
32533253

3254+
if (keyword != null) {
3255+
SearchCriteria<AffinityGroupJoinVO> ssc = _affinityGroupJoinDao.createSearchCriteria();
3256+
ssc.addOr("name", SearchCriteria.Op.LIKE, "%" + keyword + "%");
3257+
ssc.addOr("type", SearchCriteria.Op.LIKE, "%" + keyword + "%");
3258+
3259+
sc.addAnd("name", SearchCriteria.Op.SC, ssc);
3260+
}
3261+
32543262
return sc;
32553263

32563264
}

0 commit comments

Comments
 (0)