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 {})
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))
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')
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))
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))
def get_dispatcher(self): return get_full_dispatcher(*([None] * 8))