improve api server support
This commit is contained in:
parent
3b728e5135
commit
9e07a1b227
7 changed files with 141 additions and 44 deletions
|
|
@ -147,9 +147,8 @@ static int apiserver_job_start_fun(int type, int situation, void* data,
|
|||
if ((c->apiservers[i].name != NULL)
|
||||
&& (c->apiservers[i].ep != NULL)) {
|
||||
int rc;
|
||||
xce_notify_data_t xdata
|
||||
= { .event = NotifyData_data_jobPidInfo,
|
||||
.data = { .pidinfo = info } };
|
||||
xce_notify_data_t xdata = { .event = NotifyData_data_jobPidInfo,
|
||||
.data = { .pidinfo = info } };
|
||||
|
||||
/* FIXME: add job pid to API server? */
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
|
|
@ -461,7 +460,7 @@ static int apiserver_resource_hook_fun(int type, int situation, int detail,
|
|||
= { .event = NotifyData_data_schedUpdateResvals,
|
||||
.data = { .sched_update_resvals = resvals } };
|
||||
|
||||
rc = notify(c, c->sched.ep, &xdata);
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
if (rc < 0) {
|
||||
WARN("%s notify api server %s resource update fail, rc %d",
|
||||
__func__, c->apiservers[i].name, rc);
|
||||
|
|
@ -509,27 +508,33 @@ static int apiserver_queue_hook_fun(int type, int situation, int detail,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int apiserver_init(cluster_t* c)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < N_APISERVER_MAX; i ++) {
|
||||
c->apiservers[i].name = NULL;
|
||||
c->apiservers[i].ep = NULL;
|
||||
}
|
||||
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_JOB,
|
||||
(hook_fn_t)apiserver_job_hook_fun, NULL);
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_WORKER,
|
||||
(hook_fn_t)apiserver_worker_hook_fun, NULL);
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_RESOURCE,
|
||||
(hook_fn_t)apiserver_resource_hook_fun, NULL);
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_QUEUE,
|
||||
(hook_fn_t)apiserver_queue_hook_fun, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_apiserver_join(cluster_t* c, endpoint_t* ep)
|
||||
{
|
||||
/* FIXME: use lock to protect this later */
|
||||
static int hook_installed = 0;
|
||||
|
||||
xce_apiserver_push_configs(c, ep);
|
||||
xce_apiserver_push_workers(c, ep);
|
||||
xce_apiserver_push_jobs(c, ep);
|
||||
|
||||
if (!hook_installed) {
|
||||
hook_installed = 1;
|
||||
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_JOB,
|
||||
(hook_fn_t)apiserver_job_hook_fun, NULL);
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_WORKER,
|
||||
(hook_fn_t)apiserver_worker_hook_fun, NULL);
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_RESOURCE,
|
||||
(hook_fn_t)apiserver_resource_hook_fun, NULL);
|
||||
xce_add_hook(&(c->hooksys), XCE_CONTROLLER_HOOK_QUEUE,
|
||||
(hook_fn_t)apiserver_queue_hook_fun, NULL);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue