예제 #1
0
 def test_clear_deferred_hook(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_hook('leader-settings-changed')
     self.assertEqual(deferred_events.get_deferred_hooks(),
                      ['config-changed'])
예제 #2
0
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 install(self, check_deferred_events=True):
        """Run install if permitted.

        :param check_deferred_events: Whether to check if restarts are
                                      permitted before running hook.
        :type check_deferred_events: bool
        """
        changed = reactive.flags.is_flag_set(
            'config.changed.enable-auto-restarts')
        # Run method if enable-auto-restarts has changed, irrespective of what
        # it was changed to. This ensure that this method is not immediately
        # deferred when enable-auto-restarts is initially set to False.
        if ((not check_deferred_events) or changed or
                deferred_events.is_restart_permitted()):
            deferred_events.clear_deferred_hook('install')
            super().install()
        else:
            deferred_events.set_deferred_hook('install')
예제 #4
0
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 configure_ovs(self, sb_conn, mlockall_changed,
                      check_deferred_events=True):
        """Run configure_ovs if permitted.

        :param sb_conn: Comma separated string of OVSDB connection methods.
        :type sb_conn: str
        :param mlockall_changed: Whether the mlockall param has changed.
        :type mlockall_changed: bool
        :param check_deferred_events: Whether to check if restarts are
                                      permitted before running hook.
        :type check_deferred_events: bool
        """
        changed = reactive.flags.is_flag_set(
            'config.changed.enable-auto-restarts')
        # Run method if enable-auto-restarts has changed, irrespective of what
        # it was changed to. This ensure that this method is not immediately
        # deferred when enable-auto-restarts is initially set to False.
        if ((not check_deferred_events) or changed or
                deferred_events.is_restart_permitted()):
            deferred_events.clear_deferred_hook('configure_ovs')
            super().configure_ovs(sb_conn, mlockall_changed)
        else:
            deferred_events.set_deferred_hook('configure_ovs')