It depends if your hook goes into 'error' state or 'blocked'. Error should generally be avoided because it is a signal to Juju that you can no longer make forward progress (generally meant to mean there is a logic bug/typo/etc in your charm). With Error Juju may retry the hook that failed but it will not run other hooks until error is cleared (juju resolved)
Using 'status-set blocked [message]' you can report to the user that you are missing a relation, but Juju will continue to fire other hooks as normal. John =:-> On May 25, 2017 21:00, "Giuseppe Attardi" <giuseppe.atta...@garr.it> wrote: > I have written a charm for OpenStack Gnocchi. > The service requires a postgresql database relation. > > The start hook fails, of course, because the relation is not set. > > I expected that, but I expected that when I issue > > juju add-relation gnocchi postgresql:db > > it will invoke the database-relation-joined hook, which does set the > required parameter and then start would work. > However the hook is not invoked: as a sanity check I set a juju-log > message in it and it does not run at all. > > Is it correct to assume that add-relation will always trigger > database-relation-join? > > A second question, I would like to avoid to start the service until the > relation has been joined. > What is the best way to test for the relation to be present? > > I tried with > > db=`relation-get -r database host` > > but it fails with: > > INFO start error: invalid value "database" for flag -r: invalid > relation id > > I am using juju-2.1.2 > > Thanks for the help. > > — Beppe Attardi > -- > Juju mailing list > Juju@lists.ubuntu.com > Modify settings or unsubscribe at: https://lists.ubuntu.com/ > mailman/listinfo/juju >
-- Juju mailing list Juju@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju