public boolean shouldAvoid(Cluster cluster) { if (_dcIds != null && _dcIds.contains(cluster.getDataCenterId())) { return true; } if (_podIds != null && _podIds.contains(cluster.getPodId())) { return true; } if (_clusterIds != null && _clusterIds.contains(cluster.getId())) { return true; } return false; }
@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; } // Else if there is only a zoneId defined, get a list of all vmware clusters // in the zone, and then for each cluster, pull the VSM and prepare a list. if (zoneId != null && zoneId.longValue() != 0) { ManagementService ref = cmd.getMgmtServiceRef(); 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; }