hyperdock 0.12.0 → 0.13.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
  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