docker_cloud 0.1.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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +43 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +81 -0
- data/Rakefile +6 -0
- data/docker_cloud.gemspec +31 -0
- data/lib/docker_cloud.rb +107 -0
- data/lib/docker_cloud/api/api.rb +57 -0
- data/lib/docker_cloud/api/availability_zone_api.rb +23 -0
- data/lib/docker_cloud/api/container_api.rb +38 -0
- data/lib/docker_cloud/api/external_repository_api.rb +34 -0
- data/lib/docker_cloud/api/node_api.rb +27 -0
- data/lib/docker_cloud/api/node_cluster_api.rb +46 -0
- data/lib/docker_cloud/api/node_type_api.rb +23 -0
- data/lib/docker_cloud/api/provider_api.rb +19 -0
- data/lib/docker_cloud/api/region_api.rb +24 -0
- data/lib/docker_cloud/api/registry_api.rb +19 -0
- data/lib/docker_cloud/api/service_api.rb +53 -0
- data/lib/docker_cloud/api/stack_api.rb +53 -0
- data/lib/docker_cloud/availability_zone.rb +19 -0
- data/lib/docker_cloud/container.rb +204 -0
- data/lib/docker_cloud/external_repository.rb +20 -0
- data/lib/docker_cloud/helpers.rb +33 -0
- data/lib/docker_cloud/node.rb +99 -0
- data/lib/docker_cloud/node_cluster.rb +67 -0
- data/lib/docker_cloud/node_type.rb +38 -0
- data/lib/docker_cloud/provider.rb +31 -0
- data/lib/docker_cloud/region.rb +28 -0
- data/lib/docker_cloud/registry.rb +27 -0
- data/lib/docker_cloud/service.rb +235 -0
- data/lib/docker_cloud/stack.rb +42 -0
- data/lib/docker_cloud/type.rb +19 -0
- data/lib/docker_cloud/version.rb +3 -0
- metadata +193 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class ExternalRepository < DockerCloud::Type
|
3
|
+
def resource_uri
|
4
|
+
info[:resource_uri]
|
5
|
+
end
|
6
|
+
|
7
|
+
def name
|
8
|
+
info[:name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def in_use
|
12
|
+
info[:in_user]
|
13
|
+
end
|
14
|
+
# def registry; info[:registry]; end
|
15
|
+
|
16
|
+
def registry
|
17
|
+
@registry ||= client.registries.get_from_uri(info[:registry]) unless info[:registry].nil?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
module Helpers
|
3
|
+
class ContainerPorts
|
4
|
+
attr_accessor :protocol, :inner_port, :outer_port, :port_name,
|
5
|
+
:uri_protocol, :endpoint_uri, :published
|
6
|
+
|
7
|
+
def initialize(container_ports)
|
8
|
+
@protocol = container_ports[:protocol]
|
9
|
+
@inner_port = container_ports[:inner_port]
|
10
|
+
@outer_port = container_ports[:outer_port]
|
11
|
+
@port_name = container_ports[:outer_port]
|
12
|
+
@uri_protocol = container_ports[:uri_protocol]
|
13
|
+
@endpoint_uri = container_ports[:endpoint_uri]
|
14
|
+
@published = container_ports[:published]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def format_object(response, type)
|
21
|
+
type = Object.const_get "DockerCloud::#{type}"
|
22
|
+
if response.is_a?(Array)
|
23
|
+
formatted = []
|
24
|
+
response.each do |obj|
|
25
|
+
formatted.push(type.new(obj, client))
|
26
|
+
end
|
27
|
+
else
|
28
|
+
formatted = type.new(response, client)
|
29
|
+
end
|
30
|
+
formatted
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class Node < DockerCloud::Type
|
3
|
+
def availability_zone
|
4
|
+
@az ||= client.availability_zones.get_from_uri(info[:availability_zone]) unless info[:availability_zone].nil?
|
5
|
+
end
|
6
|
+
|
7
|
+
def resource_uri
|
8
|
+
info[:resource_uri]
|
9
|
+
end
|
10
|
+
|
11
|
+
def external_fqdn
|
12
|
+
info[:external_fqdn]
|
13
|
+
end
|
14
|
+
|
15
|
+
def state
|
16
|
+
info[:state]
|
17
|
+
end
|
18
|
+
|
19
|
+
# def node_cluster; info[:node_cluster]; end
|
20
|
+
def node_cluster
|
21
|
+
@node_cluster ||= client.node_clusters.get_from_uri(info[:node_cluster]) unless info[:node_cluster].nil?
|
22
|
+
end
|
23
|
+
|
24
|
+
# def node_type; info[:node_type]; end
|
25
|
+
def node_type
|
26
|
+
@node_type ||= client.node_type.get_from_uri(info[:node_type]) unless info[:node_type].nil?
|
27
|
+
end
|
28
|
+
|
29
|
+
# def region; info[:region]; end
|
30
|
+
def region
|
31
|
+
@region ||= client.regions.get_from_uri(info[:region]) unless info[:region].nil?
|
32
|
+
end
|
33
|
+
|
34
|
+
def docker_execdriver
|
35
|
+
info[:docker_execdriver]
|
36
|
+
end
|
37
|
+
|
38
|
+
def docker_version
|
39
|
+
info[:docker_version]
|
40
|
+
end
|
41
|
+
|
42
|
+
def cpu
|
43
|
+
info[:cpu]
|
44
|
+
end
|
45
|
+
|
46
|
+
def disk
|
47
|
+
info[:disk]
|
48
|
+
end
|
49
|
+
|
50
|
+
def memory
|
51
|
+
info[:memory]
|
52
|
+
end
|
53
|
+
|
54
|
+
def num_of_containers
|
55
|
+
info[:current_num_container]
|
56
|
+
end
|
57
|
+
|
58
|
+
def last_seen
|
59
|
+
info[:last_seen]
|
60
|
+
end
|
61
|
+
|
62
|
+
def public_ip
|
63
|
+
info[:public_ip]
|
64
|
+
end
|
65
|
+
|
66
|
+
def tunnel
|
67
|
+
info[:tunnel]
|
68
|
+
end
|
69
|
+
|
70
|
+
def deployed_date
|
71
|
+
info[:deployed_datetime]
|
72
|
+
end
|
73
|
+
|
74
|
+
def destroyed_date
|
75
|
+
info[:destroyed_datetime]
|
76
|
+
end
|
77
|
+
|
78
|
+
def tags
|
79
|
+
info[:tags]
|
80
|
+
end
|
81
|
+
|
82
|
+
def nickname
|
83
|
+
info[:nickname]
|
84
|
+
end
|
85
|
+
|
86
|
+
def last_metric
|
87
|
+
@last_metric ||= LastMetric.new(info[:last_metric])
|
88
|
+
end
|
89
|
+
|
90
|
+
class LastMetric
|
91
|
+
attr_accessor :cpu, :disk, :memory
|
92
|
+
def initialize(response)
|
93
|
+
@cpu = response[:cpu]
|
94
|
+
@disk = response[:disk]
|
95
|
+
@memory = response[:memory]
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class NodeCluster < DockerCloud::Type
|
3
|
+
def resource_uri
|
4
|
+
info[:resource_uri]
|
5
|
+
end
|
6
|
+
|
7
|
+
def name
|
8
|
+
info[:name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def state
|
12
|
+
info[:state]
|
13
|
+
end
|
14
|
+
|
15
|
+
# def node_type; info[:node_type]; end
|
16
|
+
def node_type
|
17
|
+
@node_type ||= client.node_types.get_from_uri(info[:node_type])
|
18
|
+
end
|
19
|
+
|
20
|
+
def disk_size
|
21
|
+
info[:disk]
|
22
|
+
end
|
23
|
+
|
24
|
+
def nodes
|
25
|
+
if @nodes.nil?
|
26
|
+
@nodes = []
|
27
|
+
info[:nodes].each do |node_uri|
|
28
|
+
@nodes.push(client.nodes.get_from_uri(node_uri))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
@nodes
|
32
|
+
end
|
33
|
+
|
34
|
+
# def region; info[:region]; end
|
35
|
+
def region
|
36
|
+
@region ||= client.regions.get_from_uri(info[:region])
|
37
|
+
end
|
38
|
+
|
39
|
+
def target_num_nodes
|
40
|
+
info[:target_num_nodes]
|
41
|
+
end
|
42
|
+
|
43
|
+
def current_num_nodes
|
44
|
+
info[:current_num_nodes]
|
45
|
+
end
|
46
|
+
|
47
|
+
def deployed_date
|
48
|
+
info[:deployed_datetime]
|
49
|
+
end
|
50
|
+
|
51
|
+
def destroyed_date
|
52
|
+
info[:destroyed_datetime]
|
53
|
+
end
|
54
|
+
|
55
|
+
def tags
|
56
|
+
info[:tags]
|
57
|
+
end
|
58
|
+
|
59
|
+
def provider_options
|
60
|
+
info[:provider_options]
|
61
|
+
end
|
62
|
+
|
63
|
+
def nickname
|
64
|
+
info[:nickname]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class NodeType < DockerCloud::Type
|
3
|
+
def resource_uri
|
4
|
+
info[:resource_uri]
|
5
|
+
end
|
6
|
+
|
7
|
+
def name
|
8
|
+
info[:name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def label
|
12
|
+
info[:label]
|
13
|
+
end
|
14
|
+
|
15
|
+
def regions
|
16
|
+
info[:regions]
|
17
|
+
end
|
18
|
+
|
19
|
+
# def availability_zones; info[:availability_zones]; end
|
20
|
+
def available
|
21
|
+
info[:available]
|
22
|
+
end
|
23
|
+
|
24
|
+
def provider
|
25
|
+
@provider ||= client.providers.get_from_uri(info[:provider]) unless info[:provider].nil?
|
26
|
+
end
|
27
|
+
|
28
|
+
def availability_zones
|
29
|
+
if @az.nil?
|
30
|
+
@az = []
|
31
|
+
info[:availability_zones].each do |az|
|
32
|
+
@az.push(client.availability_zones.get_from_uri(az))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
@az
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class Provider < DockerCloud::Type
|
3
|
+
attr_accessor :name, :label, :regions, :available
|
4
|
+
|
5
|
+
def name
|
6
|
+
info[:name]
|
7
|
+
end
|
8
|
+
|
9
|
+
def label
|
10
|
+
info[:label]
|
11
|
+
end
|
12
|
+
|
13
|
+
def resource_uri
|
14
|
+
info[:resource_uri]
|
15
|
+
end
|
16
|
+
|
17
|
+
def available
|
18
|
+
info[:available]
|
19
|
+
end
|
20
|
+
|
21
|
+
def regions
|
22
|
+
if @regions.nil?
|
23
|
+
@regions = []
|
24
|
+
info[:regions].each do |region|
|
25
|
+
@regions.push(client.regions.get_from_uri(region))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
@regions
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class Region < DockerCloud::Type
|
3
|
+
def resource_uri
|
4
|
+
info[:resource_uri]
|
5
|
+
end
|
6
|
+
|
7
|
+
def name
|
8
|
+
info[:name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def label
|
12
|
+
info[:label]
|
13
|
+
end
|
14
|
+
|
15
|
+
# def availability_zones; info[:availability_zones]; end
|
16
|
+
def available
|
17
|
+
info[:available]
|
18
|
+
end
|
19
|
+
|
20
|
+
def node_types
|
21
|
+
@node_types ||= client.node_types.all(region: name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def availability_zones
|
25
|
+
@availability_zones ||= client.availability_zones.all(region: name)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class Registry < DockerCloud::Type
|
3
|
+
def resource_uri
|
4
|
+
info[:resource_uri]
|
5
|
+
end
|
6
|
+
|
7
|
+
def name
|
8
|
+
info[:name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def host
|
12
|
+
info[:host]
|
13
|
+
end
|
14
|
+
|
15
|
+
def docker_registry?
|
16
|
+
info[:is_docker_registry]
|
17
|
+
end
|
18
|
+
|
19
|
+
def ssl?
|
20
|
+
info[:is_ssl]
|
21
|
+
end
|
22
|
+
|
23
|
+
def port
|
24
|
+
info[:port]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,235 @@
|
|
1
|
+
module DockerCloud
|
2
|
+
class Service < DockerCloud::Type
|
3
|
+
def resource_uri
|
4
|
+
info[:resource_uri]
|
5
|
+
end
|
6
|
+
|
7
|
+
def image_name
|
8
|
+
info[:image_name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def name
|
12
|
+
info[:name]
|
13
|
+
end
|
14
|
+
|
15
|
+
def public_dns
|
16
|
+
info[:public_dns]
|
17
|
+
end
|
18
|
+
|
19
|
+
def state
|
20
|
+
info[:state]
|
21
|
+
end
|
22
|
+
|
23
|
+
def net
|
24
|
+
info[:net]
|
25
|
+
end
|
26
|
+
|
27
|
+
def pid
|
28
|
+
info[:pid]
|
29
|
+
end
|
30
|
+
|
31
|
+
def synchronized
|
32
|
+
info[:synchronized]
|
33
|
+
end
|
34
|
+
|
35
|
+
def deployed_date
|
36
|
+
info[:deployed_datetime]
|
37
|
+
end
|
38
|
+
|
39
|
+
def started_date
|
40
|
+
info[:started_datetime]
|
41
|
+
end
|
42
|
+
|
43
|
+
def stopped_date
|
44
|
+
info[:stopped_datetime]
|
45
|
+
end
|
46
|
+
|
47
|
+
def destroyed_date
|
48
|
+
info[:destroyed_datetime]
|
49
|
+
end
|
50
|
+
|
51
|
+
def target_container_num
|
52
|
+
info[:target_num_containers]
|
53
|
+
end
|
54
|
+
|
55
|
+
def current_num_containers
|
56
|
+
info[:current_num_containers]
|
57
|
+
end
|
58
|
+
|
59
|
+
def running_num_containers
|
60
|
+
info[:running_num_containers]
|
61
|
+
end
|
62
|
+
|
63
|
+
def stopped_num_containers
|
64
|
+
info[:stopped_run_containers]
|
65
|
+
end
|
66
|
+
|
67
|
+
# def stack; info[:stack]; end
|
68
|
+
def stack
|
69
|
+
@stack ||= client.stacks.find_by_uri(info[:stack])
|
70
|
+
end
|
71
|
+
|
72
|
+
# def containers; info[:containers]; end
|
73
|
+
def containers
|
74
|
+
if @containers.nil?
|
75
|
+
@containers = []
|
76
|
+
info[:containers].each do |uri|
|
77
|
+
@containers.push(client.containers.get_by_uri(uri))
|
78
|
+
end
|
79
|
+
end
|
80
|
+
@containers
|
81
|
+
end
|
82
|
+
|
83
|
+
def container_ports
|
84
|
+
@container_ports ||= ContainerPorts.new(info[:container_ports])
|
85
|
+
end
|
86
|
+
|
87
|
+
def container_env_vars
|
88
|
+
info[:container_envvars]
|
89
|
+
end
|
90
|
+
|
91
|
+
def labels
|
92
|
+
info[:labels]
|
93
|
+
end
|
94
|
+
|
95
|
+
def working_dir
|
96
|
+
info[:working_dir]
|
97
|
+
end
|
98
|
+
|
99
|
+
def user
|
100
|
+
info[:user]
|
101
|
+
end
|
102
|
+
|
103
|
+
def hostname
|
104
|
+
info[:hostname]
|
105
|
+
end
|
106
|
+
|
107
|
+
def domain_name
|
108
|
+
info[:domainname]
|
109
|
+
end
|
110
|
+
|
111
|
+
def amc_address
|
112
|
+
info[:mac_address]
|
113
|
+
end
|
114
|
+
|
115
|
+
def cgroup_name
|
116
|
+
info[:cgroup_name]
|
117
|
+
end
|
118
|
+
|
119
|
+
def tty
|
120
|
+
info[:tty]
|
121
|
+
end
|
122
|
+
|
123
|
+
def stdin_open
|
124
|
+
info[:stdin_open]
|
125
|
+
end
|
126
|
+
|
127
|
+
def dns
|
128
|
+
info[:dns]
|
129
|
+
end
|
130
|
+
|
131
|
+
def dns_search
|
132
|
+
info[:dns_search]
|
133
|
+
end
|
134
|
+
|
135
|
+
def cap_add
|
136
|
+
info[:cap_add]
|
137
|
+
end
|
138
|
+
|
139
|
+
def cap_drop
|
140
|
+
info[:cap_add]
|
141
|
+
end
|
142
|
+
|
143
|
+
def devices
|
144
|
+
info[:devices]
|
145
|
+
end
|
146
|
+
|
147
|
+
def extra_hosrs
|
148
|
+
info[:extra_hosrs]
|
149
|
+
end
|
150
|
+
|
151
|
+
def security_opt
|
152
|
+
info[:security_opt]
|
153
|
+
end
|
154
|
+
|
155
|
+
def entrypoint
|
156
|
+
info[:entrypoint]
|
157
|
+
end
|
158
|
+
|
159
|
+
def run_command
|
160
|
+
info[:run_command]
|
161
|
+
end
|
162
|
+
|
163
|
+
def sequential_deployment
|
164
|
+
info[:sequential_deployment]
|
165
|
+
end
|
166
|
+
|
167
|
+
def cpu_shares
|
168
|
+
info[:cpu_shares]
|
169
|
+
end
|
170
|
+
|
171
|
+
def cpuset
|
172
|
+
info[:cpuset]
|
173
|
+
end
|
174
|
+
|
175
|
+
def memory
|
176
|
+
info[:memory]
|
177
|
+
end
|
178
|
+
|
179
|
+
def memory_swap
|
180
|
+
info[:memory_swap]
|
181
|
+
end
|
182
|
+
|
183
|
+
def linked_from_service
|
184
|
+
info[:linked_from_service]
|
185
|
+
end
|
186
|
+
|
187
|
+
def linked_to_service
|
188
|
+
info[:linked_to_service]
|
189
|
+
end
|
190
|
+
|
191
|
+
def bindings
|
192
|
+
info[:bindings]
|
193
|
+
end
|
194
|
+
|
195
|
+
def auto_restart
|
196
|
+
info[:autorestart]
|
197
|
+
end
|
198
|
+
|
199
|
+
def auto_destroy
|
200
|
+
info[:autodestroy]
|
201
|
+
end
|
202
|
+
|
203
|
+
def roles
|
204
|
+
info[:roles]
|
205
|
+
end
|
206
|
+
|
207
|
+
def link_variables
|
208
|
+
info[:link_variables]
|
209
|
+
end
|
210
|
+
|
211
|
+
def privileged
|
212
|
+
info[:privileged]
|
213
|
+
end
|
214
|
+
|
215
|
+
def read_only
|
216
|
+
info[:read_only]
|
217
|
+
end
|
218
|
+
|
219
|
+
def deployment_strategy
|
220
|
+
info[:deployment_strategy]
|
221
|
+
end
|
222
|
+
|
223
|
+
def tags
|
224
|
+
info[:tags]
|
225
|
+
end
|
226
|
+
|
227
|
+
def auto_redeploy
|
228
|
+
info[:autoredeploy]
|
229
|
+
end
|
230
|
+
|
231
|
+
def nickname
|
232
|
+
info[:nickname]
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|