char *can_peername = edg_wll_gss_normalize_subj(ctx->peerName, 0);
- if (strncmp(feedType, "finished", strlen("finished")) == 0){
+ if (strcmp(feedType, "finished") == 0){
conds = malloc(4*sizeof(*conds));
conds[0] = malloc(2*sizeof(**conds));
conds[0][0].attr = EDG_WLL_QUERY_ATTR_OWNER;
conds[2][1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
conds[3] = NULL;
}
- else if (strncmp(feedType, "running", strlen("running")) == 0){
+ else if (strcmp(feedType, "runningVM") == 0){
+ conds = malloc(5*sizeof(*conds));
+ conds[0] = malloc(2*sizeof(**conds));
+ conds[0][0].attr = EDG_WLL_QUERY_ATTR_OWNER;
+ conds[0][0].op = EDG_WLL_QUERY_OP_EQUAL;
+ conds[0][0].value.c = can_peername;
+ conds[0][1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
+ conds[1] = malloc(2*sizeof(**conds));
+ conds[1][0].attr = EDG_WLL_QUERY_ATTR_STATUS;
+ conds[1][0].op = EDG_WLL_QUERY_OP_EQUAL;
+ conds[1][0].value.i = EDG_WLL_JOB_RUNNING;
+ conds[1][1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
+ conds[2] = malloc(2*sizeof(**conds));
+ conds[2][0].attr = EDG_WLL_QUERY_ATTR_LASTUPDATETIME;
+ conds[2][0].op = EDG_WLL_QUERY_OP_GREATER;
+ conds[2][0].value.t.tv_sec = time(NULL) - ctx->rssTime;
+ conds[2][0].value.t.tv_usec = 0;
+ conds[2][1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
+ conds[3] = malloc(2*sizeof(**conds));
+ conds[3][0].attr = EDG_WLL_QUERY_ATTR_JOB_TYPE;
+ conds[3][0].op = EDG_WLL_QUERY_OP_EQUAL;
+ conds[3][0].value.i = EDG_WLL_STAT_VIRTUAL_MACHINE;
+ conds[3][1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
+ conds[4] = NULL;
+ }
+ else if (strcmp(feedType, "running") == 0){
conds = malloc(4*sizeof(*conds));
conds[0] = malloc(2*sizeof(**conds));
conds[0][0].attr = EDG_WLL_QUERY_ATTR_OWNER;
conds[2][1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
conds[3] = NULL;
}
- else if (strncmp(feedType, "aborted", strlen("aborted")) == 0){
+ else if (strcmp(feedType, "aborted") == 0){
conds = malloc(4*sizeof(*conds));
conds[0] = malloc(2*sizeof(**conds));
conds[0][0].attr = EDG_WLL_QUERY_ATTR_OWNER;
int i;
int idx;
- feedType = requestPTR + strlen("/RSS:");
+ feedType = strdup(requestPTR + strlen("/RSS:"));
+ feedType[strrchr(feedType, ' ')-feedType] = 0;
if (getJobsRSS(ctx, feedType, &states) < 0){
ret = HTTP_INTERNAL;
+ free(feedType);
goto err;
}
+ free(feedType);
// check if owner and lastupdatetime is indexed
idx = 0;