mecano
Version:
Common functions for system deployment.
53 lines (50 loc) • 1.38 kB
JavaScript
// Generated by CoffeeScript 1.11.1
var docker;
module.exports = function(options, callback) {
var cmd, k, ref, v;
options.log({
message: "Entering Docker checksum",
level: 'DEBUG',
module: 'mecano/lib/docker/checksum'
});
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.image == null) {
options.image = options.repository;
}
if (options.image == null) {
return callback(Error('Missing repository parameter'));
}
if (options.tag == null) {
options.tag = 'latest';
}
cmd = "images --no-trunc | grep '" + options.image + "' | grep '" + options.tag + "' | awk '{ print $3 }'";
options.log({
message: "Getting image checksum :" + options.image,
level: 'INFO',
module: 'mecano/lib/docker/checksum'
});
return this.execute({
cmd: docker.wrap(options, cmd)
}, function(err, executed, stdout, stderr) {
var checksum;
checksum = stdout === '' ? false : stdout.toString().trim();
if (executed) {
options.log({
message: "Image checksum for " + options.image + ": " + checksum,
level: 'INFO',
module: 'mecano/lib/docker/checksum'
});
}
return callback(err, executed, checksum);
});
};
docker = require('../misc/docker');