| # |
| # 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") |