dockerapi 0.9.0 → 0.10.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 +10 -0
- data/Gemfile.lock +1 -1
- data/README.md +32 -1
- data/lib/docker/api/service.rb +42 -0
- data/lib/docker/api/version.rb +1 -1
- data/lib/dockerapi.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aeb3c1971c26c62d0737576e5ec79f2abcf536b1148be5272be8f501dfcae852
|
4
|
+
data.tar.gz: 1392073ca52d6fecfc12e642368713c2fa44a9ebbcd7629de5fb54faf9ac7209
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b03b8e5ce6d95f19c8dd6d357277a102fcc170b35ac989cd080db27c66efcad63125aaedab1c971a8ed435bed7c7447979d332a1b7f43686a2217907bf21fe8
|
7
|
+
data.tar.gz: 62cd2888ad859834cf949a6189f6e863e1b2f23ce9849fce4a39a1248cfa74efeaff5e0e6220a165d6b7980445a7773dc4bc3f8d4a678fc364a06b205fc07630
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -134,7 +134,7 @@ container.top("nginx").json
|
|
134
134
|
# View filesystem changes
|
135
135
|
container.changes("nginx")
|
136
136
|
|
137
|
-
# View
|
137
|
+
# View container logs
|
138
138
|
container.logs("nginx", stdout: true)
|
139
139
|
container.logs("nginx", stdout: true, follow: true)
|
140
140
|
|
@@ -297,6 +297,37 @@ node.update("node-id", {version: "version"}, {Role: "manager", Availability: "ac
|
|
297
297
|
node.delete("node-id")
|
298
298
|
```
|
299
299
|
|
300
|
+
### Service
|
301
|
+
```ruby
|
302
|
+
# Connect to local service endpoints
|
303
|
+
service = Docker::API::Service.new
|
304
|
+
|
305
|
+
# List services
|
306
|
+
service.list
|
307
|
+
|
308
|
+
# Create a service
|
309
|
+
service.create({Name: "nginx-service",
|
310
|
+
TaskTemplate: {ContainerSpec: { Image: "nginx:alpine" }},
|
311
|
+
Mode: { Replicated: { Replicas: 2 } },
|
312
|
+
EndpointSpec: { Ports: [ {Protocol: "tcp", PublishedPort: 80, TargetPort: 80} ] }
|
313
|
+
})
|
314
|
+
|
315
|
+
# Update a service (needs version and current Spec)
|
316
|
+
version = service.details( service ).json["Version"]["Index"]
|
317
|
+
spec = service.details(service).json["Spec"]
|
318
|
+
service.update("nginx-service", {version: version}, spec.merge!({ Mode: { Replicated: { Replicas: 1 } } }))
|
319
|
+
|
320
|
+
# View service logs
|
321
|
+
service.logs("nginx-service", stdout: true)
|
322
|
+
|
323
|
+
# Inspect service
|
324
|
+
service.details("nginx-service")
|
325
|
+
|
326
|
+
# Delete service
|
327
|
+
service.delete("nginx-service")
|
328
|
+
|
329
|
+
```
|
330
|
+
|
300
331
|
### Connection
|
301
332
|
|
302
333
|
By default Docker::API::Connection will connect to local Docker socket at `/var/run/docker.sock`. See examples below to use a different path or connect to a remote address.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Docker
|
2
|
+
module API
|
3
|
+
class Service < Docker::API::Base
|
4
|
+
|
5
|
+
def list params = {}
|
6
|
+
validate Docker::API::InvalidParameter, [:filters], params
|
7
|
+
@connection.get(build_path("/services", params))
|
8
|
+
end
|
9
|
+
|
10
|
+
def create body = {}, authentication = {}
|
11
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :TaskTemplate, :Mode, :UpdateConfig, :RollbackConfig, :Networks, :EndpointSpec], body
|
12
|
+
headers = {"Content-Type": "application/json"}
|
13
|
+
headers.merge!({"X-Registry-Auth" => Base64.urlsafe_encode64(authentication.to_json.to_s)}) if authentication.keys.size > 0
|
14
|
+
@connection.request(method: :post, path: "/services/create", headers: headers, body: body.to_json)
|
15
|
+
end
|
16
|
+
|
17
|
+
def update name, params = {}, body = {}, authentication = {}
|
18
|
+
# view https://github.com/docker/swarmkit/issues/1394#issuecomment-240850719
|
19
|
+
validate Docker::API::InvalidParameter, [:version, :registryAuthFrom, :rollback], params
|
20
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :TaskTemplate, :Mode, :UpdateConfig, :RollbackConfig, :Networks, :EndpointSpec], body
|
21
|
+
headers = {"Content-Type": "application/json"}
|
22
|
+
headers.merge!({"X-Registry-Auth" => Base64.urlsafe_encode64(authentication.to_json.to_s)}) if authentication.keys.size > 0
|
23
|
+
@connection.request(method: :post, path: build_path("/services/#{name}/update", params), headers: headers, body: body.to_json)
|
24
|
+
end
|
25
|
+
|
26
|
+
def details name, params = {}
|
27
|
+
validate Docker::API::InvalidParameter, [:insertDefaults], params
|
28
|
+
@connection.get(build_path("/services/#{name}", params))
|
29
|
+
end
|
30
|
+
|
31
|
+
def logs name, params = {}
|
32
|
+
validate Docker::API::InvalidParameter, [:details, :follow, :stdout, :stderr, :since, :timestamps, :tail], params
|
33
|
+
@connection.get(build_path("/services/#{name}/logs", params))
|
34
|
+
end
|
35
|
+
|
36
|
+
def delete name
|
37
|
+
@connection.delete("/services/#{name}")
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/docker/api/version.rb
CHANGED
data/lib/dockerapi.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.10.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-07-
|
11
|
+
date: 2020-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- lib/docker/api/network.rb
|
53
53
|
- lib/docker/api/node.rb
|
54
54
|
- lib/docker/api/response.rb
|
55
|
+
- lib/docker/api/service.rb
|
55
56
|
- lib/docker/api/swarm.rb
|
56
57
|
- lib/docker/api/system.rb
|
57
58
|
- lib/docker/api/version.rb
|