static gboolean _post_config(struct sqlx_service_s *ss) { GError *err = NULL; if (err != NULL) { GRID_WARN("%s", err->message); g_clear_error(&err); return FALSE; } // prepare a meta2 backend err = meta2_backend_init(&m2, ss->repository, ss->ns_name, ss->lb, ss->resolver); if (NULL != err) { GRID_WARN("META2 backend init failure: (%d) %s", err->code, err->message); g_clear_error(&err); return FALSE; } /* Make deleted bases exit the cache */ sqlx_repository_configure_close_callback(ss->repository, meta2_on_close, ss); /* Register meta2 requests handlers */ transport_gridd_dispatcher_add_requests(ss->dispatcher, meta2_gridd_get_v2_requests(), m2); /* Register few meta2 tasks */ grid_task_queue_register(ss->gtq_reload, 5, _task_reconfigure_m2, NULL, ss); grid_task_queue_register(ss->gtq_reload, 1, (GDestroyNotify)sqlx_task_reload_lb, NULL, ss); m2->notifier = ss->events_queue; return TRUE; }
static gboolean _post_config(struct sqlx_service_s *ss) { GError *err; // Create the backend m0 = meta0_backend_init(ss->ns_name, ss->url->str, ss->repository); if (!m0) { GRID_WARN("META0 backend init failure"); return FALSE; } // Create the zookeeper poller if (ss->zk_url) { err = zk_srv_manager_create(ss->ns_name, ss->zk_url, NAME_SRVTYPE_META0, &m0zkmanager); if (err) { GRID_WARN("Zk manager init failed : (%d) %s",err->code, err->message); g_clear_error(&err); return FALSE; } for (;;) { err = create_zk_node(m0zkmanager, NULL, ss->url->str, ss->url->str); if (!err) break; GRID_DEBUG("Meta0's zookeeper node creation failure : (%d) %s", err->code, err->message); g_clear_error(&err); sleep(1); } } m0disp = meta0_gridd_get_dispatcher(m0, m0zkmanager, ss->ns_name); transport_gridd_dispatcher_add_requests(ss->dispatcher, meta0_gridd_get_requests(), m0disp); meta0_backend_migrate(m0); meta0_gridd_requested_reload(m0disp); sqlx_repository_configure_change_callback(ss->repository, _callback_change, NULL); grid_task_queue_register(ss->gtq_register, 3, _task_zk_registration, NULL, ss); return TRUE; }
static gboolean _configure_tasks(struct sqlx_service_s *ss) { grid_task_queue_register(ss->gtq_reload, 5, _task_reload_nsinfo, NULL, ss); grid_task_queue_register(ss->gtq_reload, 5, _task_reload_workers, NULL, ss); grid_task_queue_register(ss->gtq_reload, 5, _task_reconfigure_events, NULL, ss); grid_task_queue_register(ss->gtq_admin, 1, _task_expire_bases, NULL, ss); grid_task_queue_register(ss->gtq_admin, 1, _task_expire_resolver, NULL, ss); grid_task_queue_register(ss->gtq_admin, 1, _task_react_elections, NULL, ss); grid_task_queue_register(ss->gtq_admin, 3600, _task_malloc_trim, NULL, ss); return TRUE; }