node-deadline
Version:
Module to interface with Deadline Compute Management System by Thinkbox Software
91 lines (80 loc) • 1.84 kB
JavaScript
var Err = require( "./Error" );
//enums for deadline states etc..
var enums = module.exports = {
//job stats
UNKNOWN: Math.pow( 2, 0 ),
ACTIVE: Math.pow( 2, 1 ),
SUSPENDED: Math.pow( 2, 2 ),
COMPLETED: Math.pow( 2, 3 ),
FAILED: Math.pow( 2, 4 ),
PENDING: Math.pow( 2, 5 ),
//on timeout
BOTH: Math.pow( 2, 6 ),
ERROR: Math.pow( 2, 7 ),
NOTIFY: Math.pow( 2, 8 ),
//on complete
ARCHIVE: Math.pow( 2, 9 ),
DELETE: Math.pow( 2, 10 ),
NOTHING: Math.pow( 2, 11 ),
//schedule type
NONE: Math.pow( 2, 12 ),
ONCE: Math.pow( 2, 13 ),
DAILY: Math.pow( 2, 14 ),
//slave stats
//UNKNOWN
RENDERING: Math.pow( 2, 15 ),
IDLE: Math.pow( 2, 16 ),
OFFLINE: Math.pow( 2, 17 ),
STALLED: Math.pow( 2, 18 ),
STARTING_JOB: Math.pow( 2, 19 ),
//report types
//ERROR
LOG: Math.pow( 2, 20 ),
REQUEUE: Math.pow( 2, 21 ),
//task states
//UNKNOWN
//SUSPENDED
//RENDERING
//COMPLETED
//FAILED
//PENDING
QUEUED: Math.pow( 2, 22 )
};
//map to deadline int
enums.mapJobStateToDeadline = function( status ) {
switch( status ) {
case enums.UNKNOWN:
return 0;
case enums.ACTIVE:
return 1;
case enums.SUSPENDED:
return 2;
case enums.COMPLETED:
return 3;
case enums.FAILED:
return 4;
case enums.PENDING:
return 6;
default:
throw new Err( Err.PARAM, "Unrecognized job status " + status );
}
}
//map from deadline int
enums.mapJobStateFromDeadline = function( status ) {
switch( status ) {
case 0:
return enums.UNKNOWN;
case 1:
return enums.ACTIVE;
case 2:
return enums.SUSPENDED;
case 3:
return enums.COMPLETED;
case 4:
return enums.FAILED;
case 6:
return enums.PENDING;
default:
throw new Err( Err.PARAM, "Unrecognized job status " + status );
}
}