From 3ad4317244ae22db603596b20187044a91198bf6 Mon Sep 17 00:00:00 2001 From: David Ames Date: Wed, 26 Sep 2018 23:03:14 +0000 Subject: [PATCH] Series Upgrade Implement the series-upgrade feature allowing to move between Ubuntu series. Change-Id: I1f0e4bc958ca1a4716fbbeea033ef43e984b3fd8 --- hooks/ceilometer_hooks.py | 25 +++++++++++++++++++++++++ hooks/post-series-upgrade | 1 + hooks/pre-series-upgrade | 1 + 3 files changed, 27 insertions(+) create mode 120000 hooks/post-series-upgrade create mode 120000 hooks/pre-series-upgrade diff --git a/hooks/ceilometer_hooks.py b/hooks/ceilometer_hooks.py index 30df809..debcb06 100755 --- a/hooks/ceilometer_hooks.py +++ b/hooks/ceilometer_hooks.py @@ -35,6 +35,9 @@ from charmhelpers.contrib.openstack.utils import ( pausable_restart_on_change as restart_on_change, os_release, CompareOpenStackReleases, + is_unit_paused_set, + series_upgrade_prepare, + series_upgrade_complete, ) from ceilometer_utils import ( restart_map, @@ -45,6 +48,8 @@ from ceilometer_utils import ( do_openstack_upgrade, assess_status, get_packages, + pause_unit_helper, + resume_unit_helper, ) from charmhelpers.contrib.charmsupport import nrpe @@ -99,6 +104,12 @@ def upgrade_charm(): @hooks.hook('config-changed') @restart_on_change(restart_map(), stopstart=True) def config_changed(): + # if we are paused, delay doing any config changed hooks. + # It is forced on the resume. + if is_unit_paused_set(): + log("Unit is pause or upgrading. Skipping config_changed", "WARN") + return + if not config('action-managed-upgrade'): if openstack_upgrade_available('ceilometer-common'): status_set('maintenance', 'Running openstack upgrade') @@ -129,6 +140,20 @@ def update_nrpe_config(): nrpe_setup.write() +@hooks.hook('pre-series-upgrade') +def pre_series_upgrade(): + log("Running prepare series upgrade hook", "INFO") + series_upgrade_prepare( + pause_unit_helper, CONFIGS) + + +@hooks.hook('post-series-upgrade') +def post_series_upgrade(): + log("Running complete series upgrade hook", "INFO") + series_upgrade_complete( + resume_unit_helper, CONFIGS) + + if __name__ == '__main__': try: hooks.execute(sys.argv) diff --git a/hooks/post-series-upgrade b/hooks/post-series-upgrade new file mode 120000 index 0000000..c948469 --- /dev/null +++ b/hooks/post-series-upgrade @@ -0,0 +1 @@ +ceilometer_hooks.py \ No newline at end of file diff --git a/hooks/pre-series-upgrade b/hooks/pre-series-upgrade new file mode 120000 index 0000000..c948469 --- /dev/null +++ b/hooks/pre-series-upgrade @@ -0,0 +1 @@ +ceilometer_hooks.py \ No newline at end of file