Comparing version 2.5.1 to 2.5.2
@@ -15,2 +15,3 @@ var EventEmitter = require('events').EventEmitter, | ||
Secret = require('./secret'), | ||
Config = require('./config'), | ||
Task = require('./task'), | ||
@@ -387,2 +388,10 @@ Node = require('./node'), | ||
/** | ||
* Fetches a Config by id | ||
* @param {String} id network's id | ||
*/ | ||
Docker.prototype.getConfig = function(id) { | ||
return new Config(this.modem, id); | ||
}; | ||
/** | ||
* Fetches an Exec instance by ID | ||
@@ -611,3 +620,44 @@ * @param {String} id Exec instance's ID | ||
/** | ||
* Creates a new config | ||
* @param {Object} opts Config options | ||
* @param {Function} callback Callback | ||
*/ | ||
Docker.prototype.createConfig = function(opts, callback) { | ||
var args = util.processArgs(opts, callback); | ||
var self = this; | ||
var optsf = { | ||
path: '/configs/create?', | ||
method: 'POST', | ||
options: args.opts, | ||
statusCodes: { | ||
200: true, // unofficial, but proxies may return it | ||
201: true, | ||
406: 'server error or node is not part of a swarm', | ||
409: 'name conflicts with an existing object', | ||
500: 'server error' | ||
} | ||
}; | ||
if (args.callback === undefined) { | ||
return new this.modem.Promise(function(resolve, reject) { | ||
self.modem.dial(optsf, function(err, data) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
resolve(self.getConfig(data.ID)); | ||
}); | ||
}); | ||
} else { | ||
this.modem.dial(optsf, function(err, data) { | ||
if (err) return args.callback(err, data); | ||
args.callback(err, self.getConfig(data.ID)); | ||
}); | ||
} | ||
}; | ||
/** | ||
* Lists secrets | ||
@@ -647,2 +697,36 @@ * @param {Function} callback Callback | ||
/** | ||
* Lists configs | ||
* @param {Function} callback Callback | ||
*/ | ||
Docker.prototype.listConfigs = function(opts, callback) { | ||
var self = this; | ||
var args = util.processArgs(opts, callback); | ||
var optsf = { | ||
path: '/configs?', | ||
method: 'GET', | ||
options: args.opts, | ||
statusCodes: { | ||
200: true, | ||
500: 'server error' | ||
} | ||
}; | ||
if (args.callback === undefined) { | ||
return new this.modem.Promise(function(resolve, reject) { | ||
self.modem.dial(optsf, function(err, data) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
resolve(data); | ||
}); | ||
}); | ||
} else { | ||
this.modem.dial(optsf, function(err, data) { | ||
args.callback(err, data); | ||
}); | ||
} | ||
}; | ||
/** | ||
* Creates a new plugin | ||
@@ -649,0 +733,0 @@ * @param {Object} opts Create options |
@@ -51,2 +51,37 @@ var util = require('./util'); | ||
/** | ||
* Distribution | ||
* @param {Function} callback Callback, if specified Docker will be queried. | ||
* @return {Object} Name only if callback isn't specified. | ||
*/ | ||
Image.prototype.distribution = function(callback) { | ||
var self = this; | ||
var opts = { | ||
path: '/distribution/' + this.name + '/json', | ||
method: 'GET', | ||
statusCodes: { | ||
200: true, | ||
401: 'no such image', | ||
500: 'server error' | ||
} | ||
}; | ||
if(callback === undefined) { | ||
return new this.modem.Promise(function(resolve, reject) { | ||
self.modem.dial(opts, function(err, data) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
resolve(data); | ||
}); | ||
}); | ||
} else { | ||
this.modem.dial(opts, function(err, data) { | ||
if (err) return callback(err, data); | ||
callback(err, data); | ||
}); | ||
} | ||
}; | ||
/** | ||
* History | ||
@@ -53,0 +88,0 @@ * @param {Function} callback Callback |
@@ -50,3 +50,42 @@ var util = require('./util'); | ||
/** | ||
* Task logs | ||
* @param {Object} opts Logs options. (optional) | ||
* @param {Function} callback Callback with data | ||
*/ | ||
Task.prototype.logs = function(opts, callback) { | ||
var self = this; | ||
var args = util.processArgs(opts, callback, this.defaultOptions.log); | ||
var optsf = { | ||
path: '/tasks/' + this.id + '/logs?', | ||
method: 'GET', | ||
isStream: args.opts.follow || false, | ||
statusCodes: { | ||
101: true, | ||
200: true, | ||
404: 'no such container', | ||
500: 'server error', | ||
503: 'node is not part of a swarm' | ||
}, | ||
options: args.opts | ||
}; | ||
if(args.callback === undefined) { | ||
return new this.modem.Promise(function(resolve, reject) { | ||
self.modem.dial(optsf, function(err, data) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
resolve(data); | ||
}); | ||
}); | ||
} else { | ||
this.modem.dial(optsf, function(err, data) { | ||
args.callback(err, data); | ||
}); | ||
} | ||
}; | ||
module.exports = Task; |
{ | ||
"name": "dockerode", | ||
"description": "Docker Remote API module.", | ||
"version": "2.5.1", | ||
"version": "2.5.2", | ||
"author": "Pedro Dias <petermdias@gmail.com>", | ||
@@ -6,0 +6,0 @@ "maintainers": [ |
# dockerode | ||
[![NPM](https://nodei.co/npm/dockerode.png?downloads=true&downloadRank=true)](https://nodei.co/npm/dockerode/) | ||
[![NPM](https://nodei.co/npm-dl/dockerode.png?months=6&height=3)](https://nodei.co/npm/dockerode/) | ||
Not another Node.js Docker Remote API module. | ||
Why `dockerode` is different from other Docker node.js modules: | ||
`dockerode` objectives: | ||
@@ -16,3 +13,3 @@ * **streams** - `dockerode` does NOT break any stream, it passes them to you allowing for some stream voodoo. | ||
* **feature-rich** - There's a real effort in keeping **All** `Docker` Remote API features implemented and tested. | ||
* **interfaces** - Features a **callback** and a **promise** based interfaces, making everyone happy :) | ||
* **interfaces** - Features **callback** and **promise** based interfaces, making everyone happy :) | ||
@@ -19,0 +16,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
174937
20
4057
345