Fix CONFIGS=None issue with action openstack-upgrade
When the CONFIGS was made lazy in the charm, unfortunately, some of the
work wasn't carried through correctly to the openstack-upgrade action
code. This patch corrects that. Tested manually as okay.
Change-Id: I095613ef2eca62da5fae5462e76fa83926d2e80a
Closes-Bug: #1869865
(cherry picked from commit 851821ff39a66fcdd75b414427b64c2979ba8bb7)
The core issue is that the plugin had no way to signal to the
principal charm what packages needed to be installed, and crucially,
which conflicted with the packages that the plugin needs to operate.
The referenced bug exhibits this issue in that, on install, a package
is removed by the plugin, but the principal charm "doesn't know". Then
on upgrade, the principal charm re-installs the package, and breaks
the plugin.
This patch allows the plugin to signal which packages it requires to
operate via the dashboard-plugin interface. This ensures that when
the openstack-dashboard charm upgrades it already "knows" what a
plugin needs and acts accordingly. Equally, plugins can change their
requirements and this patch allows them to update/remove/install
packages as needed.
The local_settings.py is already controlled by the principal, and this
just shifts absolute control over packaging to the principal as well.
The plugin charm's purpose is to indicate packages and config to the
principal.
Note. There should be no backwards compatibility issues with this
change. If a plugin doesn't notify the principal of any packages then it
won't take any action. This does mean that the openstack-charm should
be upgrade prior to any plugins that gain this feature.
When resuming services exclude those managed by hacluster, in
this case haproxy. If pacemaker lacks quorum it may shut haproxy
down which will cause this charm to error.
Charmhelper sync included to bring in required
get_managed_services_and_ports method.
This patchset adds the disable-instance-snapshot config item that
controls the "disable_instance_snapshot" dictionary item in the
LAUNCH_INSTANCE_DEFAULTS setting in local_settings.py