-
-
Notifications
You must be signed in to change notification settings - Fork 471
/
Copy pathplugin.js
127 lines (103 loc) · 2.81 KB
/
plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*jshint -W030 */
var expect = require('chai').expect;
var docker = require('./spec_helper').docker;
describe("#plugin", function() {
describe("#listPlugins", function() {
it("should list plugins", function(done) {
this.timeout(5000);
function handler(err, data) {
expect(err).to.be.null;
expect(data).to.be.a('array');
done();
}
docker.listPlugins({}, handler);
});
});
describe("#install", function() {
var installed = false;
it("should get plugin privileges", function(done) {
this.timeout(15000);
var plugin = docker.getPlugin('vieux/sshfs');
function handler(err, data) {
expect(err).to.be.null;
expect(data).to.be.a('array');
done();
}
plugin.privileges(handler);
});
it("should pull a plugin", function(done) {
this.timeout(60000);
var plugin = docker.getPlugin('sshfs');
//geezzz url, querystring and body...
plugin.pull({
'_query': {
'remote': 'vieux/sshfs'
},
'_body': [{
Name: 'network',
Description: 'permissions to access a network',
Value: ['host']
},
{
Name: 'mount',
Description: 'host path to mount',
Value: ['/var/lib/docker/plugins/']
},
{
Name: 'mount',
Description: 'host path to mount',
Value: ['']
},
{
Name: 'device',
Description: 'host device to access',
Value: ['/dev/fuse']
},
{
Name: 'capabilities',
Description: 'list of additional capabilities required',
Value: ['CAP_SYS_ADMIN']
}
]
}, function(err, stream) {
if (err) return done(err);
stream.pipe(process.stdout);
stream.once('end', done);
});
});
it("should enable a plugin", function(done) {
this.timeout(15000);
var plugin = docker.getPlugin('sshfs');
function handler(err, data) {
expect(err).to.be.null;
installed = true;
done();
}
plugin.enable({
'timeout': 5
}, handler);
});
it("should disable a plugin", function(done) {
this.timeout(15000);
var plugin = docker.getPlugin('sshfs');
function handler(err, data) {
if (installed === true) {
expect(err).to.be.null;
} else {
expect(err).to.be.ok;
}
done();
}
plugin.disable(handler);
});
it("should remove a plugin", function(done) {
this.timeout(15000);
var plugin = docker.getPlugin('sshfs');
function handler(err) {
expect(err).to.be.null;
done();
}
plugin.remove(handler);
});
});
});