vulpes
Version:
Job management framework
99 lines (86 loc) • 4.08 kB
JavaScript
"use strict";
var ms = require("ms");
/**
* Job result type
* @typedef {String} ResultType
*/
/**
* Job status
* @typedef {String} Status
*/
/**
* Job priority
* @typedef {String} Priority
*/
var ATTACHMENT_PREFIX = "%attachment:";
var ATTACHMENT_REXP = /^%attachment:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;
var ERROR_CODE_ARTIFACT_NOTFOUND = "vulpes/error/artifact/not-found";
var ERROR_CODE_ALREADY_INIT = "vuples/error/init/multi-call";
var ERROR_CODE_ALREADY_SUCCEEDED = "vuples/error/job/result/succeeded";
var ERROR_CODE_CANNOT_RESTART = "vuples/error/job/restart/invalid";
var ERROR_CODE_HELPER_INVALID = "vuples/error/helper/invalid";
var ERROR_CODE_INVALID_JOB_RESULT = "vuples/error/job/result";
var ERROR_CODE_INVALID_JOB_STATUS = "vuples/error/job/status";
var ERROR_CODE_JOB_BATCH_DEPENDENCIES = "vulpes/error/job-batch/dep-res";
var ERROR_CODE_JOB_BATCH_IDS = "vulpes/error/job-batch/ids";
var ERROR_CODE_JOB_BATCH_ID_FORMAT = "vulpes/error/job-batch/id-format";
var ERROR_CODE_JOB_BATCH_PARENT_RESOLUTION = "vulpes/error/job-batch/parent-res";
var ERROR_CODE_NO_JOB_FOR_ID = "vuples/error/job/notfoundforid";
var ERROR_CODE_NOT_INIT = "vuples/error/init/not-init";
var ERROR_CODE_PARENTS_INCOMPLETE = "vuples/error/job/parents/incomplete";
var ERROR_CODE_PREDICATE_NOT_SATISFIED = "vuples/error/job/predicate/not-satisfied";
var ITEM_TYPE = "@@type";
var ITEM_TYPE_JOB = "vulpes/job";
var ITEM_TYPE_SCHEDULED_TASK = "vulpes/scheduledTask";
var JOB_PRIORITY_HIGH = 5;
var JOB_PRIORITY_LOW = -5;
var JOB_PRIORITY_NORMAL = 0;
var JOB_RESULT_TYPE_FAILURE = "job/result/fail";
var JOB_RESULT_TYPE_FAILURE_SOFT = "job/result/fail/soft";
var JOB_RESULT_TYPE_SUCCESS = "job/result/success";
var JOB_RESULT_TYPE_TIMEOUT = "job/result/fail/timeout";
var JOB_RESULT_TYPES_RESTARTABLE_REXP = /^job\/result\/(success|fail\/soft)$/;
var JOB_RESULT_TYPES_REXP = /^job\/result\/.+$/;
var JOB_STATUS_PENDING = "job/status/pending";
var JOB_STATUS_REXP = /^job\/status\/(pending|running|stopped)$/;
var JOB_STATUS_RUNNING = "job/status/running";
var JOB_STATUS_STOPPED = "job/status/stopped";
var JOB_TIMELIMIT_DEFAULT = ms("10m");
var UUID_REXP = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/;
module.exports = {
ATTACHMENT_PREFIX: ATTACHMENT_PREFIX,
ATTACHMENT_REXP: ATTACHMENT_REXP,
ERROR_CODE_ARTIFACT_NOTFOUND: ERROR_CODE_ARTIFACT_NOTFOUND,
ERROR_CODE_ALREADY_INIT: ERROR_CODE_ALREADY_INIT,
ERROR_CODE_ALREADY_SUCCEEDED: ERROR_CODE_ALREADY_SUCCEEDED,
ERROR_CODE_CANNOT_RESTART: ERROR_CODE_CANNOT_RESTART,
ERROR_CODE_HELPER_INVALID: ERROR_CODE_HELPER_INVALID,
ERROR_CODE_INVALID_JOB_RESULT: ERROR_CODE_INVALID_JOB_RESULT,
ERROR_CODE_INVALID_JOB_STATUS: ERROR_CODE_INVALID_JOB_STATUS,
ERROR_CODE_JOB_BATCH_DEPENDENCIES: ERROR_CODE_JOB_BATCH_DEPENDENCIES,
ERROR_CODE_JOB_BATCH_IDS: ERROR_CODE_JOB_BATCH_IDS,
ERROR_CODE_JOB_BATCH_ID_FORMAT: ERROR_CODE_JOB_BATCH_ID_FORMAT,
ERROR_CODE_JOB_BATCH_PARENT_RESOLUTION: ERROR_CODE_JOB_BATCH_PARENT_RESOLUTION,
ERROR_CODE_NO_JOB_FOR_ID: ERROR_CODE_NO_JOB_FOR_ID,
ERROR_CODE_NOT_INIT: ERROR_CODE_NOT_INIT,
ERROR_CODE_PARENTS_INCOMPLETE: ERROR_CODE_PARENTS_INCOMPLETE,
ERROR_CODE_PREDICATE_NOT_SATISFIED: ERROR_CODE_PREDICATE_NOT_SATISFIED,
ITEM_TYPE: ITEM_TYPE,
ITEM_TYPE_JOB: ITEM_TYPE_JOB,
ITEM_TYPE_SCHEDULED_TASK: ITEM_TYPE_SCHEDULED_TASK,
JOB_PRIORITY_HIGH: JOB_PRIORITY_HIGH,
JOB_PRIORITY_LOW: JOB_PRIORITY_LOW,
JOB_PRIORITY_NORMAL: JOB_PRIORITY_NORMAL,
JOB_RESULT_TYPE_FAILURE: JOB_RESULT_TYPE_FAILURE,
JOB_RESULT_TYPE_FAILURE_SOFT: JOB_RESULT_TYPE_FAILURE_SOFT,
JOB_RESULT_TYPE_SUCCESS: JOB_RESULT_TYPE_SUCCESS,
JOB_RESULT_TYPE_TIMEOUT: JOB_RESULT_TYPE_TIMEOUT,
JOB_RESULT_TYPES_RESTARTABLE_REXP: JOB_RESULT_TYPES_RESTARTABLE_REXP,
JOB_RESULT_TYPES_REXP: JOB_RESULT_TYPES_REXP,
JOB_STATUS_PENDING: JOB_STATUS_PENDING,
JOB_STATUS_REXP: JOB_STATUS_REXP,
JOB_STATUS_RUNNING: JOB_STATUS_RUNNING,
JOB_STATUS_STOPPED: JOB_STATUS_STOPPED,
JOB_TIMELIMIT_DEFAULT: JOB_TIMELIMIT_DEFAULT,
UUID_REXP: UUID_REXP
};