def test_clear_deferred_hooks(self): deferred_events.set_deferred_hook('config-changed') deferred_events.set_deferred_hook('leader-settings-changed') self.assertEqual(deferred_events.get_deferred_hooks(), ['config-changed', 'leader-settings-changed']) deferred_events.clear_deferred_hooks() self.assertEqual(deferred_events.get_deferred_hooks(), [])
def custom_assess_status_check(self): """Report deferred events in charm status message.""" state = None message = None deferred_events.check_restart_timestamps() events = collections.defaultdict(set) for e in deferred_events.get_deferred_events(): events[e.action].add(e.service) for action, svcs in events.items(): svc_msg = "Services queued for {}: {}".format( action, ', '.join(sorted(svcs))) state = 'active' if message: message = "{}. {}".format(message, svc_msg) else: message = svc_msg deferred_hooks = deferred_events.get_deferred_hooks() if deferred_hooks: state = 'active' svc_msg = "Hooks skipped due to disabled auto restarts: {}".format( ', '.join(sorted(deferred_hooks))) if message: message = "{}. {}".format(message, svc_msg) else: message = svc_msg return state, message
def _run_deferred_hooks(): """Run supported deferred hooks as needed. Run supported deferred hooks as needed. If support for deferring a new hook is added to the charm then this method will need updating. """ if not deferred_events.is_restart_permitted(): deferred_hooks = deferred_events.get_deferred_hooks() if deferred_hooks and 'config-changed' in deferred_hooks: neutron_ovs_hooks.config_changed(check_deferred_restarts=False) deferred_events.clear_deferred_hook('config-changed')
def _run_deferred_hooks(): """Run supported deferred hooks as needed. Run supported deferred hooks as needed. If support for deferring a new hook is added to the charm then this method will need updating. """ if not deferred_events.is_restart_permitted(): if 'config-changed' in deferred_events.get_deferred_hooks(): log("Running hook config-changed", level=INFO) rabbitmq_server_relations.config_changed( check_deferred_restarts=False) deferred_events.clear_deferred_hook('config-changed') if 'amqp-relation-changed' in deferred_events.get_deferred_hooks(): log("Running hook amqp-relation-changed", level=INFO) # update_clients cycles through amqp relations running # amqp-relation-changed hook. rabbitmq_server_relations.update_clients( check_deferred_restarts=False) deferred_events.clear_deferred_hook('amqp-relation-changed') log("Remaining hooks: {}".format(deferred_events.get_deferred_hooks()), level=INFO)
def _run_deferred_hooks(): """Run deferred hooks.""" deferred_methods = deferred_events.get_deferred_hooks() ovsdb = reactive.endpoint_from_flag('ovsdb.available') with charms_openstack.charm.provide_charm_instance() as charm_instance: if ('install' in deferred_methods or 'configure_ovs' in deferred_methods): charm_instance.install(check_deferred_events=False) if 'configure_ovs' in deferred_methods: charm_instance.render_with_interfaces( charms_openstack.charm.optional_interfaces( (ovsdb,), 'nova-compute.connected', 'amqp.connected')) charm_instance.configure_ovs( ','.join(ovsdb.db_sb_connection_strs), reactive.is_flag_set('config.changed.disable-mlockall'), check_deferred_events=False)
def test_get_deferred_hook(self): deferred_events.set_deferred_hook('config-changed') self.assertEqual(deferred_events.get_deferred_hooks(), ['config-changed'])