@when('config.changed')
Marco Ceppi
marco.ceppi at canonical.com
Wed Feb 17 18:47:49 UTC 2016
This is awesome, glad to see this wrapped in the reactive framework. Will
make a lot of my layers much simpler!
Marco
On Wed, Feb 17, 2016 at 1:44 PM Cory Johns <cory.johns at canonical.com> wrote:
> Just wanted to give a heads-up about a feature that landed in the reactive
> base layer yesterday.
>
> If a charm config option has changed, the state "config.changed" will be
> set for the duration of the hook. Additionally, specific states will be
> set for each config option that changed; that is, if option "foo" has
> changed, the state "config.changed.foo" will be set. An example of code
> using this would be:
>
> @when('myservice.started', 'config.changed')
> def update_config():
> update_config_files()
> restart_myservice()
>
> This provides a much cleaner way of detecting changes to config, and it is
> recommended that this be used in favor of @hook('config-changed') going
> forward, as the latter can actually run in to some situations, albeit
> rather rarely, where the charm sees new config option values before the
> config-changed hook has fired. Using the reactive states avoids that
> completely as well as working more naturally with existing @when decorators.
>
> Please note that, while we are not aware of any charms currently using
> "config.changed" as a state, there is some risk of the state set by the
> base layer conflicting with it if set by the charm layer. The
> recommendation is to always prefix your states by the name of the layer
> setting them, or the relation name for interface layers.
> --
> Juju mailing list
> Juju at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/juju
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20160217/018d7cd2/attachment.html>
More information about the Juju
mailing list