mecano
Version:
Common functions for system deployment.
60 lines (56 loc) • 1.32 kB
JavaScript
// Generated by CoffeeScript 1.11.1
var docker, util;
module.exports = function(options) {
var cmd, k, ref, v;
options.log({
message: "Entering Docker stop",
level: 'DEBUG',
module: 'mecano/lib/docker/stop'
});
if (options.docker == null) {
options.docker = {};
}
ref = options.docker;
for (k in ref) {
v = ref[k];
if (options[k] == null) {
options[k] = v;
}
}
if (options.container == null) {
throw Error('Missing container parameter');
}
cmd = 'stop';
if (options.timeout != null) {
cmd += " -t " + options.timeout;
}
cmd += " " + options.container;
this.docker.status({
shy: true
}, options, function(err, is_running) {
if (err) {
throw err;
}
if (is_running) {
options.log({
message: "Stopping container " + options.container,
level: 'INFO',
module: 'mecano/lib/docker/stop'
});
} else {
options.log({
message: "Container already stopped " + options.container + " (Skipping)",
level: 'INFO',
module: 'mecano/lib/docker/stop'
});
}
if (!is_running) {
return this.end();
}
});
return this.execute({
cmd: docker.wrap(options, cmd)
}, docker.callback);
};
docker = require('../misc/docker');
util = require('util');