@SuppressWarnings({ "unchecked", "rawtypes" }) private <T> List<CatalogItemSummary> getCatalogItemSummariesMatchingRegexFragment(Predicate<CatalogItem<T>> type, String regex, String fragment) { List filters = new ArrayList(); filters.add(type); if (Strings.isNonEmpty(regex)) filters.add(CatalogPredicates.xml(StringPredicates.containsRegex(regex))); if (Strings.isNonEmpty(fragment)) filters.add(CatalogPredicates.xml(StringPredicates.containsLiteralCaseInsensitive(fragment))); return ImmutableList.copyOf(Iterables.transform( brooklyn().getCatalog().getCatalogItems(Predicates.and(filters)), TO_CATALOG_ITEM_SUMMARY)); }
protected List<Location> findSubLocations(Location loc) { Collection<String> zoneNames = getConfig(AVAILABILITY_ZONE_NAMES); Integer numZones = getConfig(NUM_AVAILABILITY_ZONES); if (loc.hasExtension(AvailabilityZoneExtension.class)) { AvailabilityZoneExtension zoneExtension = loc.getExtension(AvailabilityZoneExtension.class); List<Location> subLocations; if (zoneNames == null || zoneNames.isEmpty()) { checkArgument(numZones > 0, "numZones must be greater than zero: %s", numZones); subLocations = zoneExtension.getSubLocations(numZones); if (numZones > subLocations.size()) { throw new IllegalStateException("Number of required zones (" + numZones + ") not satisfied in " + loc + "; only " + subLocations.size() + " available: " + subLocations); } } else { // TODO check that these are valid region / availabilityZones? subLocations = zoneExtension.getSubLocationsByName(StringPredicates.equalToAny(zoneNames), zoneNames.size()); if (zoneNames.size() > subLocations.size()) { throw new IllegalStateException("Number of required zones (" + zoneNames.size() + " - " + zoneNames + ") not satisfied in " + loc + "; only " + subLocations.size() + " available: " + subLocations); } } return subLocations; } else { throw new IllegalStateException("Availability zones (extension " + AvailabilityZoneExtension.class + ") not supported for location " + loc); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) private <T> List<CatalogItemSummary> getCatalogItemSummariesMatchingRegexFragment(Predicate<CatalogItem<T>> type, String regex, String fragment) { List filters = new ArrayList(); filters.add(type); if (Strings.isNonEmpty(regex)) filters.add(CatalogPredicates.xml(StringPredicates.containsRegex(regex))); if (Strings.isNonEmpty(fragment)) filters.add(CatalogPredicates.xml(StringPredicates.containsLiteralCaseInsensitive(fragment))); return ImmutableList.copyOf(Iterables.transform( brooklyn().getCatalog().getCatalogItems(Predicates.and(filters)), TO_CATALOG_ITEM_SUMMARY)); }