UNPKG

node-deadline

Version:

Module to interface with Deadline Compute Management System by Thinkbox Software

75 lines (61 loc) 1.78 kB
var enums = require( "./lib/utils/enums.js" ), jobs = require( "./lib/jobs/jobs" ), tasks = require( "./lib/tasks/tasks" ), slaves = require( "./lib/slaves/slaves" ), settings = require( "./lib/settings" ), Err = require( "./lib/utils/Error" ), utils = require( "./lib/utils/utils" ); var i, Deadline = module.exports = {}; Deadline.init = function( options, port ) { var option; //make sure the options parameter is defined if ( "undefined" == typeof options ) { throw new Err( Err.PARAM, "Deadline.init requires a host name or options object" ); } //see if a host string was passed instead of options object if ( "string" == typeof options ) { options = { host: options }; //did they pass a port too? if ( "number" == typeof port ) { options.port = port; } } //copy options into settings object for ( option in options ) { //make sure it exists if ( "undefined" == typeof settings[ option ] ) { throw new Err( Err.PARAM, "Unrecognized option parameter (" + option + ")", "check what you are sending to the deadline constrictor" ); } if ( settings.verbose ) { utils.log( "setting Deadline option: " + option + " -> " + options[ option ] ); } settings[ option ] = options[ option ]; } }; //exports Deadline.jobs = jobs; Deadline.tasks = tasks; Deadline.slaves = slaves; //move some things into global export scope for usefulness Deadline.Job = jobs.Job; Deadline.Slave = slaves.Slave; Deadline.Task = tasks.Task; //get and set functions Deadline.get = { jobs: jobs.get }; Deadline.set = { jobs: jobs.set }; //copy enums/constants into global export scope for ( i in enums ) { Deadline[ i ] = enums[ i ]; }