forked from lei.chen/myxce
improve support of api server in controller
This commit is contained in:
parent
44fc5b23e9
commit
3b728e5135
3 changed files with 17 additions and 15 deletions
|
|
@ -30,7 +30,7 @@ static int xce_apiserver_push_workers(cluster_t* c, endpoint_t* ep)
|
|||
|
||||
memset(&data, 0x0, sizeof(data));
|
||||
|
||||
data.table = Data_data_schedworkers;
|
||||
data.table = Data_data_workers;
|
||||
data.data.workers = &workers;
|
||||
|
||||
collect_workers(c, (collect_check_fn_t)check_worker_, &(workers.n_total),
|
||||
|
|
@ -40,7 +40,7 @@ static int xce_apiserver_push_workers(cluster_t* c, endpoint_t* ep)
|
|||
rc = xce_push_data_req(ep, c->myhost, &data, check_controller, c, 100);
|
||||
|
||||
/* free up collected resource value which used
|
||||
passed to scheduler
|
||||
passed to api server
|
||||
*/
|
||||
for (i = 0; i < workers.n_total; i++) {
|
||||
xce_worker_t* w = workers.workers[i];
|
||||
|
|
@ -71,7 +71,7 @@ static int xce_apiserver_push_jobs(cluster_t* c, endpoint_t* ep)
|
|||
|
||||
memset(&data, 0x0, sizeof(data));
|
||||
|
||||
data.table = Data_data_schedjobs;
|
||||
data.table = Data_data_jobs;
|
||||
data.data.jobs = &jobs;
|
||||
|
||||
collect_jobs(c, (collect_check_fn_t)check_job_, &(jobs.n_total),
|
||||
|
|
@ -98,7 +98,7 @@ static int apiserver_push_joblist(cluster_t* c, xlist_t* l)
|
|||
.jobs = (xce_job_t**)l->data };
|
||||
|
||||
memset(&data, 0x0, sizeof(data));
|
||||
data.table = Data_data_schedjobs;
|
||||
data.table = Data_data_jobs;
|
||||
data.data.jobs = &jobs;
|
||||
|
||||
rc = xce_push_data_req(c->apiservers[i].ep, c->myhost, &data,
|
||||
|
|
@ -148,8 +148,8 @@ static int apiserver_job_start_fun(int type, int situation, void* data,
|
|||
&& (c->apiservers[i].ep != NULL)) {
|
||||
int rc;
|
||||
xce_notify_data_t xdata
|
||||
= { .event = NotifyData_data_schedStartJob,
|
||||
.data = { .sched_start_job = info->jobid } };
|
||||
= { .event = NotifyData_data_jobPidInfo,
|
||||
.data = { .pidinfo = info } };
|
||||
|
||||
/* FIXME: add job pid to API server? */
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
|
|
@ -181,8 +181,8 @@ static int apiserver_job_exit_fun(int type, int situation, void* data,
|
|||
&& (c->apiservers[i].ep != NULL)) {
|
||||
int rc;
|
||||
xce_notify_data_t xdata
|
||||
= { .event = NotifyData_data_schedExitJob,
|
||||
.data = { .sched_exit_job = info->jobid } };
|
||||
= { .event = NotifyData_data_jobFinishInfo,
|
||||
.data = { .finishinfo = info } };
|
||||
|
||||
/* FIXME: we need to send exit code of job to API server */
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
|
|
@ -214,8 +214,8 @@ static int apiserver_job_fail_fun(int type, int situation, void* data,
|
|||
&& (c->apiservers[i].ep != NULL)) {
|
||||
int rc;
|
||||
xce_notify_data_t xdata
|
||||
= { .event = NotifyData_data_schedFailJob,
|
||||
.data = { .sched_fail_job = info->jobid } };
|
||||
= { .event = NotifyData_data_jobFailInfo,
|
||||
.data = { .failinfo = info } };
|
||||
|
||||
/* FIXME: we need to add fail reason of job to api server */
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
|
|
@ -246,8 +246,8 @@ static int apiserver_job_update_fun(int type, int situation, void* data,
|
|||
&& (c->apiservers[i].ep != NULL)) {
|
||||
int rc;
|
||||
xce_notify_data_t xdata
|
||||
= { .event = NotifyData_data_schedUpdateJob,
|
||||
.data = { .sched_update_job = &(job->job) } };
|
||||
= { .event = NotifyData_data_updateJob,
|
||||
.data = { .update_job = &(job->job) } };
|
||||
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
if (rc < 0) {
|
||||
|
|
@ -327,7 +327,7 @@ static int apiserver_push_workerlist(cluster_t* c, endpoint_t* ep, xlist_t* l)
|
|||
|
||||
memset(&data, 0x0, sizeof(data));
|
||||
|
||||
data.table = Data_data_schedworkers;
|
||||
data.table = Data_data_workers;
|
||||
data.data.workers = &workers;
|
||||
|
||||
rc = xce_push_data_req(ep, c->myhost, &data, check_controller, c, 100);
|
||||
|
|
@ -493,7 +493,7 @@ static int apiserver_queue_hook_fun(int type, int situation, int detail,
|
|||
= { .event = NotifyData_data_schedUpdateQueue,
|
||||
.data = { .sched_update_queue = &(q->queue) } };
|
||||
|
||||
rc = notify(c, c->sched.ep, &xdata);
|
||||
rc = notify(c, c->apiservers[i].ep, &xdata);
|
||||
if (rc < 0) {
|
||||
WARN(
|
||||
"%s notify queue change to api server %s failed, rc %d",
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
#define _TYPEMAP_H_ 1
|
||||
#include <stdint.h>
|
||||
|
||||
#include "xce/types.h"
|
||||
#include "clusterconfig.h"
|
||||
#include "xce/types.h"
|
||||
|
||||
typedef struct {
|
||||
char* resname;
|
||||
|
|
@ -148,6 +148,7 @@ typedef struct {
|
|||
xce_task_finish_t* taskfinish;
|
||||
uint64_t pdone_job;
|
||||
xce_job_rusages_t* sched_job_rusages;
|
||||
xce_job_t* update_job;
|
||||
} data;
|
||||
} xce_notify_data_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -457,6 +457,7 @@ struct NotifyData $C.mapname("xce_notify_data_t"){
|
|||
taskFinish @15: TaskFinish $C.mapname("taskfinish");
|
||||
postDoneJob @16: UInt64 $C.mapname("pdone_job");
|
||||
schedJobRusages @17: SchedJobRusages $C.mapname("sched_job_rusages");
|
||||
updateJob @18: Job $C.mapname("update_job");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue