docker_rack 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +7 -63
- data/Gemfile.lock +1 -1
- data/bin/docker_rack +1 -1
- data/lib/docker_rack/cli/base.rb +1 -1
- data/lib/docker_rack/container_template.rb +9 -8
- data/lib/docker_rack/dev_environment.rb +3 -3
- data/lib/docker_rack/docker_utils.rb +37 -12
- data/lib/docker_rack/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f5cc5e09334e35027c40055aa1d1382fd758d69
|
4
|
+
data.tar.gz: 82ece69939e1e74f359809f86440af5b2db14659
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 384018106a1cfdb4275f823808623524c9de6988ec3ebc3bb7e3a8181b58c8aea23d460a2ee399cc6774d249e726c4cc58d896a7bd50b952ea3a3951809ab550
|
7
|
+
data.tar.gz: 24484e7449dd7f195f8bb6034df8bedb967ef5d60e4fe2b093ca6c4a7bf209ae5573ffd2b97baab41509cb4646d485d88d0edc82dcfe835485310951bb2be0f9
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2016-02-07
|
3
|
+
# on 2016-02-07 18:30:47 -0500 using RuboCop version 0.37.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -33,15 +33,11 @@ Lint/UselessAssignment:
|
|
33
33
|
- 'lib/docker_rack/container_template.rb'
|
34
34
|
- 'lib/docker_rack/dev_environment.rb'
|
35
35
|
|
36
|
-
# Offense count: 3
|
37
|
-
Metrics/AbcSize:
|
38
|
-
Max: 59
|
39
|
-
|
40
36
|
# Offense count: 3
|
41
37
|
Metrics/CyclomaticComplexity:
|
42
|
-
Max:
|
38
|
+
Max: 15
|
43
39
|
|
44
|
-
# Offense count:
|
40
|
+
# Offense count: 23
|
45
41
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
|
46
42
|
# URISchemes: http, https
|
47
43
|
Metrics/LineLength:
|
@@ -50,11 +46,11 @@ Metrics/LineLength:
|
|
50
46
|
# Offense count: 3
|
51
47
|
# Configuration parameters: CountComments.
|
52
48
|
Metrics/MethodLength:
|
53
|
-
Max:
|
49
|
+
Max: 30
|
54
50
|
|
55
51
|
# Offense count: 3
|
56
52
|
Metrics/PerceivedComplexity:
|
57
|
-
Max:
|
53
|
+
Max: 15
|
58
54
|
|
59
55
|
# Offense count: 3
|
60
56
|
# Cop supports --auto-correct.
|
@@ -69,12 +65,6 @@ Style/ColonMethodCall:
|
|
69
65
|
Exclude:
|
70
66
|
- 'lib/docker_rack/docker_utils.rb'
|
71
67
|
|
72
|
-
# Offense count: 2
|
73
|
-
# Cop supports --auto-correct.
|
74
|
-
Style/CommentIndentation:
|
75
|
-
Exclude:
|
76
|
-
- 'lib/docker_rack/docker_utils.rb'
|
77
|
-
|
78
68
|
# Offense count: 6
|
79
69
|
Style/Documentation:
|
80
70
|
Exclude:
|
@@ -87,12 +77,6 @@ Style/Documentation:
|
|
87
77
|
- 'lib/docker_rack/docker_utils.rb'
|
88
78
|
- 'lib/docker_rack/task_mngr1.rb'
|
89
79
|
|
90
|
-
# Offense count: 1
|
91
|
-
# Cop supports --auto-correct.
|
92
|
-
Style/EmptyLines:
|
93
|
-
Exclude:
|
94
|
-
- 'lib/docker_rack/container_template.rb'
|
95
|
-
|
96
80
|
# Offense count: 2
|
97
81
|
# Cop supports --auto-correct.
|
98
82
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
@@ -148,12 +132,6 @@ Style/InfiniteLoop:
|
|
148
132
|
Exclude:
|
149
133
|
- 'lib/docker_rack/docker_utils.rb'
|
150
134
|
|
151
|
-
# Offense count: 3
|
152
|
-
# Cop supports --auto-correct.
|
153
|
-
Style/LeadingCommentSpace:
|
154
|
-
Exclude:
|
155
|
-
- 'lib/docker_rack/dev_environment.rb'
|
156
|
-
|
157
135
|
# Offense count: 1
|
158
136
|
# Cop supports --auto-correct.
|
159
137
|
Style/MethodCallParentheses:
|
@@ -196,7 +174,7 @@ Style/RedundantParentheses:
|
|
196
174
|
Exclude:
|
197
175
|
- 'lib/docker_rack/cli/base.rb'
|
198
176
|
|
199
|
-
# Offense count:
|
177
|
+
# Offense count: 9
|
200
178
|
# Cop supports --auto-correct.
|
201
179
|
# Configuration parameters: AllowMultipleReturnValues.
|
202
180
|
Style/RedundantReturn:
|
@@ -213,25 +191,6 @@ Style/RegexpLiteral:
|
|
213
191
|
Exclude:
|
214
192
|
- 'lib/docker_rack/docker_utils.rb'
|
215
193
|
|
216
|
-
# Offense count: 1
|
217
|
-
# Cop supports --auto-correct.
|
218
|
-
Style/SpaceAfterComma:
|
219
|
-
Exclude:
|
220
|
-
- 'lib/docker_rack/docker_utils.rb'
|
221
|
-
|
222
|
-
# Offense count: 1
|
223
|
-
# Cop supports --auto-correct.
|
224
|
-
Style/SpaceAfterNot:
|
225
|
-
Exclude:
|
226
|
-
- 'lib/docker_rack/docker_utils.rb'
|
227
|
-
|
228
|
-
# Offense count: 1
|
229
|
-
# Cop supports --auto-correct.
|
230
|
-
# Configuration parameters: AllowForAlignment.
|
231
|
-
Style/SpaceAroundOperators:
|
232
|
-
Exclude:
|
233
|
-
- 'lib/docker_rack/container_template.rb'
|
234
|
-
|
235
194
|
# Offense count: 3
|
236
195
|
# Cop supports --auto-correct.
|
237
196
|
# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
|
@@ -239,12 +198,6 @@ Style/SpaceAroundOperators:
|
|
239
198
|
Style/SpaceInsideBlockBraces:
|
240
199
|
Enabled: false
|
241
200
|
|
242
|
-
# Offense count: 4
|
243
|
-
# Cop supports --auto-correct.
|
244
|
-
Style/SpaceInsideBrackets:
|
245
|
-
Exclude:
|
246
|
-
- 'container_templates/scripts/settings.rake'
|
247
|
-
|
248
201
|
# Offense count: 2
|
249
202
|
# Cop supports --auto-correct.
|
250
203
|
# Configuration parameters: EnforcedStyleForEmptyBraces, SupportedStyles.
|
@@ -259,18 +212,9 @@ Style/SpaceInsideHashLiteralBraces:
|
|
259
212
|
Style/SpecialGlobalVars:
|
260
213
|
Enabled: false
|
261
214
|
|
262
|
-
# Offense count:
|
215
|
+
# Offense count: 2
|
263
216
|
# Cop supports --auto-correct.
|
264
217
|
# Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline.
|
265
218
|
# SupportedStyles: single_quotes, double_quotes
|
266
219
|
Style/StringLiterals:
|
267
220
|
Enabled: false
|
268
|
-
|
269
|
-
# Offense count: 2
|
270
|
-
# Cop supports --auto-correct.
|
271
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
272
|
-
# SupportedStyles: final_newline, final_blank_line
|
273
|
-
Style/TrailingBlankLines:
|
274
|
-
Exclude:
|
275
|
-
- 'bin/docker_rack'
|
276
|
-
- 'lib/docker_rack/cli/base.rb'
|
data/Gemfile.lock
CHANGED
data/bin/docker_rack
CHANGED
data/lib/docker_rack/cli/base.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# rubocop:disable Metrics/AbcSize
|
2
|
+
|
1
3
|
require 'rake'
|
2
4
|
require 'rake/tasklib'
|
3
5
|
require 'pathname'
|
@@ -68,7 +70,6 @@ module Container
|
|
68
70
|
tasks.any? { |task| task.name == task_name }
|
69
71
|
end
|
70
72
|
|
71
|
-
|
72
73
|
def invoke(name)
|
73
74
|
Rake.application[name].invoke
|
74
75
|
end
|
@@ -102,27 +103,27 @@ module Container
|
|
102
103
|
args || args = []
|
103
104
|
|
104
105
|
# desc "Starting #{template_name}"
|
105
|
-
task (name +
|
106
|
+
task (name + ':start').to_sym do
|
106
107
|
puts "Starting: #{path}"
|
107
108
|
Docker::Utils.start_container load_container_template(path)
|
108
109
|
end
|
109
110
|
|
110
111
|
# # desc "Stopping #{template_name}"
|
111
|
-
task (name +
|
112
|
+
task (name + ':stop').to_sym do
|
112
113
|
puts "Stopping: #{path}"
|
113
114
|
container_template = load_template_file(path)
|
114
115
|
Docker::Utils.stop_container container_template
|
115
116
|
end
|
116
117
|
|
117
118
|
# # desc "Restarting #{template_name}"
|
118
|
-
task (name +
|
119
|
+
task (name + ':restart').to_sym do
|
119
120
|
puts "Restarting: #{path}"
|
120
|
-
Rake::Task[name +
|
121
|
-
Rake::Task[name +
|
121
|
+
Rake::Task[name + ':stop'].invoke
|
122
|
+
Rake::Task[name + ':start'].invoke
|
122
123
|
end
|
123
124
|
|
124
125
|
desc "Tasks help for #{template_name}"
|
125
|
-
task (name +
|
126
|
+
task (name + ':help').to_sym do
|
126
127
|
puts "Tasks for: #{path}"
|
127
128
|
puts "rake #{name}:start\t\t# Starting #{template_name}"
|
128
129
|
puts "rake #{name}:stop\t\t# Stopping #{template_name}"
|
@@ -140,7 +141,7 @@ module Container
|
|
140
141
|
|
141
142
|
container_template = YAML.load_file(file_path)
|
142
143
|
if Pathname.new(file_path).basename.to_s.include? '.erb'
|
143
|
-
template
|
144
|
+
template = ERB.new(container_template.to_yaml).result(OpenStruct.new(vars).instance_eval { binding })
|
144
145
|
puts template if LOG_LEVEL == 'DEBUG'
|
145
146
|
container_template = YAML.load(template)
|
146
147
|
end
|
@@ -50,9 +50,9 @@ module Environment
|
|
50
50
|
# http.set_debug_output($stdout)
|
51
51
|
header = {'Content-Type' => 'text/json'}
|
52
52
|
request = Net::HTTP::Put.new(uri.request_uri, initheader = header)
|
53
|
-
#request.add_field('Content-Type', 'application/json')
|
54
|
-
#request.add_field('Content-Type', 'text/plain; charset=utf-8')
|
55
|
-
request.body = payload
|
53
|
+
# request.add_field('Content-Type', 'application/json')
|
54
|
+
# request.add_field('Content-Type', 'text/plain; charset=utf-8')
|
55
|
+
request.body = payload # .to_json
|
56
56
|
response = http.request(request)
|
57
57
|
result = response.body
|
58
58
|
else
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# rubocop:disable Metrics/AbcSize
|
2
|
+
|
1
3
|
module Docker
|
2
4
|
class Utils
|
3
5
|
|
4
6
|
def self.dockerhost
|
5
7
|
@dockerhost = ENV['DOCKER_HOST']
|
6
8
|
return nil if @dockerhost.nil?
|
7
|
-
@dockerhost[/tcp:\/\/([^:]+)/,1]
|
9
|
+
@dockerhost[/tcp:\/\/([^:]+)/, 1]
|
8
10
|
end
|
9
11
|
|
10
12
|
def self.create_docker_command(info)
|
@@ -80,23 +82,18 @@ module Docker
|
|
80
82
|
Array(info['checks']).each do |check|
|
81
83
|
try = (check['retry'] || 3).to_i
|
82
84
|
interval = (check['interval'] || 2).to_i
|
85
|
+
check['ip'] ||= dockerhost
|
86
|
+
detect_check(check)
|
83
87
|
while true
|
84
88
|
sleep interval
|
85
89
|
put_char '.' if LOG_LEVEL != 'DEBUG'
|
86
90
|
case check['type']
|
87
91
|
when 'port'
|
88
|
-
|
89
|
-
result = is_port_open?(check['ip'], check['port'])
|
90
|
-
puts "Result: #{result}" if LOG_LEVEL == 'DEBUG'
|
91
|
-
break if result
|
92
|
+
break if check_port(check)
|
92
93
|
when 'rest'
|
93
|
-
|
94
|
-
result = is_http_present?(check['uri'])
|
95
|
-
puts "Result: #{result}" if LOG_LEVEL == 'DEBUG'
|
96
|
-
break if result
|
94
|
+
break if check_rest(check)
|
97
95
|
when 'script'
|
98
|
-
|
99
|
-
break if $?.to_i == 0
|
96
|
+
break if check_script(check)
|
100
97
|
else
|
101
98
|
puts 'Unrecognizable check type. Skipping ...'
|
102
99
|
end
|
@@ -107,6 +104,34 @@ module Docker
|
|
107
104
|
end
|
108
105
|
end
|
109
106
|
|
107
|
+
def self.detect_check(check)
|
108
|
+
return if check.key?('type')
|
109
|
+
if check.key?('port')
|
110
|
+
check['type'] = 'port'
|
111
|
+
elsif check.key?('uri')
|
112
|
+
check['type'] = 'rest'
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def self.check_port(check)
|
117
|
+
puts "Checking port #{check['ip']}:#{check['port']} availability." if LOG_LEVEL == 'DEBUG'
|
118
|
+
result = is_port_open?(check['ip'], check['port'])
|
119
|
+
puts "Result: #{result}" if LOG_LEVEL == 'DEBUG'
|
120
|
+
return result
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.check_rest(check)
|
124
|
+
puts "Checking HTTP response #{check['uri']}." if LOG_LEVEL == 'DEBUG'
|
125
|
+
result = is_http_present?(check['uri'])
|
126
|
+
puts "Result: #{result}" if LOG_LEVEL == 'DEBUG'
|
127
|
+
return result
|
128
|
+
end
|
129
|
+
|
130
|
+
def self.check_script(check)
|
131
|
+
`#{check['script']}`
|
132
|
+
return $?.to_i == 0
|
133
|
+
end
|
134
|
+
|
110
135
|
def self.put_char(str)
|
111
136
|
print str
|
112
137
|
$stdout.flush
|
@@ -144,7 +169,7 @@ module Docker
|
|
144
169
|
end
|
145
170
|
|
146
171
|
def self.present?(name)
|
147
|
-
!
|
172
|
+
!containers_by_name(name).empty?
|
148
173
|
end
|
149
174
|
|
150
175
|
def self.containers_by_name(name)
|
data/lib/docker_rack/version.rb
CHANGED