diff --git a/src/reactive/designate_handlers.py b/src/reactive/designate_handlers.py index 459044a..0247544 100644 --- a/src/reactive/designate_handlers.py +++ b/src/reactive/designate_handlers.py @@ -242,3 +242,15 @@ def local_pools_updated(): "Pools updated locally, restarting pool manager", level=hookenv.DEBUG) host.service_restart('designate-pool-manager') + + +@reactive.when('shared-db.setup') +@reactive.when_not('shared-db.connected') +def reset_shared_db(): + """Clear flags on shared-db departed. + + When shared-db is rejoined the charm will reconfigure the DB IFF these + flags have been cleared. See LP Bug#1887265 + """ + reactive.remove_state('shared-db.setup') + reactive.remove_state('db.synched') diff --git a/unit_tests/test_designate_handlers.py b/unit_tests/test_designate_handlers.py index e0524b0..4fd4299 100644 --- a/unit_tests/test_designate_handlers.py +++ b/unit_tests/test_designate_handlers.py @@ -39,6 +39,7 @@ class TestRegisteredHooks(test_utils.TestRegisteredHooks): 'expose_endpoint': ('dnsaas.connected', ), 'remote_pools_updated': ( 'leadership.changed.pool-yaml-hash', ), + 'reset_shared_db': ('shared-db.setup', ), }, 'when_not': { 'setup_amqp_req': ('amqp.requested-access', ), @@ -50,6 +51,7 @@ class TestRegisteredHooks(test_utils.TestRegisteredHooks): 'create_servers_and_domains': ('domains.created', ), 'run_assess_status_on_every_hook': ( 'dont-set-assess-status', ), + 'reset_shared_db': ('shared-db.connected', ), }, 'when_any': { 'set_dns_config_available': (