CloudStack CLOUDSTACK-4160

listUcsManagers API needs to be able to take in id parameter
This commit is contained in:
frank 2013-08-07 14:44:49 -07:00
parent 893619dece
commit 7cbd66f71c
2 changed files with 29 additions and 2 deletions

View File

@ -408,11 +408,25 @@ public class UcsManagerImpl implements UcsManager {
@Override
public ListResponse<UcsManagerResponse> listUcsManager(ListUcsManagerCmd cmd) {
List<UcsManagerResponse> rsps = new ArrayList<UcsManagerResponse>();
ListResponse<UcsManagerResponse> response = new ListResponse<UcsManagerResponse>();
if (cmd.getId() != null) {
UcsManagerVO vo = ucsDao.findById(cmd.getId());
UcsManagerResponse rsp = new UcsManagerResponse();
rsp.setObjectName("ucsmanager");
rsp.setId(vo.getUuid());
rsp.setName(vo.getName());
rsp.setUrl(vo.getUrl());
rsp.setZoneId(zoneIdToUuid(vo.getZoneId()));
rsps.add(rsp);
response.setResponses(rsps);
return response;
}
SearchCriteriaService<UcsManagerVO, UcsManagerVO> serv = SearchCriteria2.create(UcsManagerVO.class);
serv.addAnd(serv.getEntity().getZoneId(), Op.EQ, cmd.getZoneId());
List<UcsManagerVO> vos = serv.list();
List<UcsManagerResponse> rsps = new ArrayList<UcsManagerResponse>(vos.size());
for (UcsManagerVO vo : vos) {
UcsManagerResponse rsp = new UcsManagerResponse();
rsp.setObjectName("ucsmanager");
@ -422,7 +436,6 @@ public class UcsManagerImpl implements UcsManager {
rsp.setZoneId(zoneIdToUuid(vo.getZoneId()));
rsps.add(rsp);
}
ListResponse<UcsManagerResponse> response = new ListResponse<UcsManagerResponse>();
response.setResponses(rsps);
return response;
}

View File

@ -34,8 +34,10 @@ import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.BaseCmd.CommandType;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.UcsManagerResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.log4j.Logger;
@ -53,6 +55,10 @@ public class ListUcsManagerCmd extends BaseListCmd {
@Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, description="the zone id", entityType=ZoneResponse.class, required=true)
private Long zoneId;
@Parameter(name=ApiConstants.ID, type=CommandType.UUID, entityType=UcsManagerResponse.class,
description="the ID of the ucs manager")
private Long id;
@Inject
private UcsManager mgr;
@ -88,4 +94,12 @@ public class ListUcsManagerCmd extends BaseListCmd {
public void setZoneId(Long zoneId) {
this.zoneId = zoneId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}