docker-api 1.33.6 → 1.34.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/docker.rb +3 -3
- data/lib/docker/container.rb +21 -14
- data/lib/docker/exec.rb +6 -6
- data/lib/docker/image.rb +7 -1
- data/lib/docker/network.rb +12 -8
- data/lib/docker/util.rb +8 -8
- data/lib/docker/version.rb +1 -1
- data/lib/docker/volume.rb +6 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b1247193395e3bff8d8813de77e6b2ec7462b5a
|
4
|
+
data.tar.gz: d2eab94c0fc86823c3c2367bc2ac7fdcf9c439d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da393c71a9de916af0748b925eb6643d4a716701de07fbcb27349cbf5d6dad1a19757a503b6d94168bc7e7839641b8a23a3d6d2784b12fc1a1b1a0a670b6e51d
|
7
|
+
data.tar.gz: 593f911817f00d6c8ea3da3176549dad5a487c047c2608ddfe05297187c0db3876a88944ff7773cf364b3e39e9f1b4b67044031cf0b6447d44229a17b3e929a8
|
data/lib/docker.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'cgi'
|
2
|
-
require '
|
2
|
+
require 'multi_json'
|
3
3
|
require 'excon'
|
4
4
|
require 'tempfile'
|
5
5
|
require 'base64'
|
@@ -121,8 +121,8 @@ module Docker
|
|
121
121
|
|
122
122
|
# Login to the Docker registry.
|
123
123
|
def authenticate!(options = {}, connection = self.connection)
|
124
|
-
creds = options
|
125
|
-
connection.post('/auth', {}, :
|
124
|
+
creds = MultiJson.dump(options)
|
125
|
+
connection.post('/auth', {}, body: creds)
|
126
126
|
@creds = creds
|
127
127
|
true
|
128
128
|
rescue Docker::Error::ServerError, Docker::Error::UnauthorizedError
|
data/lib/docker/container.rb
CHANGED
@@ -135,10 +135,10 @@ class Docker::Container
|
|
135
135
|
# Based on the link, the config passed as run, needs to be passed as the
|
136
136
|
# body of the post so capture it, remove from the options, and pass it via
|
137
137
|
# the post body
|
138
|
-
config = options.delete('run')
|
139
|
-
hash = Docker::Util.parse_json(
|
140
|
-
|
141
|
-
|
138
|
+
config = MultiJson.dump(options.delete('run'))
|
139
|
+
hash = Docker::Util.parse_json(
|
140
|
+
connection.post('/commit', options, body: config)
|
141
|
+
)
|
142
142
|
Docker::Image.send(:new, self.connection, hash)
|
143
143
|
end
|
144
144
|
|
@@ -185,7 +185,7 @@ class Docker::Container
|
|
185
185
|
end
|
186
186
|
|
187
187
|
def update(opts)
|
188
|
-
connection.post(path_for(:update), {}, body: opts
|
188
|
+
connection.post(path_for(:update), {}, body: MultiJson.dump(opts))
|
189
189
|
end
|
190
190
|
|
191
191
|
def streaming_logs(opts = {}, &block)
|
@@ -199,7 +199,7 @@ class Docker::Container
|
|
199
199
|
end
|
200
200
|
|
201
201
|
def start!(opts = {})
|
202
|
-
connection.post(path_for(:start), {}, :
|
202
|
+
connection.post(path_for(:start), {}, body: MultiJson.dump(opts))
|
203
203
|
self
|
204
204
|
end
|
205
205
|
|
@@ -225,7 +225,7 @@ class Docker::Container
|
|
225
225
|
timeout = opts.delete('timeout')
|
226
226
|
query = {}
|
227
227
|
request_options = {
|
228
|
-
:body => opts
|
228
|
+
:body => MultiJson.dump(opts)
|
229
229
|
}
|
230
230
|
if timeout
|
231
231
|
query['t'] = timeout
|
@@ -267,9 +267,11 @@ class Docker::Container
|
|
267
267
|
end
|
268
268
|
|
269
269
|
def copy(path, &block)
|
270
|
-
connection.post(
|
271
|
-
:
|
272
|
-
|
270
|
+
connection.post(
|
271
|
+
path_for(:copy),
|
272
|
+
{},
|
273
|
+
body: MultiJson.dump('Resource' => path),
|
274
|
+
response_block: block
|
273
275
|
)
|
274
276
|
self
|
275
277
|
end
|
@@ -332,10 +334,9 @@ class Docker::Container
|
|
332
334
|
|
333
335
|
# Create a new Container.
|
334
336
|
def self.create(opts = {}, conn = Docker.connection)
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
resp = conn.post('/containers/create', query, :body => opts.to_json)
|
337
|
+
query = opts.select {|key| ['name', :name].include?(key) }
|
338
|
+
clean_opts = opts.reject {|key| ['name', :name].include?(key) }
|
339
|
+
resp = conn.post('/containers/create', query, :body => MultiJson.dump(clean_opts))
|
339
340
|
hash = Docker::Util.parse_json(resp) || {}
|
340
341
|
new(conn, hash)
|
341
342
|
end
|
@@ -353,6 +354,12 @@ class Docker::Container
|
|
353
354
|
hashes.map { |hash| new(conn, hash) }
|
354
355
|
end
|
355
356
|
|
357
|
+
# Prune images
|
358
|
+
def self.prune(conn = Docker.connection)
|
359
|
+
conn.post("/containers/prune", {})
|
360
|
+
nil
|
361
|
+
end
|
362
|
+
|
356
363
|
# Convenience method to return the path for a particular resource.
|
357
364
|
def path_for(resource)
|
358
365
|
"/containers/#{self.id}/#{resource}"
|
data/lib/docker/exec.rb
CHANGED
@@ -20,7 +20,7 @@ class Docker::Exec
|
|
20
20
|
def self.create(options = {}, conn = Docker.connection)
|
21
21
|
container = options.delete('Container')
|
22
22
|
resp = conn.post("/containers/#{container}/exec", {},
|
23
|
-
:
|
23
|
+
body: MultiJson.dump(options))
|
24
24
|
hash = Docker::Util.parse_json(resp) || {}
|
25
25
|
new(conn, hash)
|
26
26
|
end
|
@@ -51,11 +51,11 @@ class Docker::Exec
|
|
51
51
|
read_timeout = options[:wait]
|
52
52
|
|
53
53
|
# Create API Request Body
|
54
|
-
body =
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
excon_params = { :
|
54
|
+
body = MultiJson.dump(
|
55
|
+
'Tty' => tty,
|
56
|
+
'Detach' => detached
|
57
|
+
)
|
58
|
+
excon_params = { body: body }
|
59
59
|
|
60
60
|
msgs = Docker::Messages.new
|
61
61
|
unless detached
|
data/lib/docker/image.rb
CHANGED
@@ -108,7 +108,7 @@ class Docker::Image
|
|
108
108
|
|
109
109
|
# Create a new Image.
|
110
110
|
def create(opts = {}, creds = nil, conn = Docker.connection, &block)
|
111
|
-
credentials = creds.nil? ? Docker.creds : creds
|
111
|
+
credentials = creds.nil? ? Docker.creds : MultiJson.dump(creds)
|
112
112
|
headers = credentials && Docker::Util.build_auth_header(credentials) || {}
|
113
113
|
body = ''
|
114
114
|
conn.post(
|
@@ -137,6 +137,12 @@ class Docker::Image
|
|
137
137
|
end
|
138
138
|
alias_method :delete, :remove
|
139
139
|
|
140
|
+
# Prune images
|
141
|
+
def prune(conn = Docker.connection)
|
142
|
+
conn.post("/images/prune", {})
|
143
|
+
end
|
144
|
+
|
145
|
+
|
140
146
|
# Save the raw binary representation or one or more Docker images
|
141
147
|
#
|
142
148
|
# @param names [String, Array#String] The image(s) you wish to save
|
data/lib/docker/network.rb
CHANGED
@@ -3,17 +3,17 @@ class Docker::Network
|
|
3
3
|
include Docker::Base
|
4
4
|
|
5
5
|
def connect(container, opts = {}, body_opts = {})
|
6
|
+
body = MultiJson.dump({ container: container }.merge(body_opts))
|
6
7
|
Docker::Util.parse_json(
|
7
|
-
connection.post(path_for('connect'), opts,
|
8
|
-
body: { container: container }.merge(body_opts).to_json)
|
8
|
+
connection.post(path_for('connect'), opts, body: body)
|
9
9
|
)
|
10
10
|
reload
|
11
11
|
end
|
12
12
|
|
13
13
|
def disconnect(container, opts = {})
|
14
|
+
body = MultiJson.dump(container: container)
|
14
15
|
Docker::Util.parse_json(
|
15
|
-
connection.post(path_for('disconnect'), opts,
|
16
|
-
body: { container: container }.to_json)
|
16
|
+
connection.post(path_for('disconnect'), opts, body: body)
|
17
17
|
)
|
18
18
|
reload
|
19
19
|
end
|
@@ -41,12 +41,11 @@ class Docker::Network
|
|
41
41
|
|
42
42
|
class << self
|
43
43
|
def create(name, opts = {}, conn = Docker.connection)
|
44
|
-
default_opts = {
|
44
|
+
default_opts = MultiJson.dump({
|
45
45
|
'Name' => name,
|
46
46
|
'CheckDuplicate' => true
|
47
|
-
}
|
48
|
-
resp = conn.post('/networks/create', {},
|
49
|
-
body: default_opts.merge(opts).to_json)
|
47
|
+
}.merge(opts))
|
48
|
+
resp = conn.post('/networks/create', {}, body: default_opts)
|
50
49
|
response_hash = Docker::Util.parse_json(resp) || {}
|
51
50
|
get(response_hash['Id'], {}, conn) || {}
|
52
51
|
end
|
@@ -67,6 +66,11 @@ class Docker::Network
|
|
67
66
|
nil
|
68
67
|
end
|
69
68
|
alias_method :delete, :remove
|
69
|
+
|
70
|
+
def prune(conn = Docker.connection)
|
71
|
+
conn.post("/networks/prune", {})
|
72
|
+
nil
|
73
|
+
end
|
70
74
|
end
|
71
75
|
|
72
76
|
# Convenience method to return the path for a particular resource.
|
data/lib/docker/util.rb
CHANGED
@@ -102,8 +102,8 @@ module Docker::Util
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def parse_json(body)
|
105
|
-
|
106
|
-
rescue
|
105
|
+
MultiJson.load(body) unless body.nil? || body.empty? || (body == 'null')
|
106
|
+
rescue MultiJson::ParseError => ex
|
107
107
|
raise UnexpectedResponseError, ex.message
|
108
108
|
end
|
109
109
|
|
@@ -232,7 +232,7 @@ module Docker::Util
|
|
232
232
|
end
|
233
233
|
|
234
234
|
def build_auth_header(credentials)
|
235
|
-
credentials = credentials
|
235
|
+
credentials = MultiJson.dump(credentials) if credentials.is_a?(Hash)
|
236
236
|
encoded_creds = Base64.urlsafe_encode64(credentials)
|
237
237
|
{
|
238
238
|
'X-Registry-Auth' => encoded_creds
|
@@ -243,13 +243,13 @@ module Docker::Util
|
|
243
243
|
if credentials.is_a?(String)
|
244
244
|
credentials = JSON.parse(credentials, symbolize_names: true)
|
245
245
|
end
|
246
|
-
header =
|
246
|
+
header = MultiJson.dump(
|
247
247
|
credentials[:serveraddress].to_s => {
|
248
|
-
|
249
|
-
|
250
|
-
|
248
|
+
'username' => credentials[:username].to_s,
|
249
|
+
'password' => credentials[:password].to_s,
|
250
|
+
'email' => credentials[:email].to_s
|
251
251
|
}
|
252
|
-
|
252
|
+
)
|
253
253
|
|
254
254
|
encoded_header = Base64.urlsafe_encode64(header)
|
255
255
|
|
data/lib/docker/version.rb
CHANGED
data/lib/docker/volume.rb
CHANGED
@@ -31,9 +31,14 @@ class Docker::Volume
|
|
31
31
|
# creates a volume with an arbitrary name
|
32
32
|
def create(name, opts = {}, conn = Docker.connection)
|
33
33
|
opts['Name'] = name
|
34
|
-
resp = conn.post('/volumes/create', {}, :
|
34
|
+
resp = conn.post('/volumes/create', {}, body: MultiJson.dump(opts))
|
35
35
|
hash = Docker::Util.parse_json(resp) || {}
|
36
36
|
new(conn, hash)
|
37
37
|
end
|
38
|
+
|
39
|
+
def prune(conn = Docker.connection)
|
40
|
+
conn.post("/volumes/prune")
|
41
|
+
end
|
42
|
+
|
38
43
|
end
|
39
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.34.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Swipely, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -16,16 +16,16 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.47.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.47.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: multi_json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|