From 90ecd0f7712fa6f089dae5ef0817652fc1f89176 Mon Sep 17 00:00:00 2001 From: Liam Young Date: Thu, 30 Jan 2020 12:37:49 +0000 Subject: [PATCH] Do not access DB when it is in maintenance mode. If the database is in maintenace mode do not attempt to access it. Depends-On: I5d8ed7d3935db5568c50f8d585e37a4d0cc6914f Change-Id: I7d5b7a20573b38d12b1ead708ee446472f21e9f8 --- hooks/nova_cc_hooks.py | 6 ++++++ unit_tests/test_nova_cc_hooks.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/hooks/nova_cc_hooks.py b/hooks/nova_cc_hooks.py index 870a2590..ca801295 100755 --- a/hooks/nova_cc_hooks.py +++ b/hooks/nova_cc_hooks.py @@ -398,6 +398,12 @@ def db_changed(): hookenv.log('shared-db relation incomplete. Peer not ready?') return + if ch_utils.is_db_maintenance_mode(): + hookenv.log( + 'Database maintenance mode, aborting hook.', + level=hookenv.DEBUG) + return + CONFIGS.write_all() leader_init_db_if_ready() # db init for cells v2 requires amqp transport_url and db connections to diff --git a/unit_tests/test_nova_cc_hooks.py b/unit_tests/test_nova_cc_hooks.py index 689a3876..3df60507 100644 --- a/unit_tests/test_nova_cc_hooks.py +++ b/unit_tests/test_nova_cc_hooks.py @@ -40,6 +40,7 @@ TO_PATCH = [ 'charmhelpers.contrib.openstack.utils.configure_installation_source', 'charmhelpers.contrib.openstack.utils.config_value_changed', 'charmhelpers.contrib.openstack.utils.is_unit_paused_set', + 'charmhelpers.contrib.openstack.utils.is_db_maintenance_mode', 'charmhelpers.contrib.openstack.utils.openstack_upgrade_available', 'charmhelpers.contrib.openstack.utils.os_release', 'charmhelpers.core.hookenv.charm_dir', @@ -105,6 +106,7 @@ class NovaCCHooksTests(CharmTestCase): self.charm_dir.return_value = '/var/lib/juju/charms/nova/charm' self.ns_query.return_value = None self.is_unit_paused_set.return_value = False + self.is_db_maintenance_mode.return_value = False # disable hardening for unit tests harden._DISABLE_HARDENING_FOR_UNIT_TEST = True