diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java index d3068a81bf3..15f618b4f65 100755 --- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java +++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java @@ -408,11 +408,25 @@ public class UcsManagerImpl implements UcsManager { @Override public ListResponse listUcsManager(ListUcsManagerCmd cmd) { + List rsps = new ArrayList(); + ListResponse response = new ListResponse(); + 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 serv = SearchCriteria2.create(UcsManagerVO.class); serv.addAnd(serv.getEntity().getZoneId(), Op.EQ, cmd.getZoneId()); List vos = serv.list(); - List rsps = new ArrayList(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 response = new ListResponse(); response.setResponses(rsps); return response; } diff --git a/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/ListUcsManagerCmd.java b/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/ListUcsManagerCmd.java index da13b173f75..2f7b413ae23 100755 --- a/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/ListUcsManagerCmd.java +++ b/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/ListUcsManagerCmd.java @@ -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; + } }