UNPKG

soap-htcondor

Version:

A wrapper for consuming HTCondor soap API

133 lines (126 loc) 3.77 kB
module.exports = function(Schedduler) { Schedduler.prototype.createJobTemplate = function(eee, cb) { this.client.createJobTemplate(eee, function(err, result) { if (err) { cb(err); return; } if(result.response.status.code !== "SUCCESS"){ cb(result.response.status.code) return; } var classAd = result.response.classAd; cb(null, classAd); }); } Schedduler.prototype.submit = function(tt, cl, jb, classAd, cb) { this.client.submit({ transaction: tt, clusterId: cl, jobId: jb, jobAd: classAd }, function(error, result) { if (error) { cb(error); return; } if(result.response.status.code !== "SUCCESS"){ cb(result.response.status) return; } cb(null, result); }); } Schedduler.prototype.newJob = function(tt, cl, cb) { this.client.newJob({ transaction: tt, clusterId: cl }, function(err, result) { //console.log(err) if (err) { cb(err); return; } if(result.response.status.code !== "SUCCESS"){ cb(result.response.status.code) return; } jb = result.response.integer; cb(null, jb) }); } Schedduler.prototype.removeJob = function(client, tt, cl, jb, reason, forceRemoval, cb) { this.client.removeJob({ transaction: tt, clusterId: cl, jobId: jb, reason: "Ninguna", forceRemoval: true }, function(err, result) { if (err) { cb(err); return; } if(result.response.status.code !== "SUCCESS"){ cb(result.response.status.code) return; } cb(null, result.response); }); } Schedduler.prototype.holdJob = function(transaction, clusterId, jobId, reason, emailUser, emailAdmin, systemHold, cb) { this.client.holdJob({ transaction: tt, clusterId: cl, jobId: jb, reason: reason, emailUser: emailUser, emailAdmin: emailAdmin, systemHold: systemHold }, function(err, result) { if (err) { cb(err); return; } if(result.response.status.code !== "SUCCESS"){ cb(result.response.status.code) return; } cb(null, result.response) }); } Schedduler.prototype.releaseJob = function(transaction, clusterId, jobId, reason, emailUser, emailAdmin, cb) { this.client.releaseJob({ transaction: tt, clusterId: cl, jobId: jb, reason: reason, emailUser: emailUser, emailAdmin: emailAdmin }, function(err, result) { if (err) { cb(err); return; } if(result.response.status.code !== "SUCCESS"){ cb(result.response.status.code) return; } cb(null) //console.dir(result.response); }); } Schedduler.prototype.requestReschedule = function(cb) { this.client.requestReschedule({}, function(err, result) { if (err) { cb(err); return; } if(result.response.code !== "SUCCESS"){ cb(result.response.code) return; } cb(null); }); } }