Merge "Change pool manager cache driver"
This commit is contained in:
commit
f761fd5611
|
@ -548,3 +548,13 @@ class DesignateCharm(openstack_charm.HAOpenStackCharm):
|
|||
return 'blocked', ('Need either a dns-backend relation or '
|
||||
'config(dns-slaves) or both.')
|
||||
return None, None
|
||||
|
||||
def pool_manager_cache_sync_done(self):
|
||||
return hookenv.leader_get(attribute='pool-manager-cache-sync-done')
|
||||
|
||||
def pool_manager_cache_sync(self):
|
||||
if not self.pool_manager_cache_sync_done() and hookenv.is_leader():
|
||||
sync_cmd = "designate-manage pool-manager-cache sync"
|
||||
subprocess.check_call(sync_cmd.split(), timeout=60)
|
||||
hookenv.leader_set({'pool-manager-cache-sync-done': True})
|
||||
self.restart_all()
|
||||
|
|
|
@ -73,6 +73,7 @@ def install_packages():
|
|||
reactive.remove_state('shared-db.setup')
|
||||
reactive.remove_state('base-config.rendered')
|
||||
reactive.remove_state('db.synched')
|
||||
reactive.remove_state('pool-manager-cache.synched')
|
||||
|
||||
|
||||
@reactive.when('amqp.connected')
|
||||
|
@ -146,6 +147,16 @@ def run_db_migration(*args):
|
|||
reactive.set_state('db.synched')
|
||||
|
||||
|
||||
@reactive.when_not('pool-manager-cache.synched')
|
||||
@reactive.when('base-config.rendered')
|
||||
@reactive.when(*COMPLETE_INTERFACE_STATES)
|
||||
def sync_pool_manager_cache(*args):
|
||||
with provide_charm_instance() as instance:
|
||||
instance.pool_manager_cache_sync()
|
||||
if instance.pool_manager_cache_sync_done():
|
||||
reactive.set_state('pool-manager-cache.synched')
|
||||
|
||||
|
||||
@reactive.when('cluster.available')
|
||||
def update_peers(cluster):
|
||||
"""Inform designate peers about this unit"""
|
||||
|
@ -156,6 +167,7 @@ def update_peers(cluster):
|
|||
|
||||
|
||||
@reactive.when('db.synched')
|
||||
@reactive.when('pool-manager-cache.synched')
|
||||
@reactive.when(*COMPLETE_INTERFACE_STATES)
|
||||
def configure_designate_full(*args):
|
||||
"""Write out all designate config include bootstrap domain info"""
|
||||
|
|
|
@ -274,7 +274,7 @@ pool_id = 794ccc2c-d751-44fe-b57f-8894c9f5c842
|
|||
#periodic_sync_seconds = None
|
||||
|
||||
# The cache driver to use
|
||||
#cache_driver = memcache
|
||||
cache_driver = sqlalchemy
|
||||
|
||||
###################################
|
||||
## Pool Manager Cache Configuration
|
||||
|
|
|
@ -30,9 +30,12 @@ class TestRegisteredHooks(test_utils.TestRegisteredHooks):
|
|||
'create_servers_and_domains': (
|
||||
all_interfaces + ('base-config.rendered', 'db.synched')),
|
||||
'configure_designate_full': (
|
||||
all_interfaces + ('db.synched', )),
|
||||
all_interfaces + (
|
||||
'db.synched', 'pool-manager-cache.synched')),
|
||||
'run_db_migration': (
|
||||
all_interfaces + ('base-config.rendered', )),
|
||||
'sync_pool_manager_cache': (
|
||||
all_interfaces + ('base-config.rendered', )),
|
||||
'configure_designate_basic': all_interfaces,
|
||||
'expose_endpoint': ('dnsaas.connected', ),
|
||||
},
|
||||
|
@ -41,6 +44,7 @@ class TestRegisteredHooks(test_utils.TestRegisteredHooks):
|
|||
'setup_database': ('shared-db.setup', ),
|
||||
'install_packages': ('installed', ),
|
||||
'run_db_migration': ('db.synched', ),
|
||||
'sync_pool_manager_cache': ('pool-manager-cache.synched', ),
|
||||
'configure_designate_basic': ('base-config.rendered', ),
|
||||
'create_servers_and_domains': ('domains.created', ),
|
||||
'run_assess_status_on_every_hook': (
|
||||
|
@ -150,6 +154,19 @@ class TestHandlers(test_utils.PatchHelper):
|
|||
the_charm.db_sync.assert_called_once_with()
|
||||
self.set_state.assert_called_once_with('db.synched')
|
||||
|
||||
def test_sync_pool_manager_cache(self):
|
||||
the_charm = self._patch_provide_charm_instance()
|
||||
self.patch_object(handlers.reactive, 'set_state')
|
||||
the_charm.pool_manager_cache_sync_done.return_value = False
|
||||
handlers.sync_pool_manager_cache('arg1', 'arg2')
|
||||
the_charm.pool_manager_cache_sync.assert_called_once_with()
|
||||
self.assertFalse(self.set_state.called)
|
||||
the_charm.pool_manager_cache_sync.reset_mock()
|
||||
the_charm.pool_manager_cache_sync_done.return_value = True
|
||||
handlers.sync_pool_manager_cache('arg1', 'arg2')
|
||||
the_charm.pool_manager_cache_sync.assert_called_once_with()
|
||||
self.set_state.assert_called_once_with('pool-manager-cache.synched')
|
||||
|
||||
def test_update_peers(self):
|
||||
the_charm = self._patch_provide_charm_instance()
|
||||
handlers.update_peers('cluster')
|
||||
|
|
Loading…
Reference in New Issue