Example #1
0
        def on_client_ready(_):
            dispatcher = get_full_dispatcher(reactor, authenticator, log,
                                             get_service_configs(config),
                                             kz_client, store, supervisor,
                                             cassandra_cluster)
            # Setup scheduler service after starting
            scheduler = setup_scheduler(parent, dispatcher, store, kz_client)
            health_checker.checks['scheduler'] = scheduler.health_check
            otter.scheduler = scheduler
            # Give dispatcher to Otter REST object
            otter.dispatcher = dispatcher
            # Set the client after starting
            # NOTE: There is small amount of time when the start is
            # not finished and the kz_client is not set in which case
            # policy execution and group delete will fail
            store.kz_client = kz_client
            # Setup kazoo to stop when shutting down
            parent.addService(FunctionalService(
                stop=partial(call_after_supervisor,
                             kz_client.stop, supervisor)))

            setup_converger(
                parent, kz_client, dispatcher,
                config_value('converger.interval') or 10,
                config_value('converger.build_timeout') or 3600,
                config_value('converger.limited_retry_iterations') or 10,
                config_value('converger.step_limits') or {})
Example #2
0
def set_desired_to_actual(groups, reactor, store, cass_client, authenticator,
                          conf):
    dispatcher = get_full_dispatcher(
        reactor, authenticator, mock_log(), get_service_configs(conf),
        "kzclient", store, "supervisor", cass_client)
    return gatherResults(
        map(partial(set_desired_to_actual_group, dispatcher, cass_client),
            groups))
Example #3
0
 def test_tenant_scope(self):
     """The :obj:`TenantScope` performer passes through to child effects."""
     # This is not testing much, but at least that it calls
     # perform_tenant_scope in a vaguely working manner. There are
     # more specific TenantScope performer tests in otter.test.test_http
     dispatcher = get_full_dispatcher(*([None] * 8))
     scope = TenantScope(Effect(Constant('foo')), 1)
     eff = Effect(scope)
     self.assertEqual(sync_perform(dispatcher, eff), 'foo')
Example #4
0
 def test_tenant_scope(self):
     """The :obj:`TenantScope` performer passes through to child effects."""
     # This is not testing much, but at least that it calls
     # perform_tenant_scope in a vaguely working manner. There are
     # more specific TenantScope performer tests in otter.test.test_http
     dispatcher = get_full_dispatcher(*([None] * 8))
     scope = TenantScope(Effect(Constant('foo')), 1)
     eff = Effect(scope)
     self.assertEqual(sync_perform(dispatcher, eff), 'foo')
Example #5
0
def groups_steps(groups, reactor, store, cass_client, authenticator, conf):
    """
    Return [(group, steps)] list
    """
    eff = parallel(map(group_steps, groups))
    disp = get_full_dispatcher(
        reactor, authenticator, mock_log(), get_service_configs(conf),
        "kzclient", store, "supervisor", cass_client)
    return perform(disp, eff).addCallback(lambda steps: zip(groups, steps))
Example #6
0
def groups_steps(groups, reactor, store, cass_client, authenticator, conf):
    """
    Return [(group, steps)] list
    """
    eff = parallel(map(group_steps, groups))
    disp = get_full_dispatcher(reactor, authenticator, mock_log(),
                               get_service_configs(conf), "kzclient", store,
                               "supervisor", cass_client)
    return perform(disp, eff).addCallback(lambda steps: zip(groups, steps))
Example #7
0
 def get_dispatcher(self):
     return get_full_dispatcher(*([None] * 8))
Example #8
0
 def get_dispatcher(self):
     return get_full_dispatcher(*([None] * 8))