node-deadline
Version:
Module to interface with Deadline Compute Management System by Thinkbox Software
122 lines (101 loc) • 2.87 kB
JavaScript
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 );
},
};