dockerapi 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/README.md +27 -18
- data/lib/docker/api/base.rb +1 -1
- data/lib/docker/api/container.rb +5 -5
- data/lib/docker/api/exec.rb +1 -1
- data/lib/docker/api/image.rb +3 -3
- data/lib/docker/api/system.rb +1 -1
- data/lib/docker/api/task.rb +1 -1
- data/lib/docker/api/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1965ae78342ecc9d450e4cc8262352405784881e31231d700dd606a15d9b58eb
|
4
|
+
data.tar.gz: bea7418501d8a3c08ea73f6c6970b08afe7358c7a15e790b7d51011bb69cd721
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91a6a4e8f85632f9294a07ae2e4bee24d4ff79543b1f50d240638b98d5e9bcc792193be15fa6003d97c73ec8f4b5126f0fe7294367160fce16f8eebd689b5198
|
7
|
+
data.tar.gz: 8a9a1b6ee4bbe7f10c0ae1396eb51e2cb246a37f490758a0278dfe7b06612870a4c12886caf01b9a575b255decec7faf5f0f4ef9d49e2df76a3cb80e4ca06776
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -21,6 +21,7 @@ Interact with Docker API directly from Ruby code. Comprehensive implementation (
|
|
21
21
|
* [Requests](#requests)
|
22
22
|
* [Response](#response)
|
23
23
|
* [Error handling](#error-handling)
|
24
|
+
* [Blocks](#blocks)
|
24
25
|
* [Development](#development)
|
25
26
|
* [Contributing](#contributing)
|
26
27
|
* [License](#license)
|
@@ -533,30 +534,38 @@ response.success?
|
|
533
534
|
|
534
535
|
To completely skip the validation process, add `:skip_validation => true` in the hash to be validated.
|
535
536
|
|
537
|
+
### Blocks
|
538
|
+
|
539
|
+
Some methods can receive a block to alter the default execution:
|
540
|
+
* Docker::API::Container#logs
|
541
|
+
* Docker::API::Container#attach
|
542
|
+
* Docker::API::Container#stats
|
543
|
+
* Docker::API::Container#export
|
544
|
+
* Docker::API::Container#get_archive
|
545
|
+
* Docker::API::Image#create
|
546
|
+
* Docker::API::Image#build
|
547
|
+
* Docker::API::Image#export
|
548
|
+
* Docker::API::System#event
|
549
|
+
* Docker::API::Exec#start
|
550
|
+
* Docker::API::Task#logs
|
551
|
+
|
552
|
+
Example:
|
553
|
+
```ruby
|
554
|
+
=> image = Docker::API::Image.new
|
555
|
+
|
556
|
+
=> image.create(fromImage: "nginx:alpine") do | chunk, bytes_remaining, bytes_total |
|
557
|
+
p chunk.to_s
|
558
|
+
end
|
559
|
+
```
|
560
|
+
|
561
|
+
The default blocks can be found in `Docker::API::Base`.
|
562
|
+
|
536
563
|
## Development
|
537
564
|
|
538
565
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
539
566
|
|
540
567
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
541
568
|
|
542
|
-
### Road to 1.0.0
|
543
|
-
|
544
|
-
| Class | Tests | Implementation | Refactoring |
|
545
|
-
|---|---|---|---|
|
546
|
-
| Image | Ok | Ok | Ok |
|
547
|
-
| Container | Ok | Ok | Ok |
|
548
|
-
| Volume | Ok | Ok | Ok |
|
549
|
-
| Network | Ok | Ok | Ok |
|
550
|
-
| System | Ok | Ok | Ok |
|
551
|
-
| Exec | Ok | Ok | Ok |
|
552
|
-
| Swarm | Ok | Ok | Ok |
|
553
|
-
| Node | Ok | Ok | Ok |
|
554
|
-
| Service | Ok | Ok | Ok |
|
555
|
-
| Task | Ok | Ok | Ok |
|
556
|
-
| Secret | Ok | Ok | Ok |
|
557
|
-
| Config | Ok | Ok | 8/14 |
|
558
|
-
| Plugin | Ok | Ok | 8/14 |
|
559
|
-
|
560
569
|
## Contributing
|
561
570
|
|
562
571
|
Bug reports and pull requests are welcome on GitHub at https://github.com/nu12/dockerapi.
|
data/lib/docker/api/base.rb
CHANGED
@@ -46,7 +46,7 @@ class Docker::API::Base
|
|
46
46
|
# @param &block: Replace the default output to stdout behavior.
|
47
47
|
def default_reader path, url, header = {"Content-Type" => "application/x-tar"}, &block
|
48
48
|
file = File.open(File.expand_path(path), "r")
|
49
|
-
response = @connection.request(method: :post, path: url , headers: header, request_block: lambda { file.read(Excon.defaults[:chunk_size]).to_s}, response_block: block_given? ? block
|
49
|
+
response = @connection.request(method: :post, path: url , headers: header, request_block: lambda { file.read(Excon.defaults[:chunk_size]).to_s}, response_block: block_given? ? block : default_streamer )
|
50
50
|
file.close
|
51
51
|
response
|
52
52
|
end
|
data/lib/docker/api/container.rb
CHANGED
@@ -204,7 +204,7 @@ class Docker::API::Container < Docker::API::Base
|
|
204
204
|
path = build_path("/containers/#{name}/logs", params)
|
205
205
|
|
206
206
|
if [true, 1 ].include? params[:follow]
|
207
|
-
@connection.request(method: :get, path: path , response_block: block_given? ? block
|
207
|
+
@connection.request(method: :get, path: path , response_block: block_given? ? block : default_streamer)
|
208
208
|
else
|
209
209
|
@connection.get(path)
|
210
210
|
end
|
@@ -220,7 +220,7 @@ class Docker::API::Container < Docker::API::Base
|
|
220
220
|
# @param params [Hash]: Parameters that are appended to the URL.
|
221
221
|
# @param &block: Replace the default output to stdout behavior.
|
222
222
|
def attach name, params = {}, &block
|
223
|
-
@connection.request(method: :post, path: build_path("/containers/#{name}/attach", params) , response_block: block_given? ? block
|
223
|
+
@connection.request(method: :post, path: build_path("/containers/#{name}/attach", params) , response_block: block_given? ? block : default_streamer)
|
224
224
|
end
|
225
225
|
|
226
226
|
##
|
@@ -247,7 +247,7 @@ class Docker::API::Container < Docker::API::Base
|
|
247
247
|
def stats name, params = {}, &block
|
248
248
|
path = build_path("/containers/#{name}/stats", params)
|
249
249
|
if [true, 1 ].include? params[:stream]
|
250
|
-
@connection.request(method: :get, path: path , response_block: block_given? ? block
|
250
|
+
@connection.request(method: :get, path: path , response_block: block_given? ? block : default_streamer)
|
251
251
|
else
|
252
252
|
@connection.get(path)
|
253
253
|
end
|
@@ -265,7 +265,7 @@ class Docker::API::Container < Docker::API::Base
|
|
265
265
|
def export name, path, &block
|
266
266
|
response = self.details(name)
|
267
267
|
return response unless response.status == 200
|
268
|
-
@connection.request(method: :get, path: "/containers/#{name}/export" , response_block: block_given? ? block
|
268
|
+
@connection.request(method: :get, path: "/containers/#{name}/export" , response_block: block_given? ? block : default_writer(path))
|
269
269
|
end
|
270
270
|
|
271
271
|
##
|
@@ -285,7 +285,7 @@ class Docker::API::Container < Docker::API::Base
|
|
285
285
|
return response unless response.status == 200
|
286
286
|
|
287
287
|
file = File.open( File.expand_path( path ) , "wb")
|
288
|
-
response = @connection.request(method: :get, path: build_path("/containers/#{name}/archive", params) , response_block: block_given? ? block
|
288
|
+
response = @connection.request(method: :get, path: build_path("/containers/#{name}/archive", params) , response_block: block_given? ? block : lambda { |chunk, remaining_bytes, total_bytes| file.write(chunk) })
|
289
289
|
file.close
|
290
290
|
response
|
291
291
|
end
|
data/lib/docker/api/exec.rb
CHANGED
@@ -26,7 +26,7 @@ class Docker::API::Exec < Docker::API::Base
|
|
26
26
|
# @param &block: Replace the default output to stdout behavior.
|
27
27
|
def start name, body = {}, &block
|
28
28
|
@connection.request(method: :post, path: "/exec/#{name}/start", headers: {"Content-Type": "application/json"}, body: body.to_json,
|
29
|
-
response_block: block_given? ? block
|
29
|
+
response_block: block_given? ? block : default_streamer )
|
30
30
|
end
|
31
31
|
|
32
32
|
##
|
data/lib/docker/api/image.rb
CHANGED
@@ -105,7 +105,7 @@ class Docker::API::Image < Docker::API::Base
|
|
105
105
|
# @param path [String]: Path to the exported file.
|
106
106
|
# @param &block: Replace the default file writing behavior.
|
107
107
|
def export name, path, &block
|
108
|
-
@connection.request(method: :get, path: build_path("/images/#{name}/get") , response_block: block_given? ? block
|
108
|
+
@connection.request(method: :get, path: build_path("/images/#{name}/get") , response_block: block_given? ? block : default_writer(path))
|
109
109
|
end
|
110
110
|
|
111
111
|
##
|
@@ -158,7 +158,7 @@ class Docker::API::Image < Docker::API::Base
|
|
158
158
|
# @param authentication [Hash]: Authentication parameters.
|
159
159
|
# @param &block: Replace the default output to stdout behavior.
|
160
160
|
def create params = {}, authentication = {}, &block
|
161
|
-
request = {method: :post, path: build_path("/images/create", params), response_block: block_given? ? block
|
161
|
+
request = {method: :post, path: build_path("/images/create", params), response_block: block_given? ? block : default_streamer }
|
162
162
|
if params.has_key? :fromSrc and !params[:fromSrc].match(/^(http|https)/) # then it's using a tar file
|
163
163
|
path = params[:fromSrc]
|
164
164
|
params[:fromSrc] = "-"
|
@@ -186,7 +186,7 @@ class Docker::API::Image < Docker::API::Base
|
|
186
186
|
headers.merge!({"X-Registry-Config": auth_encoder(authentication) }) if authentication.keys.size > 0
|
187
187
|
|
188
188
|
if path == nil and params.has_key? :remote
|
189
|
-
response = @connection.request(method: :post, path: build_path("/build", params), headers: headers, response_block: block_given? ? block
|
189
|
+
response = @connection.request(method: :post, path: build_path("/build", params), headers: headers, response_block: block_given? ? block : default_streamer)
|
190
190
|
else
|
191
191
|
default_reader(path, build_path("/build", params), headers)
|
192
192
|
end
|
data/lib/docker/api/system.rb
CHANGED
@@ -23,7 +23,7 @@ class Docker::API::System < Docker::API::Base
|
|
23
23
|
# @param params [Hash]: Parameters that are appended to the URL.
|
24
24
|
# @param &block: Replace the default output to stdout behavior.
|
25
25
|
def events params = {}, &block
|
26
|
-
@connection.request(method: :get, path: build_path("/events", params), response_block: block_given? ? block
|
26
|
+
@connection.request(method: :get, path: build_path("/events", params), response_block: block_given? ? block : default_streamer )
|
27
27
|
end
|
28
28
|
|
29
29
|
##
|
data/lib/docker/api/task.rb
CHANGED
@@ -36,7 +36,7 @@ class Docker::API::Task < Docker::API::Base
|
|
36
36
|
path = build_path("/tasks/#{name}/logs", params)
|
37
37
|
|
38
38
|
if [true, 1 ].include? params[:follow]
|
39
|
-
@connection.request(method: :get, path: path , response_block: block_given? ? block
|
39
|
+
@connection.request(method: :get, path: path , response_block: block_given? ? block : default_streamer)
|
40
40
|
else
|
41
41
|
@connection.get(path)
|
42
42
|
end
|
data/lib/docker/api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dockerapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alysson A. Costa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -87,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
|
-
rubygems_version: 3.1.
|
90
|
+
rubygems_version: 3.1.4
|
91
91
|
signing_key:
|
92
92
|
specification_version: 4
|
93
93
|
summary: Interact with Docker API from Ruby code.
|