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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f18fab5f6544743ebaeb3a8061cc418a4a8030f8
|
4
|
+
data.tar.gz: ef7061d48ffc22d4dc49c3ed248b8f4862826c38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e59a04f4a7e159a11bcc1f62fb0272a7eb7616a90fb1885207449f64bdb526074af8b9784edcf87e089fdb01805fd5ae45a34f0d722e6af0a1d161d8fa5e960
|
7
|
+
data.tar.gz: 4fdaac1c7e388b62a708ba74fcdada742859e7de1fd1c996d75094a5617a028e271c68f1de799425c30a9abbcac7b983082207efcd47bdd7fa9a4292c85f9dca
|
data/bin/hyperdock-api
CHANGED
@@ -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:
|
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
|
data/lib/hyperdock/resources.rb
CHANGED
@@ -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.
|
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
|