mesos
Version:
Mesos clients
70 lines (52 loc) • 1.1 kB
JavaScript
/**
* Task client.
*/
;
/**
* Module dependencies.
*/
var utils = require('../utils');
/**
* Initialize a new `Task` client.
*/
function Task(chronos) {
this.chronos = chronos;
}
/**
* Update task.
*/
Task.prototype.update = function(opts, callback) {
opts = opts || {};
var req = {
name: 'task.update',
path: '/task/{id}',
params: { id: opts.id },
body: { statusCode: opts.statusCode },
};
try {
if (!opts.id) throw new Error('id required');
if (!opts.hasOwnProperty('statusCode')) {
throw new Error('statusCode required');
}
} catch (err) {
return callback(this.chronos._err(err, req));
}
this.chronos._put(req, utils.empty, callback);
};
/**
* Kill tasks.
*/
Task.prototype.kill = function(opts, callback) {
opts = opts || {};
var req = {
name: 'task.kill',
path: '/task/kill/{job}',
params: { job: opts.job },
};
if (!opts.job) return callback(this.chronos._err('job required', req));
this.chronos._delete(req, utils.empty, callback);
};
/**
* Module Exports.
*/
exports.Task = Task;