From a4711763a01223621dc39f569490cce4f3a42840 Mon Sep 17 00:00:00 2001 From: Liam Young Date: Mon, 19 Oct 2015 08:16:38 +0000 Subject: [PATCH] Remove chance of config-changed running in an infinite loop due to re-exec --- hooks/config-changed-postupgrade | 1 + hooks/keystone_hooks.py | 7 +++++++ hooks/keystone_utils.py | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 120000 hooks/config-changed-postupgrade diff --git a/hooks/config-changed-postupgrade b/hooks/config-changed-postupgrade new file mode 120000 index 00000000..dd3b3eff --- /dev/null +++ b/hooks/config-changed-postupgrade @@ -0,0 +1 @@ +keystone_hooks.py \ No newline at end of file diff --git a/hooks/keystone_hooks.py b/hooks/keystone_hooks.py index 5d3fd8b5..59770660 100755 --- a/hooks/keystone_hooks.py +++ b/hooks/keystone_hooks.py @@ -154,6 +154,13 @@ def config_changed(): status_set('maintenance', 'Running openstack upgrade') do_openstack_upgrade(configs=CONFIGS) + config_changed_postupgrade() + + +@hooks.hook('config-changed-postupgrade') +@restart_on_change(restart_map()) +@synchronize_ca_if_changed(fatal=True) +def config_changed_postupgrade(): # Ensure ssl dir exists and is unison-accessible ensure_ssl_dir() diff --git a/hooks/keystone_utils.py b/hooks/keystone_utils.py index 28ce3538..ec5733c3 100644 --- a/hooks/keystone_utils.py +++ b/hooks/keystone_utils.py @@ -395,7 +395,8 @@ def do_openstack_upgrade(configs): else: log("Database not ready - deferring to shared-db relation", level=INFO) - os.execl('./hooks/config-changed', '') + log("Re-execing hook to pickup upgraded packages", level=INFO) + os.execl('./hooks/config-changed-postupgrade', '') def is_db_initialised():