dockerapi 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fa69dcb4c7b79c558bc6749b51def3a8a056e39259ad8163c84fec253193c67
4
- data.tar.gz: '0998c5433ddcd3c4bbcc43ea6c21d61220527f7864c524e83bf0b3aedec501fd'
3
+ metadata.gz: aeb3c1971c26c62d0737576e5ec79f2abcf536b1148be5272be8f501dfcae852
4
+ data.tar.gz: 1392073ca52d6fecfc12e642368713c2fa44a9ebbcd7629de5fb54faf9ac7209
5
5
  SHA512:
6
- metadata.gz: cafcf788d269546dd338daf50247df1ee1cf6af16372b50a2a6404b2323e0f8d6f78384789c245d122855d325e355dd9f822e4c61e5df4fb5bb9c7af79e11cac
7
- data.tar.gz: b63d32250bfa09e067b56b19a2737ffc35e130511cd17dd31ffbb71db494406ff2b9e85e6e7226161e126b4d423a6fd570c3da6695dcb0d18407ce1c9a706190
6
+ metadata.gz: 3b03b8e5ce6d95f19c8dd6d357277a102fcc170b35ac989cd080db27c66efcad63125aaedab1c971a8ed435bed7c7447979d332a1b7f43686a2217907bf21fe8
7
+ data.tar.gz: 62cd2888ad859834cf949a6189f6e863e1b2f23ce9849fce4a39a1248cfa74efeaff5e0e6220a165d6b7980445a7773dc4bc3f8d4a678fc364a06b205fc07630
@@ -1,3 +1,13 @@
1
+ # 0.10.0
2
+
3
+ Add `Docker::API::Service` methods:
4
+ * create
5
+ * update
6
+ * list
7
+ * details
8
+ * logs
9
+ * delete
10
+
1
11
  # 0.9.0
2
12
 
3
13
  Significant change: `#inspect` is now deprecated and replaced by `#details` in the following classes:
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dockerapi (0.9.0)
4
+ dockerapi (0.10.0)
5
5
  excon (~> 0.74.0)
6
6
 
7
7
  GEM
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 filesystem logs
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
@@ -1,6 +1,6 @@
1
1
  module Docker
2
2
  module API
3
- GEM_VERSION = "0.9.0"
3
+ GEM_VERSION = "0.10.0"
4
4
 
5
5
  API_VERSION = "1.40"
6
6
 
@@ -14,6 +14,7 @@ require "docker/api/exec"
14
14
  require "docker/api/system"
15
15
  require "docker/api/swarm"
16
16
  require "docker/api/node"
17
+ require "docker/api/service"
17
18
 
18
19
  module Docker
19
20
  module API
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.9.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-13 00:00:00.000000000 Z
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