Makes sense. Customising the behaviour form YAML should be possible even now by declaring an enricher with the same ID.
Svet. > On 4.11.2016 г., at 23:00, Aled Sage <[email protected]> wrote: > > Hi all, > > TL;DR: I'd like to change the defaults for an app so that it is "down" and > "on-fire" if any of its children are failed. > > _*Current Situation*_ > Currently in Brooklyn, it is surprising what values are set for an app's > "service.isUp" and its "service.state" sensors: > * If any of the app's children are "isUp=true" (or if it has no children), > then the app sets itself as "isUp=true". > * If any of the children report "state=on_fire", then the app sets itself as > "state=on_fire". > > Note the inconsistency: if one of two children are healthy, then the app is > "isUp=true && state=on_fire". > > This behaviour of "quorum" for children/members is controlled by an enricher, > which can be easily configured in Java but not in YAML. > > > _*Proposal*_ > We should change the default quorum behaviour for apps, to require all of the > app's children to be up. I'd argue that is the most common reason that it has > those children. > > We should make this more easily configurable through config keys on the app, > so one can easily change the defaults. For example, to get the old behaviour: > > services: > - type: org.apache.brooklyn.entity.stock.BasicApplication > brooklyn.config: > quorum.up: atLeastOneUnlessEmpty > quorum.running: all > brooklyn.children: > ... > > Would this change negatively affect any existing apps? Are there more > use-cases where the default of "atLeastOneUnlessEmpty" is more sensible than > "all"? > > See https://github.com/apache/brooklyn-server/pull/407 for an implementation > of this. > > Aled >
