rhc 0.80.5 → 0.81.14
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.
- data/bin/rhc-chk +31 -24
- data/bin/rhc-create-app +99 -265
- data/bin/rhc-create-domain +98 -17
- data/bin/rhc-ctl-app +14 -38
- data/bin/rhc-snapshot +1 -1
- data/bin/rhc-tail-files +1 -1
- data/bin/rhc-user-info +29 -22
- data/lib/rhc-common.rb +301 -26
- metadata +5 -5
data/bin/rhc-chk
CHANGED
@@ -123,18 +123,36 @@ def test_url_json(uri, data)
|
|
123
123
|
req.set_form_data({'json_data' => json_data, 'password' => @password})
|
124
124
|
http = @http.new(url.host, url.port)
|
125
125
|
http.open_timeout = 10
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
end
|
126
|
+
http.use_ssl = true
|
127
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
128
|
+
response = nil
|
130
129
|
begin
|
131
130
|
response = http.start {|http| http.request(req)}
|
132
131
|
puts " Raw Response: #{response.body}" if @debug
|
133
132
|
rescue Exception => e
|
134
133
|
puts " ERROR: #{e.message}"
|
135
|
-
return nil
|
136
134
|
end
|
137
|
-
|
135
|
+
if response
|
136
|
+
puts " Code: #{response.code}"
|
137
|
+
puts " Message: #{response.message}"
|
138
|
+
if response.code == '200'
|
139
|
+
puts response.body
|
140
|
+
resp_json = JSON.parse(response.body)
|
141
|
+
return resp_json
|
142
|
+
elsif response.code == '404' && data['rhlogin']
|
143
|
+
puts "A user with rhlogin '#{data['rhlogin']}' does not have a registered domain."
|
144
|
+
exit 99
|
145
|
+
elsif response.code == '401'
|
146
|
+
puts "Invalid user credentials"
|
147
|
+
exit 97
|
148
|
+
else
|
149
|
+
puts "Exiting due to error!"
|
150
|
+
exit 1
|
151
|
+
end
|
152
|
+
else
|
153
|
+
puts "Unable to connect to: https://#{@libra_server}"
|
154
|
+
exit 1
|
155
|
+
end
|
138
156
|
end
|
139
157
|
|
140
158
|
#
|
@@ -144,32 +162,21 @@ puts
|
|
144
162
|
puts "TEST1: Confirming connection to OpenShift"
|
145
163
|
data = {'cart_type' => 'standalone'}
|
146
164
|
|
147
|
-
|
148
|
-
|
149
|
-
puts " Code: #{response.code}"
|
150
|
-
puts " Message: #{response.message}"
|
151
|
-
resp_json = JSON.parse(response.body)
|
152
|
-
puts " Cart Info: #{resp_json["data"]}"
|
153
|
-
end
|
165
|
+
resp_json = test_url_json("/broker/cartlist", data)
|
166
|
+
puts " Cart Info: #{resp_json["data"]}"
|
154
167
|
|
155
168
|
|
156
169
|
#
|
157
170
|
# Checking Authentication
|
158
171
|
#
|
159
|
-
|
160
172
|
puts
|
161
173
|
puts "TEST2: Authentication (RHN account) / user info"
|
162
174
|
data = {'rhlogin' => @rhlogin}
|
163
175
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
body = JSON.parse(response.body)
|
169
|
-
@user_info = JSON.parse(body['data'].to_s)
|
170
|
-
puts " rhlogin: #{@user_info["user_info"]["rhlogin"]}"
|
171
|
-
puts " namespace: #{@user_info["user_info"]["namespace"]}"
|
172
|
-
end
|
176
|
+
resp_json = test_url_json("/broker/userinfo", data)
|
177
|
+
@user_info = JSON.parse(resp_json['data'].to_s)
|
178
|
+
puts " rhlogin: #{@user_info["user_info"]["rhlogin"]}"
|
179
|
+
puts " namespace: #{@user_info["user_info"]["namespace"]}"
|
173
180
|
|
174
181
|
#
|
175
182
|
# Checking ssh key
|
@@ -177,7 +184,7 @@ end
|
|
177
184
|
puts
|
178
185
|
puts "TEST3: SSH Key check"
|
179
186
|
remote_ssh_pubkey = @user_info["user_info"]["ssh_key"]
|
180
|
-
libra_kfile = get_kfile(
|
187
|
+
libra_kfile = get_kfile()
|
181
188
|
libra_kpfile = get_kpfile(libra_kfile, false)
|
182
189
|
|
183
190
|
if File.exists?(libra_kfile)
|
data/bin/rhc-create-app
CHANGED
@@ -40,8 +40,13 @@ Create an OpenShift Express app.
|
|
40
40
|
-n|--nogit Only create remote space, don't pull it locally
|
41
41
|
-d|--debug Print Debug info
|
42
42
|
-h|--help Show Usage info
|
43
|
+
--no-dns Skip DNS check
|
43
44
|
--config path Path of alternate config file
|
44
45
|
--timeout # Timeout, in seconds, for connection
|
46
|
+
--enable-jenkins [name] Indicates to create a Jenkins application (if not already available)
|
47
|
+
and embed the Jenkins client into this application. The default
|
48
|
+
name will be 'jenkins' if not specified. Note that --no-dns is ignored
|
49
|
+
for the creation of the Jenkins application.
|
45
50
|
|
46
51
|
USAGE
|
47
52
|
exit 255
|
@@ -51,6 +56,7 @@ begin
|
|
51
56
|
opts = GetoptLong.new(
|
52
57
|
["--debug", "-d", GetoptLong::NO_ARGUMENT],
|
53
58
|
["--help", "-h", GetoptLong::NO_ARGUMENT],
|
59
|
+
["--no-dns", GetoptLong::NO_ARGUMENT],
|
54
60
|
["--nogit", "-n", GetoptLong::NO_ARGUMENT],
|
55
61
|
["--rhlogin", "-l", GetoptLong::REQUIRED_ARGUMENT],
|
56
62
|
["--password", "-p", GetoptLong::REQUIRED_ARGUMENT],
|
@@ -58,7 +64,8 @@ begin
|
|
58
64
|
["--repo", "-r", GetoptLong::REQUIRED_ARGUMENT],
|
59
65
|
["--config", GetoptLong::REQUIRED_ARGUMENT],
|
60
66
|
["--type", "-t", GetoptLong::REQUIRED_ARGUMENT],
|
61
|
-
["--timeout", GetoptLong::REQUIRED_ARGUMENT]
|
67
|
+
["--timeout", GetoptLong::REQUIRED_ARGUMENT],
|
68
|
+
["--enable-jenkins", GetoptLong::OPTIONAL_ARGUMENT]
|
62
69
|
)
|
63
70
|
opt = {}
|
64
71
|
opts.each do |o, a|
|
@@ -76,9 +83,6 @@ check_cpath(opt)
|
|
76
83
|
libra_server = get_var('libra_server')
|
77
84
|
debug = get_var('debug') == 'false' ? nil : get_var('debug')
|
78
85
|
|
79
|
-
ssh_config = "#{ENV['HOME']}/.ssh/config"
|
80
|
-
ssh_config_d = "#{ENV['HOME']}/.ssh/"
|
81
|
-
|
82
86
|
if opt["help"]
|
83
87
|
p_usage
|
84
88
|
end
|
@@ -88,9 +92,9 @@ if opt["debug"]
|
|
88
92
|
end
|
89
93
|
RHC::debug(debug)
|
90
94
|
|
91
|
-
RHC::timeout(opt[
|
95
|
+
RHC::timeout(opt['timeout'] ? opt['timeout'] : get_var('timeout'))
|
92
96
|
|
93
|
-
opt[
|
97
|
+
opt['rhlogin'] = get_var('default_rhlogin') unless opt['rhlogin']
|
94
98
|
|
95
99
|
if !RHC::check_rhlogin(opt['rhlogin'])
|
96
100
|
p_usage
|
@@ -105,7 +109,7 @@ if !opt['type']
|
|
105
109
|
p_usage
|
106
110
|
end
|
107
111
|
|
108
|
-
if !opt[
|
112
|
+
if !opt['rhlogin'] || !opt['app'] || !opt['type']
|
109
113
|
p_usage
|
110
114
|
end
|
111
115
|
|
@@ -114,7 +118,68 @@ if !password
|
|
114
118
|
password = RHC::get_password
|
115
119
|
end
|
116
120
|
|
117
|
-
|
121
|
+
user_info = RHC::get_user_info(libra_server, opt['rhlogin'], password, @http, false)
|
122
|
+
jenkins_app_name = nil
|
123
|
+
has_jenkins = false
|
124
|
+
if opt['enable-jenkins']
|
125
|
+
app_info = user_info['app_info']
|
126
|
+
app_info.each do |app_name, app|
|
127
|
+
if app['framework'] == 'jenkins-1.4'
|
128
|
+
jenkins_app_name = app_name
|
129
|
+
has_jenkins = true
|
130
|
+
puts "
|
131
|
+
Found existing Jenkins application: #{jenkins_app_name}
|
132
|
+
"
|
133
|
+
if !opt['enable-jenkins'].empty?
|
134
|
+
puts "Ignoring specified Jenkins app name: #{opt['enable-jenkins']}"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
if !has_jenkins
|
139
|
+
if opt['type'] =~ /^jenkins-/
|
140
|
+
has_jenkins = true
|
141
|
+
if opt['no-dns']
|
142
|
+
puts "
|
143
|
+
The --no-dns option can't be used in conjunction with --enable-jenkins
|
144
|
+
when creating a #{opt['type']} application. Either remove the --no-dns
|
145
|
+
option or first install your #{opt['type']} application with --no-dns
|
146
|
+
and then use rhc-ctl-app to embed the Jenkins client.
|
147
|
+
"
|
148
|
+
exit 255
|
149
|
+
end
|
150
|
+
jenkins_app_name = opt['app']
|
151
|
+
puts "
|
152
|
+
The Jenkins client will be embedded into the Jenkins application
|
153
|
+
currently being created: '#{opt['app']}'
|
154
|
+
"
|
155
|
+
end
|
156
|
+
end
|
157
|
+
if !has_jenkins
|
158
|
+
if !opt['enable-jenkins'].empty?
|
159
|
+
jenkins_app_name = opt['enable-jenkins']
|
160
|
+
else
|
161
|
+
jenkins_app_name = 'jenkins'
|
162
|
+
end
|
163
|
+
|
164
|
+
if !RHC::check_app(jenkins_app_name)
|
165
|
+
p_usage
|
166
|
+
end
|
167
|
+
|
168
|
+
if jenkins_app_name == opt['app']
|
169
|
+
puts "You must specify a different name for your application and Jenkins ('#{opt['app']}')."
|
170
|
+
exit 100
|
171
|
+
end
|
172
|
+
|
173
|
+
if app_info.has_key?(jenkins_app_name)
|
174
|
+
puts "You already have an application named '#{jenkins_app_name}'."
|
175
|
+
puts "In order to continue you'll need to specify a different name"
|
176
|
+
puts "with --enable-jenkins or destroy the existing application."
|
177
|
+
exit 100
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
opt['repo'] = opt['app'] unless opt['repo']
|
118
183
|
|
119
184
|
puts "
|
120
185
|
Found a bug? Post to the forum and we'll get right on it.
|
@@ -138,9 +203,9 @@ unless opt['nogit']
|
|
138
203
|
# Create the parent directory for the git repo
|
139
204
|
@git_parent = File.expand_path(opt['repo'] + "/../")
|
140
205
|
FileUtils.mkdir_p(@git_parent)
|
141
|
-
rescue
|
206
|
+
rescue Exception => e
|
142
207
|
puts "Could not write to #{@git_parent}"
|
143
|
-
puts "Reason: "
|
208
|
+
puts "Reason: #{e.message}"
|
144
209
|
puts
|
145
210
|
puts "Please re-run from a directory you have write access to or specify -r with a"
|
146
211
|
puts "path you have write access to"
|
@@ -150,269 +215,38 @@ unless opt['nogit']
|
|
150
215
|
end
|
151
216
|
end
|
152
217
|
|
153
|
-
|
154
|
-
|
155
|
-
#
|
156
|
-
|
157
|
-
puts "Attempting to create remote application space: " + opt['app']
|
158
|
-
|
159
|
-
data = {:cartridge => opt['type'],
|
160
|
-
:action => 'configure',
|
161
|
-
:app_name => opt['app'],
|
162
|
-
:rhlogin => opt['rhlogin']
|
163
|
-
}
|
164
|
-
if debug
|
165
|
-
data['debug'] = "true"
|
166
|
-
end
|
167
|
-
json_data = RHC::generate_json(data)
|
168
|
-
|
169
|
-
puts "Contacting https://#{libra_server}"
|
170
|
-
|
171
|
-
url = URI.parse("https://#{libra_server}/broker/cartridge")
|
172
|
-
response = RHC::http_post(@http, url, json_data, password)
|
173
|
-
|
174
|
-
if response.code == '200'
|
175
|
-
json_resp = JSON.parse(response.body)
|
176
|
-
RHC::print_response_success(json_resp, true)
|
177
|
-
json_data = JSON.parse(json_resp['data'])
|
178
|
-
health_check_path = json_data['health_check_path']
|
179
|
-
else
|
180
|
-
RHC::print_response_err(response)
|
181
|
-
end
|
182
|
-
|
183
|
-
#
|
184
|
-
# At this point, we need to register a handler to guarantee app
|
185
|
-
# cleanup on any exceptions or calls to exit
|
186
|
-
#
|
187
|
-
at_exit do
|
188
|
-
unless $!.nil? || $!.is_a?(SystemExit) && $!.success?
|
189
|
-
json_data = RHC::generate_json(
|
190
|
-
{:cartridge => opt['type'],
|
191
|
-
:action => 'deconfigure',
|
192
|
-
:app_name => opt['app'],
|
193
|
-
:rhlogin => opt['rhlogin']
|
194
|
-
})
|
195
|
-
puts "Cleaning up application"
|
196
|
-
url = URI.parse("https://#{libra_server}/broker/cartridge")
|
197
|
-
RHC::http_post(@http, url, json_data, password)
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
#
|
202
|
-
# Check / add new host to ~/.ssh/config
|
203
|
-
#
|
204
|
-
|
205
|
-
puts "Checking ~/.ssh/config"
|
206
|
-
|
207
|
-
user_info = RHC::get_user_info(libra_server, opt['rhlogin'], password, @http, false)
|
218
|
+
if jenkins_app_name && !has_jenkins
|
219
|
+
jenkins_no_git_message = "
|
208
220
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
if (ssh_key_file_name != 'id_rsa')
|
213
|
-
found = false
|
214
|
-
|
215
|
-
begin
|
216
|
-
File.open(ssh_config, "r") do |sline|
|
217
|
-
while(line = sline.gets)
|
218
|
-
if line.to_s.index("Host *.#{user_info['user_info']['rhc_domain']}") == 0
|
219
|
-
found = true
|
220
|
-
break
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end
|
224
|
-
rescue Errno::EACCES
|
225
|
-
puts "Could not read from #{ssh_config}"
|
226
|
-
puts "Reason: " + $!
|
227
|
-
puts
|
228
|
-
puts "Please correct this first. Then run rerun."
|
229
|
-
puts
|
230
|
-
exit 213
|
231
|
-
rescue Errno::ENOENT
|
232
|
-
puts "Could not find #{ssh_config}. This is ok, continuing"
|
233
|
-
end
|
234
|
-
if found
|
235
|
-
puts "Found #{user_info['user_info']['rhc_domain']} in ~/.ssh/config... No need to adjust"
|
236
|
-
else
|
237
|
-
puts " Adding #{user_info['user_info']['rhc_domain']} to ~/.ssh/config"
|
238
|
-
begin
|
239
|
-
f = File.open(ssh_config, "a")
|
240
|
-
f.puts <<SSH
|
241
|
-
|
242
|
-
# Added by rhc-create-app on #{`date`}
|
243
|
-
Host *.#{user_info['user_info']['rhc_domain']}
|
244
|
-
IdentityFile ~/.ssh/#{ssh_key_file_name}
|
245
|
-
VerifyHostKeyDNS yes
|
246
|
-
StrictHostKeyChecking no
|
247
|
-
UserKnownHostsFile ~/.ssh/libra_known_hosts
|
221
|
+
Note: There is a git repo for your Jenkins application '#{jenkins_app_name}'
|
222
|
+
but it isn't being downloaded as part of this process. In most cases
|
223
|
+
it isn't needed but you can always clone it later.
|
248
224
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
puts "Please correct this first. Then run rerun."
|
256
|
-
puts
|
257
|
-
exit 214
|
258
|
-
rescue Errno::ENOENT
|
259
|
-
# Make directory and config if they do not exist
|
260
|
-
puts "Could not find directory: " + $!
|
261
|
-
puts "creating"
|
262
|
-
FileUtils.mkdir_p ssh_config_d
|
263
|
-
file = File.open(ssh_config, 'w')
|
264
|
-
file.close
|
265
|
-
retry
|
266
|
-
end
|
225
|
+
"
|
226
|
+
jenkins_app = RHC::create_app(libra_server, @http, user_info, jenkins_app_name, 'jenkins-1.4', opt['rhlogin'], password, nil, false, true, jenkins_no_git_message)
|
227
|
+
available = RHC::check_app_available(@http, jenkins_app[:app_name], jenkins_app[:fqdn], jenkins_app[:health_check_path], jenkins_app[:result], jenkins_app[:git_url], nil, true)
|
228
|
+
if !available
|
229
|
+
puts "Unable to access your new Jenkins application."
|
230
|
+
exit 1
|
267
231
|
end
|
268
|
-
|
269
|
-
File.chmod(0700, ssh_config_d)
|
270
|
-
File.chmod(0600, ssh_config)
|
271
|
-
end
|
272
|
-
|
273
|
-
#
|
274
|
-
# Confirm that the host exists in DNS
|
275
|
-
#
|
276
|
-
puts "Now your new domain name is being propagated worldwide (this might take a minute)..."
|
277
|
-
|
278
|
-
# Allow DNS to propogate
|
279
|
-
sleep 15
|
280
|
-
|
281
|
-
# Now start checking for DNS
|
282
|
-
loop = 0
|
283
|
-
sleep_time = 2
|
284
|
-
while loop < RHC::MAX_RETRIES && !RHC::hostexist?(fqdn)
|
285
|
-
sleep sleep_time
|
286
|
-
loop+=1
|
287
|
-
puts " retry # #{loop} - Waiting for DNS: #{fqdn}"
|
288
|
-
sleep_time = RHC::delay(sleep_time)
|
289
232
|
end
|
290
233
|
|
291
|
-
sleep_time = 2
|
292
|
-
attempt = 0
|
293
|
-
|
294
234
|
#
|
295
|
-
#
|
235
|
+
# Create remote application space
|
296
236
|
#
|
237
|
+
main_app = RHC::create_app(libra_server, @http, user_info, opt['app'], opt['type'], opt['rhlogin'], password, opt['repo'], opt['no-dns'], opt['nogit'])
|
238
|
+
if jenkins_app_name
|
239
|
+
puts "
|
240
|
+
Now embedding the jenkins client into '#{opt['app']}'...
|
297
241
|
|
298
|
-
|
299
|
-
|
300
|
-
rhc_domain = user_info['user_info']['rhc_domain']
|
301
|
-
app_uuid = user_info['app_info'][app_name]['uuid']
|
302
|
-
|
303
|
-
git_url = "ssh://#{app_uuid}@#{app_name}-#{namespace}.#{rhc_domain}/~/git/#{app_name}.git/"
|
304
|
-
|
305
|
-
# If the hostname couldn't be resolved, print out the git URL
|
306
|
-
# and exit cleanly. This will help solve issues where DNS times
|
307
|
-
# out in APAC, etc on resolution.
|
308
|
-
if loop >= RHC::MAX_RETRIES
|
309
|
-
puts <<WARNING
|
310
|
-
|
311
|
-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
312
|
-
WARNING: We weren't able to lookup your hostname (#{fqdn})
|
313
|
-
in a reasonable amount of time. This can happen periodically and will just
|
314
|
-
take an extra minute or two to propagate depending on where you are in the
|
315
|
-
world. Once you are able to access your application in a browser, you can then
|
316
|
-
clone your git repository.
|
317
|
-
|
318
|
-
Application URL: http://#{fqdn}
|
319
|
-
|
320
|
-
Git Repository URL: #{git_url}
|
321
|
-
|
322
|
-
Git Clone command:
|
323
|
-
git clone #{git_url} #{opt['repo']}
|
324
|
-
|
325
|
-
If you can't get your application running in the browser, you can also try
|
326
|
-
destroying and recreating the application as well using:
|
327
|
-
|
328
|
-
rhc-ctl-app -c destroy -a #{opt['app']} -l #{opt["rhlogin"]}
|
329
|
-
|
330
|
-
If this doesn't work for you, let us know in the forums or in IRC and we'll
|
331
|
-
make sure to get you up and running.
|
332
|
-
|
333
|
-
Forums: https://www.redhat.com/openshift/forums/express
|
334
|
-
|
335
|
-
IRC: #openshift (on Freenode)
|
336
|
-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
337
|
-
|
338
|
-
WARNING
|
339
|
-
exit 0
|
340
|
-
end
|
341
|
-
|
342
|
-
unless opt['nogit']
|
343
|
-
puts "Pulling new repo down"
|
344
|
-
|
345
|
-
puts "git clone --quiet #{git_url} #{opt['repo']}" if debug
|
346
|
-
quiet = (debug ? ' ' : '--quiet ')
|
347
|
-
git_clone = %x<git clone #{quiet} #{git_url} #{opt['repo']}>
|
348
|
-
if $?.exitstatus != 0
|
349
|
-
puts "Error in git clone"
|
350
|
-
puts git_clone
|
351
|
-
exit 216
|
352
|
-
end
|
353
|
-
else
|
354
|
-
puts <<IMPORTANT
|
355
|
-
|
356
|
-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
357
|
-
IMPORTANT: Since the -n flag was specified, no local repo has been created.
|
358
|
-
This means you can't make changes to your published application until after
|
359
|
-
you clone the repo yourself. See the git url below for more information.
|
360
|
-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
361
|
-
|
362
|
-
IMPORTANT
|
363
|
-
end
|
364
|
-
|
365
|
-
#
|
366
|
-
# At this point, we need to register a handler to guarantee git
|
367
|
-
# repo cleanup on any exceptions or calls to exit
|
368
|
-
#
|
369
|
-
at_exit do
|
370
|
-
unless $!.nil? || $!.is_a?(SystemExit) && $!.success?
|
371
|
-
puts "Cleaning up git repo"
|
372
|
-
FileUtils.rm_rf opt['repo']
|
373
|
-
end
|
242
|
+
"
|
243
|
+
RHC::ctl_app(libra_server, @http, opt['app'], opt['rhlogin'], password, 'configure', true, 'jenkins-client-1.4')
|
374
244
|
end
|
375
245
|
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
while attempt < RHC::MAX_RETRIES
|
383
|
-
attempt+=1
|
384
|
-
puts " Attempt # #{attempt}"
|
385
|
-
url = URI.parse("http://#{fqdn}/#{health_check_path}")
|
386
|
-
begin
|
387
|
-
response = @http.get_response(url)
|
388
|
-
rescue Exception => e
|
389
|
-
response = nil
|
390
|
-
end
|
391
|
-
if !response.nil? && response.code == "200" && response.body[0,1] == "1"
|
392
|
-
puts <<LOOKSGOOD
|
393
|
-
|
394
|
-
Success! Your application is now published here:
|
395
|
-
|
396
|
-
http://#{fqdn}/
|
397
|
-
|
398
|
-
The remote repository is located here:
|
399
|
-
|
400
|
-
#{git_url}
|
401
|
-
|
402
|
-
To make changes to your application, commit to #{opt['repo']}/.
|
403
|
-
Then run 'git push' to update your OpenShift Express space
|
404
|
-
|
405
|
-
LOOKSGOOD
|
406
|
-
exit 0
|
407
|
-
end
|
408
|
-
if !response.nil? && debug
|
409
|
-
puts "Server responded with #{response.code}"
|
410
|
-
puts response.body unless response.code == '503'
|
411
|
-
end
|
412
|
-
puts
|
413
|
-
puts " sleeping #{sleep_time} seconds"
|
414
|
-
sleep sleep_time
|
415
|
-
sleep_time = RHC::delay(sleep_time)
|
246
|
+
unless opt['no-dns']
|
247
|
+
available = RHC::check_app_available(@http, main_app[:app_name], main_app[:fqdn], main_app[:health_check_path], main_app[:result], main_app[:git_url], opt['repo'], opt['nogit'])
|
248
|
+
if !available
|
249
|
+
puts "Unable to access your new application."
|
250
|
+
exit 1
|
251
|
+
end
|
416
252
|
end
|
417
|
-
puts "Unable to find or access the site... problems"
|
418
|
-
exit 254
|