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 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