scheduling job with fake resource
This commit is contained in:
parent
5560ae91da
commit
088afe4ea0
12 changed files with 281 additions and 46 deletions
|
|
@ -30,7 +30,8 @@ libxce_src = [ gen_srcs[0],
|
|||
'idgen.c',
|
||||
'delay.c',
|
||||
'ordq.c',
|
||||
'preason.c'
|
||||
'preason.c',
|
||||
'xcealloc.c',
|
||||
]
|
||||
|
||||
incdir = include_directories('../include')
|
||||
|
|
|
|||
119
src/lib/xcealloc.c
Normal file
119
src/lib/xcealloc.c
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "xce/types.h"
|
||||
#include "xcealloc.h"
|
||||
|
||||
xce_alloc_t* make_alloc(char* resname, char* reserve, int instid, float value,
|
||||
int duration)
|
||||
{
|
||||
xce_alloc_t* alloc = NULL;
|
||||
|
||||
alloc = (xce_alloc_t*)calloc(1, sizeof(*alloc));
|
||||
if (alloc == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
alloc->resname = strdup(resname);
|
||||
if (reserve != NULL) {
|
||||
alloc->reserve = strdup(reserve);
|
||||
} else {
|
||||
alloc->reserve = strdup("");
|
||||
}
|
||||
|
||||
alloc->instid = instid;
|
||||
alloc->value = value;
|
||||
alloc->from = time(NULL);
|
||||
alloc->duration = duration;
|
||||
|
||||
return alloc;
|
||||
}
|
||||
|
||||
xce_alloc_t** make_allocs(int nallocs, ...)
|
||||
{
|
||||
xce_alloc_t** allocs = NULL;
|
||||
int i;
|
||||
va_list ap;
|
||||
|
||||
if (nallocs <= 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
allocs = (xce_alloc_t**)calloc(nallocs, sizeof(*allocs));
|
||||
if (allocs == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
va_start(ap, nallocs);
|
||||
for (i = 0; i < nallocs; i++) {
|
||||
xce_alloc_t* alloc = va_arg(ap, xce_alloc_t*);
|
||||
|
||||
allocs[i] = alloc;
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
return allocs;
|
||||
}
|
||||
|
||||
xce_host_alloc_t* make_host_alloc(char* host, int nalloc, xce_alloc_t** allocs)
|
||||
{
|
||||
xce_host_alloc_t* halloc = NULL;
|
||||
|
||||
halloc = (xce_host_alloc_t*)calloc(1, sizeof(*halloc));
|
||||
if (halloc == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
halloc->nallocs = nalloc;
|
||||
halloc->allocs = allocs;
|
||||
halloc->host = strdup(host);
|
||||
|
||||
return halloc;
|
||||
}
|
||||
|
||||
xce_host_alloc_t** make_host_allocs(int nhosts, ...)
|
||||
{
|
||||
xce_host_alloc_t** hallocs = NULL;
|
||||
int i;
|
||||
va_list ap;
|
||||
|
||||
if (nhosts == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
hallocs = (xce_host_alloc_t**)calloc(1, sizeof(*hallocs));
|
||||
if (hallocs == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
va_start(ap, nhosts);
|
||||
for (i = 0; i < nhosts; i++) {
|
||||
xce_host_alloc_t* halloc = va_arg(ap, xce_host_alloc_t*);
|
||||
|
||||
hallocs[i] = halloc;
|
||||
}
|
||||
|
||||
va_end(ap);
|
||||
|
||||
return hallocs;
|
||||
}
|
||||
|
||||
xce_job_alloc_t* make_job_alloc(uint64_t jobid, int nhost,
|
||||
xce_host_alloc_t** hallocs)
|
||||
{
|
||||
xce_job_alloc_t* jalloc = NULL;
|
||||
|
||||
jalloc = (xce_job_alloc_t*)calloc(1, sizeof(*jalloc));
|
||||
if (jalloc == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jalloc->jobid = jobid;
|
||||
jalloc->nhosts = nhost;
|
||||
jalloc->allocs = hallocs;
|
||||
|
||||
return jalloc;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue