Juju Mode - strict

Juju is very resilient to failures, if something isn’t available it will attempt to try and use a fallback before giving up. One of the problems with this is that sometimes you just don’t want to use a fallback and you do want it to fail hard. With the introduction of #PR12183 there will be a model-config to allow a more strict mode. Other modes maybe added overtime, we’ve previously had a test-mode in the model-config that is no longer used and will be deprecated eventually.

Strict mode should be used to prevent fallbacks or to error out in a much earlier fashion. That way when we’re using Juju we can see much earlier on why Juju might be misbehaving.

Usecase #1

The first usage of this is in pylibjuju for handling missing delta types. Officially we should be alerted to the fact that we’re missing delta types from the AllWatcher API for every release of pylibjuju. These delta types offer new functionality that we want users to access. What we don’t want to do is tell them with copious amount of logging that we’re missing a delta type.

This #PR adds the ability to read in the mode and to do the right thing based on that mode. Simple and hopefully effective.