Skip to content

Commit ad1d56d

Browse files
author
davidjumani
committed
Fix listing management server by parameters
1 parent cc093c6 commit ad1d56d

3 files changed

Lines changed: 39 additions & 18 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.cloudstack.api.BaseCmd;
2323
import org.apache.cloudstack.api.BaseListCmd;
2424
import org.apache.cloudstack.api.Parameter;
25-
import org.apache.cloudstack.api.response.HostResponse;
2625
import org.apache.cloudstack.api.response.ListResponse;
2726
import org.apache.cloudstack.api.response.ManagementServerResponse;
2827
import org.apache.log4j.Logger;
@@ -38,7 +37,7 @@ public class ListMgmtsCmd extends BaseListCmd {
3837
//////////////// API parameters /////////////////////
3938
/////////////////////////////////////////////////////
4039

41-
@Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = HostResponse.class, description = "the id of the management server")
40+
@Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = ManagementServerResponse.class, description = "the id of the management server")
4241
private Long id;
4342

4443
@Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "the name of the management server")

api/src/main/java/org/apache/cloudstack/management/ManagementServerHost.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616
// under the License.
1717
package org.apache.cloudstack.management;
1818

19-
public interface ManagementServerHost {
19+
import org.apache.cloudstack.api.Identity;
20+
import org.apache.cloudstack.api.InternalIdentity;
21+
22+
public interface ManagementServerHost extends InternalIdentity, Identity {
2023
enum State {
2124
Up, Down
2225
}
2326

24-
long getId();
25-
26-
String getUuid();
27-
2827
long getMsid();
2928

3029
State getState();

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

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3828,20 +3828,43 @@ protected ResourceDetailResponse createResourceDetailsResponse(ResourceDetail re
38283828
@Override
38293829
public ListResponse<ManagementServerResponse> listManagementServers(ListMgmtsCmd cmd) {
38303830
ListResponse<ManagementServerResponse> response = new ListResponse<>();
3831-
List<ManagementServerResponse> result = new ArrayList<>();
3832-
for (ManagementServerHostVO mgmt : managementServerHostDao.listAll()) {
3833-
ManagementServerResponse mgmtResponse = new ManagementServerResponse();
3834-
mgmtResponse.setId(mgmt.getUuid());
3835-
mgmtResponse.setName(mgmt.getName());
3836-
mgmtResponse.setState(mgmt.getState());
3837-
mgmtResponse.setVersion(mgmt.getVersion());
3838-
mgmtResponse.setObjectName("managementserver");
3839-
result.add(mgmtResponse);
3840-
}
3841-
response.setResponses(result);
3831+
Pair<List<ManagementServerHostVO>, Integer> result = listManagementServersInternal(cmd);
3832+
List<ManagementServerResponse> hostResponses = new ArrayList<>();
3833+
3834+
for(ManagementServerHostVO host : result.first()) {
3835+
ManagementServerResponse hostResponse = createManagementServerResponse(host);
3836+
hostResponses.add(hostResponse);
3837+
}
3838+
3839+
response.setResponses(hostResponses);
38423840
return response;
38433841
}
38443842

3843+
protected Pair<List<ManagementServerHostVO>, Integer> listManagementServersInternal(ListMgmtsCmd cmd) {
3844+
Long id = cmd.getId();
3845+
String name = cmd.getHostName();
3846+
3847+
SearchBuilder<ManagementServerHostVO> sb = managementServerHostDao.createSearchBuilder();
3848+
SearchCriteria<ManagementServerHostVO> sc = sb.create();
3849+
if(id != null) {
3850+
sc.addAnd("id", SearchCriteria.Op.EQ, id);
3851+
}
3852+
if(name != null) {
3853+
sc.addAnd("name", SearchCriteria.Op.EQ, name);
3854+
}
3855+
return managementServerHostDao.searchAndCount(sc, null);
3856+
}
3857+
3858+
protected ManagementServerResponse createManagementServerResponse(ManagementServerHostVO mgmt) {
3859+
ManagementServerResponse mgmtResponse = new ManagementServerResponse();
3860+
mgmtResponse.setId(mgmt.getUuid());
3861+
mgmtResponse.setName(mgmt.getName());
3862+
mgmtResponse.setState(mgmt.getState());
3863+
mgmtResponse.setVersion(mgmt.getVersion());
3864+
mgmtResponse.setObjectName("managementserver");
3865+
return mgmtResponse;
3866+
}
3867+
38453868
@Override
38463869
public ListResponse<TemplateOVFPropertyResponse> listTemplateOVFProperties(ListTemplateOVFProperties cmd) {
38473870
ListResponse<TemplateOVFPropertyResponse> response = new ListResponse<>();

0 commit comments

Comments
 (0)