@when('config.changed')

Merlijn Sebrechts merlijn.sebrechts at gmail.com
Wed Feb 17 22:00:15 UTC 2016


Great! Very usefull! Thanks, Cory!

Op woensdag 17 februari 2016 heeft Cory Johns <cory.johns at canonical.com>
het volgende geschreven:
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20160217/ea3db64b/attachment.html>


More information about the Juju mailing list