hyperdock 0.12.0 → 0.13.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
  SHA1:
3
- metadata.gz: ece6869475b8063978c9ea067048e8cea3b07af8
4
- data.tar.gz: a53ed407488432bea41bcaf47f81482523df94c6
3
+ metadata.gz: f18fab5f6544743ebaeb3a8061cc418a4a8030f8
4
+ data.tar.gz: ef7061d48ffc22d4dc49c3ed248b8f4862826c38
5
5
  SHA512:
6
- metadata.gz: d0b6b9f5813a591456252fdd0f6c6a04e997f1d983e212fcd8a88cf8a973d44e989926c3749b71496852923564bbb95a2d9c321d7fd74803e9a6e4274a0e5fd4
7
- data.tar.gz: cdb1bbad3acc14b62d78602656a194670d2803b852825c2321ad6ad3bcb6b850d30d1ebf979e39e4e1f617e2966b70789a8e2e7944e46e84c3fbbaec6131775f
6
+ metadata.gz: 7e59a04f4a7e159a11bcc1f62fb0272a7eb7616a90fb1885207449f64bdb526074af8b9784edcf87e089fdb01805fd5ae45a34f0d722e6af0a1d161d8fa5e960
7
+ data.tar.gz: 4fdaac1c7e388b62a708ba74fcdada742859e7de1fd1c996d75094a5617a028e271c68f1de799425c30a9abbcac7b983082207efcd47bdd7fa9a4292c85f9dca
@@ -11,8 +11,8 @@ Webmachine.application.routes do
11
11
  add ['project', :project, 'service', :service], HyperDock::Resource::ProjectService
12
12
  add ['containers'], HyperDock::Resource::Containers
13
13
  add ['container', :container], HyperDock::Resource::Container
14
- add ['container', :container, 'networks'], HyperDock::Resource::ContainerNetworks
15
14
  add ['container', :container, 'ports'], HyperDock::Resource::ContainerPorts
15
+ add ['networks'], HyperDock::Resource::Networks
16
16
  end
17
17
 
18
18
  Webmachine.application.run
@@ -19,9 +19,18 @@ module HyperDock
19
19
  false
20
20
  end
21
21
 
22
+ Contract None => ArrayOf[HashOf[RespondTo[:to_s], String]]
23
+ def networks
24
+ @networks ||= (container.info.dig('NetworkSettings', 'Networks') || {})
25
+ .values
26
+ .map { |network| network['NetworkID'] }
27
+ .compact
28
+ .map { |network| { href: "/network/#{network}" } }
29
+ end
30
+
22
31
  def links
23
32
  @links ||= {
24
- networks: { href: "/#{request.disp_path}/networks" },
33
+ networks: networks,
25
34
  ports: { href: "/#{request.disp_path}/ports" }
26
35
  }
27
36
  end
@@ -0,0 +1,22 @@
1
+ require 'docker-api'
2
+ require_relative 'core'
3
+
4
+ module HyperDock
5
+ module Resource
6
+ class Networks < Core
7
+ def networks
8
+ @networks ||= ::Docker::Network.all.map(&:id)
9
+ end
10
+
11
+ def links
12
+ @links ||= networks.map do |network|
13
+ { "network:#{network}" => { href: "/network/#{network}" } }
14
+ end.reduce(&:merge)
15
+ end
16
+
17
+ def attributes
18
+ { networks: networks }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -16,7 +16,8 @@ module HyperDock
16
16
  'project:services' => { href: '/project/{project}/services', templated: true },
17
17
  containers: { href: '/containers' },
18
18
  container: { href: '/container/{container}', templated: true },
19
- 'container:ports' => { href: '/container/{container}/ports', templated: true }
19
+ 'container:ports' => { href: '/container/{container}/ports', templated: true },
20
+ networks: { href: '/networks' }
20
21
  }
21
22
  end
22
23
  end
@@ -1,7 +1,7 @@
1
1
  require_relative 'resource/container'
2
- require_relative 'resource/container_networks'
3
2
  require_relative 'resource/container_ports'
4
3
  require_relative 'resource/containers'
4
+ require_relative 'resource/networks'
5
5
  require_relative 'resource/project'
6
6
  require_relative 'resource/project_service'
7
7
  require_relative 'resource/project_services'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyperdock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Olstrom
@@ -83,10 +83,10 @@ files:
83
83
  - hyperdock.gemspec
84
84
  - lib/hyperdock.rb
85
85
  - lib/hyperdock/resource/container.rb
86
- - lib/hyperdock/resource/container_networks.rb
87
86
  - lib/hyperdock/resource/container_ports.rb
88
87
  - lib/hyperdock/resource/containers.rb
89
88
  - lib/hyperdock/resource/core.rb
89
+ - lib/hyperdock/resource/networks.rb
90
90
  - lib/hyperdock/resource/project.rb
91
91
  - lib/hyperdock/resource/project_service.rb
92
92
  - lib/hyperdock/resource/project_services.rb
@@ -1,24 +0,0 @@
1
- require_relative 'container'
2
-
3
- module HyperDock
4
- module Resource
5
- class ContainerNetworks < Container
6
- Contract None => ArrayOf[String]
7
- def networks
8
- @networks ||= (container.info.dig('NetworkSettings', 'Networks') || {} ).values.map do |network|
9
- network['NetworkID']
10
- end.compact
11
- end
12
-
13
- def links
14
- @links ||= {
15
- networks: networks.map { |network| { "network:#{network}" => "/network/#{network}" } }.reduce(&:merge)
16
- }
17
- end
18
-
19
- def attributes
20
- { networks: networks }
21
- end
22
- end
23
- end
24
- end