use of com.cloud.server.ManagementService in project cloudstack by apache.
the class CiscoNexusVSMElement method getCiscoNexusVSMs.
@Override
public List<CiscoNexusVSMDeviceVO> getCiscoNexusVSMs(ListCiscoNexusVSMsCmd cmd) {
// If clusterId is defined, then it takes precedence, and we will return
// the VSM associated with this cluster.
Long clusterId = cmd.getClusterId();
Long zoneId = cmd.getZoneId();
List<CiscoNexusVSMDeviceVO> result = new ArrayList<CiscoNexusVSMDeviceVO>();
if (clusterId != null && clusterId.longValue() != 0) {
// Find the VSM associated with this clusterId and return a list.
CiscoNexusVSMDeviceVO vsm = getCiscoVSMbyClusId(cmd.getClusterId());
if (vsm == null) {
throw new CloudRuntimeException("No Cisco VSM associated with specified Cluster Id");
}
// Else, add it to a list and return the list.
result.add(vsm);
return result;
}
// in the zone, and then for each cluster, pull the VSM and prepare a list.
if (zoneId != null && zoneId.longValue() != 0) {
ManagementService ref = _mgr;
;
List<? extends Cluster> clusterList = ref.searchForClusters(zoneId, cmd.getStartIndex(), cmd.getPageSizeVal(), "VMware");
if (clusterList.size() == 0) {
throw new CloudRuntimeException("No VMWare clusters found in the specified zone!");
}
// Else, iterate through each vmware cluster, pull its VSM if it has one, and add to the list.
for (Cluster clus : clusterList) {
CiscoNexusVSMDeviceVO vsm = getCiscoVSMbyClusId(clus.getId());
if (vsm != null)
result.add(vsm);
}
return result;
}
// If neither is defined, we will simply return the entire list of VSMs
// configured in the management server.
// TODO: Is this a safe thing to do? Only ROOT admin can invoke this call.
result = _vsmDao.listAllVSMs();
return result;
}
Aggregations