#
# example showing how enrichers can be set 
#
name: test-app-with-enrichers
description: Testing many enrichers
services:
- type: org.apache.brooklyn.entity.group.DynamicCluster
  id: cluster
  location: localhost
  brooklyn.config:
    cluster.initial.size: 3
    dynamiccluster.memberspec:
      $brooklyn:entitySpec:
        type: org.apache.brooklyn.core.test.entity.TestEntity
        brooklyn.enrichers:
        - type: org.apache.brooklyn.enricher.stock.Transformer
          # transform "ip" (which we expect a feed, not shown here, to set) to a URL;
          # you can curl an address string to the sensors/ip endpoint an entity to trigger these enrichers
          brooklyn.config:
            enricher.sourceSensor: $brooklyn:sensor("ip")
            enricher.targetSensor: $brooklyn:sensor("url")
            enricher.targetValue: $brooklyn:formatString("http://%s/", $brooklyn:attributeWhenReady("ip"))
        - type: org.apache.brooklyn.enricher.stock.Propagator
          # use propagator to duplicate one sensor as another, giving the supplied sensor mapping;
          # the other use of Propagator is where you specify a producer (using $brooklyn:entity(...) as below)
          # from which to take sensors; in that mode you can specify `propagate` as a list of sensors whose names are unchanged,
          # instead of (or in addition to) this map
          brooklyn.config:
            sensorMapping:
              $brooklyn:sensor("url"): $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri")
  brooklyn.enrichers:
  - type: org.apache.brooklyn.enricher.stock.Aggregator
    # aggregate `url` sensors from children into a list
    brooklyn.config:
      enricher.sourceSensor: $brooklyn:sensor("url")
      enricher.targetSensor: $brooklyn:sensor("urls.list")
      enricher.aggregating.fromMembers: true
  - type: org.apache.brooklyn.enricher.stock.Joiner
    # create a string from that list, for use e.g. in bash scripts
    brooklyn.config:
      enricher.sourceSensor: $brooklyn:sensor("urls.list")
      enricher.targetSensor: $brooklyn:sensor("urls.list.comma_separated.max_2")
      maximum: 2
      # TODO infer uniqueTag, name etc
      uniqueTag: urls.list.comma_separated.max_2
  - type: org.apache.brooklyn.enricher.stock.Joiner
    # pick one uri as the main one to use
    brooklyn.config:
      enricher.sourceSensor: $brooklyn:sensor("urls.list")
      enricher.targetSensor: $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri")
      quote: false
      maximum: 1
brooklyn.enrichers:
- type: org.apache.brooklyn.enricher.stock.Propagator
  # if nothing specified for `propagating` or `sensorMapping` then 
  # Propagator will do all but the usual lifecycle defaults, handy at the root!
  brooklyn.config:
    enricher.producer: $brooklyn:entity("cluster")
