stop all containers of an app

This commit is contained in:
Girish Ramakrishnan
2015-10-20 00:05:07 -07:00
parent 6d04481c27
commit daba68265c
2 changed files with 19 additions and 1 deletions

View File

@@ -16,6 +16,7 @@ exports = module.exports = {
createContainer: createContainer,
startContainer: startContainer,
stopContainer: stopContainer,
stopContainers: stopContainers,
deleteContainer: deleteContainer,
deleteImage: deleteImage,
deleteContainers: deleteContainers
@@ -289,6 +290,23 @@ function deleteContainers(appId, callback) {
});
}
function stopContainers(appId, callback) {
assert.strictEqual(typeof appId, 'string');
assert.strictEqual(typeof callback, 'function');
var docker = exports.connection;
debug('stopping containers of %s', appId);
docker.listContainers({ all: 1, filters: JSON.stringify({ label: [ 'appId=' + appId ] }) }, function (error, containers) {
if (error) return callback(error);
async.eachSeries(containers, function (container, iteratorDone) {
stopContainer(container.Id, iteratorDone);
}, callback);
});
}
function deleteImage(manifest, callback) {
assert(!manifest || typeof manifest === 'object');
assert.strictEqual(typeof callback, 'function');