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;
  }