Adding support for Trilio 4.1 includes the following changes:
* Add Trilio_properties config property to enables templates to
distinguish between 4.0 and 4.1 release.
* Add get_trilio_codename_install_source to attempt to derive the
Trilio version supported by an apt repo.
* Add get_trilio_charm_instance which overrides the default
get_charm_instance. This will pick the correct charm class based
on both the Trilio release and the OpenStack release.
* Add select_trilio_release which overrides the default
select_release and calculates the target OpenStack and Trilio
release.
* Add a specialist Trilio metaclass BaseTrilioCharmMeta. This
registers charm classes using their OpenStack release, Trilio
release and package type.
* Move code shared between TrilioVaultCharm &
TrilioVaultSubordinateCharm to TrilioVaultCharmMixin. Add support
for Trilio upgrades to TrilioVaultCharmMixina.
NOTE: An earlier version of this change
(I5a5e5721d9a713b66f8c796896c400481e9733a2) was landed and
reverted. It was reverted because get_trilio_charm_instance
and select_trilio_release were both registered as handlers
irrespective of whether a charm explicitly imported
charms_openstack.plugins.trilio This caused reactive charms
which used the default handlers to fail as they imported the
Trilio functions and the default ones and only one can ever
registered. This patch fixes this by wrapping the trilio
function definitions inside make_* methods, so the decorator
only registers the methods when the make_* methods are
explicitly called.
Change-Id: Id3bb13aff6d0e6df2d5ec144689c992cf09c1b4c