UNPKG

node-deadline

Version:

Module to interface with Deadline Compute Management System by Thinkbox Software

122 lines (101 loc) 2.87 kB
var color = require( "colors" ), Err = require( "./Error" ), PropertyMap = require( "./PropertyMap" ); module.exports = { log: function( text ) { console.log( "DEADLINE: ".green + text ); }, logDebug: function( text ) { console.log( "DEBUG-".magenta + "DEADLINE: ".green + text ); }, logError: function( err ) { console.log( "DEADLINE: ".green + err.message.red ); console.log( "DEADLINE: ".green + err.solution.cyan ); }, logWarn: function( err ) { console.log( "DEADLINE: ".green + err.message.yellow ); console.log( "DEADLINE: ".green + err.solution.cyan ); }, parseArrayOption: function( propertyName, options ) { var i, opt, result = []; //if its not an array, its a single option if ( !Array.isArray( options ) ) { result = {}; result[ propertyName ] = options; return result; } //otherwise its an array for ( i in options ) { opt = {}; opt[ propertyName ] = options[ i ]; result.push( opt ); } return { $or: result }; }, combineArrays: function( arr1, arr2 ) { return arr1.concat( arr2 ); }, combineObjects: function( obj1, obj2 ) { var prop, obj3 = {}; for ( prop in obj1 ) { obj3[ prop ] = obj1[ prop ]; } for ( prop in obj2 ) { obj3[ prop ] = obj2[ prop ]; } return obj3; }, unmapExtraJobProperty: function( name, deadlineNetSets ) { var i; switch ( name ) { case "Ex0": case "Ex1": case "Ex2": case "Ex3": case "Ex4": case "Ex5": case "Ex6": case "Ex7": case "Ex8": case "Ex9": return name; default: for ( i = 0; i < 10; i++ ) { if ( deadlineNetSets[ "JobExtraInfo" + i + "Name" ] == name ) { return ( "Ex" + i ); } } return null; } }, mapExtraJobProperty: function( name, deadlineNetSets ) { var i; switch ( name ) { case "Ex0": return deadlineNetSets.JobExtraInfo0Name; case "Ex1": return deadlineNetSets.JobExtraInfo1Name; case "Ex2": return deadlineNetSets.JobExtraInfo2Name; case "Ex3": return deadlineNetSets.JobExtraInfo3Name; case "Ex4": return deadlineNetSets.JobExtraInfo4Name; case "Ex5": return deadlineNetSets.JobExtraInfo5Name; case "Ex6": return deadlineNetSets.JobExtraInfo6Name; case "Ex7": return deadlineNetSets.JobExtraInfo7Name; case "Ex8": return deadlineNetSets.JobExtraInfo8Name; case "Ex9": return deadlineNetSets.JobExtraInfo9Name; default: throw new Err( Err.PARAM, "invalid extra info property name: " + name ); } }, capitalize: function( string ) { return string.charAt( 0 ).toUpperCase() + string.slice( 1 ); }, };