public Task<V> build() { validate(); return Tasks.<V>builder() .dynamic(false) .displayName("waiting on " + sensor.getName()) .description("Waiting on sensor " + sensor.getName() + " from " + source) .tag("attributeWhenReady") .tag(BrooklynTaskTags.TRANSIENT_TASK_TAG) .body(new WaitInTaskForAttributeReady<T, V>(this)) .build(); }
private void configureEnrichers(Entity entity) { for (AttributeSensor sensor : Iterables.filter(entity.getEntityType().getSensors(), AttributeSensor.class)) { if ((DockerUtils.URL_SENSOR_NAMES.contains(sensor.getName()) || sensor.getName().endsWith(".url") || URI.class.isAssignableFrom(sensor.getType())) && !DockerUtils.BLACKLIST_URL_SENSOR_NAMES.contains(sensor.getName())) { AttributeSensor<String> target = DockerUtils.<String>mappedSensor(sensor); entity.addEnricher( dockerHost .getSubnetTier() .uriTransformingEnricher(EntityAndAttribute.create(entity, sensor), target)); Set<Hint<?>> hints = RendererHints.getHintsFor(sensor); for (Hint<?> hint : hints) { RendererHints.register(target, (NamedActionWithUrl) hint); } if (LOG.isDebugEnabled()) { LOG.debug("Mapped URL sensor: origin={}, mapped={}", sensor.getName(), target.getName()); } } else if (PortAttributeSensorAndConfigKey.class.isAssignableFrom(sensor.getClass())) { AttributeSensor<String> target = DockerUtils.mappedPortSensor((PortAttributeSensorAndConfigKey) sensor); entity.addEnricher( dockerHost .getSubnetTier() .hostAndPortTransformingEnricher( EntityAndAttribute.create(entity, sensor), target)); if (LOG.isDebugEnabled()) { LOG.debug("Mapped port sensor: origin={}, mapped={}", sensor.getName(), target.getName()); } } } }
@Beta protected MultiBuilder( Iterable<? extends Entity> sources, AttributeSensor<T> sensor, Predicate<? super T> readiness) { builder = new Builder<T, V>(null, sensor); builder.readiness(readiness); for (Entity s : checkNotNull(sources, "sources")) { multiSource.add(new AttributeAndSensorCondition<T>(s, sensor, readiness)); } this.name = "waiting on " + sensor.getName(); this.descriptionBase = "waiting on " + sensor.getName() + " " + readiness + " from " + Iterables.size(sources) + " entit" + Strings.ies(sources); }