static int batch_queue_dryrun_create (struct batch_queue *q) { char *cwd = path_getcwd(); batch_queue_set_feature(q, "local_job_queue", NULL); batch_queue_set_feature(q, "batch_log_name", "%s.sh"); batch_queue_set_option(q, "cwd", cwd); return 0; }
static int batch_queue_mesos_create (struct batch_queue *q) { batch_queue_set_feature(q, "mesos_job_queue", NULL); batch_queue_set_feature(q, "batch_log_name", "%s.mesoslog"); batch_queue_set_feature(q, "batch_log_transactions", "%s.tr"); batch_queue_set_feature(q, "autosize", "yes"); return 0; }
static int batch_queue_wq_create (struct batch_queue *q) { strncpy(q->logfile, "wq.log", sizeof(q->logfile)); if ((q->data = work_queue_create(0)) == NULL) return -1; work_queue_enable_process_module(q->data); batch_queue_set_feature(q, "absolute_path", NULL); batch_queue_set_feature(q, "remote_rename", "%s=%s"); batch_queue_set_feature(q, "batch_log_name", "%s.wqlog"); batch_queue_set_feature(q, "batch_log_transactions", "%s.tr"); return 0; }
struct batch_queue *batch_queue_create(batch_queue_type_t type) { int i; struct batch_queue *q; q = xxmalloc(sizeof(*q)); q->type = type; strncpy(q->logfile, "", sizeof(q->logfile)); q->options = hash_table_create(0, NULL); q->features = hash_table_create(0, NULL); q->job_table = itable_create(0); q->output_table = itable_create(0); q->data = NULL; batch_queue_set_feature(q, "local_job_queue", "yes"); batch_queue_set_feature(q, "batch_log_name", "%s.batchlog"); batch_queue_set_feature(q, "gc_size", "yes"); q->module = NULL; for (i = 0; batch_queue_modules[i]->type != BATCH_QUEUE_TYPE_UNKNOWN; i++) if (batch_queue_modules[i]->type == type) q->module = batch_queue_modules[i]; if (q->module == NULL) { batch_queue_delete(q); return NULL; } if(q->module->create(q) == -1) { batch_queue_delete(q); return NULL; } debug(D_BATCH, "created queue %p (%s)", q, q->module->typestr); return q; }