rhc 0.68.5 → 0.69.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/bin/rhc-create-app +9 -7
- data/bin/rhc-create-domain +3 -3
- data/bin/rhc-tail-files +122 -0
- data/lib/rhc-common.rb +18 -3
- metadata +7 -5
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ spec = Gem::Specification.new do |s|
|
|
18
18
|
s.description = %q{OpenShift Express Client Tools}
|
19
19
|
s.files = FileList['lib/**/*.rb', 'bin/*', 'conf/*'].to_a
|
20
20
|
s.files += %w(LICENSE README Rakefile)
|
21
|
-
s.executables = ['rhc-create-app', 'rhc-create-domain', 'rhc-ctl-app', 'rhc-snapshot', 'rhc-user-info']
|
21
|
+
s.executables = ['rhc-create-app', 'rhc-create-domain', 'rhc-ctl-app', 'rhc-snapshot', 'rhc-user-info', 'rhc-tail-files']
|
22
22
|
s.add_dependency('json')
|
23
23
|
s.add_dependency('parseconfig')
|
24
24
|
end
|
data/bin/rhc-create-app
CHANGED
@@ -110,16 +110,18 @@ end
|
|
110
110
|
|
111
111
|
uuid = get_var(opt["rhlogin"])
|
112
112
|
unless uuid
|
113
|
-
puts "Could not find UUID for #{opt["rhlogin"]}"
|
113
|
+
puts "Could not find UUID for '#{opt["rhlogin"]}' in express.conf. Be sure you have successfully ran rhc-create-domain before running rhc-create-app."
|
114
114
|
exit 99
|
115
115
|
end
|
116
116
|
|
117
117
|
opt["repo"] = opt["app"] unless opt["repo"]
|
118
118
|
|
119
|
-
puts "
|
120
|
-
|
121
|
-
|
122
|
-
|
119
|
+
puts "
|
120
|
+
Found a bug? Post to the forum and we'll get right on it.
|
121
|
+
IRC: #openshift on freenode
|
122
|
+
Forums: https://www.redhat.com/openshift/forums
|
123
|
+
|
124
|
+
"
|
123
125
|
|
124
126
|
#
|
125
127
|
# Confirm local git repo exists
|
@@ -310,8 +312,8 @@ git_url = "ssh://#{uuid}@#{opt['app']}-#{user_info['user_info']['namespace']}.#{
|
|
310
312
|
unless opt['nogit']
|
311
313
|
puts "Pulling new repo down"
|
312
314
|
|
313
|
-
puts "git clone #{git_url} #{opt['repo']}" if debug
|
314
|
-
git_pull = `git clone #{git_url} #{opt['repo']}`
|
315
|
+
puts "git clone --quiet #{git_url} #{opt['repo']}" if debug
|
316
|
+
git_pull = `git clone #{debug ? ' ' : '--quiet '}#{git_url} #{opt['repo']}`
|
315
317
|
if $?.exitstatus != 0
|
316
318
|
puts "Error in git pull"
|
317
319
|
puts git_pull
|
data/bin/rhc-create-domain
CHANGED
@@ -38,7 +38,7 @@ Bind a registered rhcloud user to a domain in rhcloud.
|
|
38
38
|
-n|--namespace namespace Opensift Express namespace (alphanumeric - max #{RHC::Maxdlen} chars) (required)
|
39
39
|
-l|--rhlogin rhlogin Red Hat login (required)
|
40
40
|
-p|--password password RHLogin password (optional, will prompt)
|
41
|
-
-a|--alter Alter ssh key
|
41
|
+
-a|--alter Alter namespace (will change urls) and/or ssh key
|
42
42
|
-d|--debug Print Debug info
|
43
43
|
-h|--help Show Usage info
|
44
44
|
|
@@ -127,7 +127,7 @@ if File.readable?(libra_kfile)
|
|
127
127
|
else
|
128
128
|
puts "Generating Openshift Express ssh key to #{libra_kfile}"
|
129
129
|
# Use system for interaction
|
130
|
-
system("ssh-keygen -t rsa -f #{libra_kfile}")
|
130
|
+
system("ssh-keygen -t rsa -f '#{libra_kfile}'")
|
131
131
|
end
|
132
132
|
|
133
133
|
ssh_key = File.open(libra_kpfile).gets.chomp.split(' ')[1]
|
@@ -164,7 +164,7 @@ in #{@local_config_path} which has been created and populated for you.
|
|
164
164
|
|
165
165
|
EOF
|
166
166
|
else
|
167
|
-
puts "
|
167
|
+
puts "Alteration successful. You can use rhc-user-info to view any url changes."
|
168
168
|
puts
|
169
169
|
end
|
170
170
|
exit 0
|
data/bin/rhc-tail-files
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright 2011 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person
|
5
|
+
# obtaining a copy of this software and associated documentation files
|
6
|
+
# (the "Software"), to deal in the Software without restriction,
|
7
|
+
# including without limitation the rights to use, copy, modify, merge,
|
8
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
9
|
+
# and to permit persons to whom the Software is furnished to do so,
|
10
|
+
# subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
19
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
20
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
+
# SOFTWARE.
|
23
|
+
|
24
|
+
require 'rhc-common'
|
25
|
+
|
26
|
+
#
|
27
|
+
# print help
|
28
|
+
#
|
29
|
+
def p_usage
|
30
|
+
rhlogin = get_var('default_rhlogin') ? "Default: #{get_var('default_rhlogin')}" : "(required)"
|
31
|
+
puts <<USAGE
|
32
|
+
|
33
|
+
Usage: rhc-tail-file
|
34
|
+
Pull down application snapshot for a user
|
35
|
+
|
36
|
+
-l|--rhlogin rhlogin RHCloud rhlogin (#{rhlogin})
|
37
|
+
-a|--app Target application to snapshot (required)
|
38
|
+
-f|--files File glob relative to app (default ./logs/*) (optional)
|
39
|
+
-p|--password password RHLogin password (optional, will prompt)
|
40
|
+
-d|--debug Print Debug info
|
41
|
+
-h|--help Show Usage info
|
42
|
+
|
43
|
+
USAGE
|
44
|
+
exit 255
|
45
|
+
end
|
46
|
+
|
47
|
+
begin
|
48
|
+
opts = GetoptLong.new(
|
49
|
+
["--debug", "-d", GetoptLong::NO_ARGUMENT],
|
50
|
+
["--help", "-h", GetoptLong::NO_ARGUMENT],
|
51
|
+
["--app", "-a", GetoptLong::REQUIRED_ARGUMENT],
|
52
|
+
["--files", "-f", GetoptLong::OPTIONAL_ARGUMENT],
|
53
|
+
["--rhlogin", "-l", GetoptLong::REQUIRED_ARGUMENT],
|
54
|
+
["--password", "-p", GetoptLong::OPTIONAL_ARGUMENT]
|
55
|
+
)
|
56
|
+
opt = {}
|
57
|
+
opts.each do |o, a|
|
58
|
+
opt[o[2..-1]] = a.to_s
|
59
|
+
end
|
60
|
+
rescue Exception => e
|
61
|
+
#puts e.message
|
62
|
+
p_usage
|
63
|
+
end
|
64
|
+
|
65
|
+
# Pull in configs from files
|
66
|
+
libra_server = get_var('libra_server')
|
67
|
+
debug = get_var('debug') == 'false' ? nil : get_var('debug')
|
68
|
+
libra_domain = get_var('libra_domain')
|
69
|
+
|
70
|
+
libra_kfile = "#{ENV['HOME']}/.ssh/libra_id_rsa"
|
71
|
+
libra_kpfile = "#{ENV['HOME']}/.ssh/libra_id_rsa.pub"
|
72
|
+
|
73
|
+
if opt["help"] || !opt['app']
|
74
|
+
p_usage
|
75
|
+
end
|
76
|
+
|
77
|
+
if opt["debug"]
|
78
|
+
debug = true
|
79
|
+
end
|
80
|
+
|
81
|
+
opt["rhlogin"] = get_var('default_rhlogin') unless opt["rhlogin"]
|
82
|
+
|
83
|
+
if !RHC::check_rhlogin(opt['rhlogin'])
|
84
|
+
p_usage
|
85
|
+
end
|
86
|
+
|
87
|
+
password = opt['password']
|
88
|
+
if !password
|
89
|
+
password = RHC::get_password
|
90
|
+
end
|
91
|
+
|
92
|
+
user_info = RHC::get_user_info(libra_server, opt['rhlogin'], password, @http, debug, false)
|
93
|
+
|
94
|
+
app = opt['app']
|
95
|
+
|
96
|
+
begin
|
97
|
+
framework = user_info['app_info'][app]['framework'].split('-')[0]
|
98
|
+
rescue NoMethodError
|
99
|
+
puts
|
100
|
+
puts "Could not find app '#{opt['app']}'. Please run rhc-user-info to get a list"
|
101
|
+
puts "of your current running applications"
|
102
|
+
puts
|
103
|
+
exit 101
|
104
|
+
end
|
105
|
+
|
106
|
+
opt['files'] = "logs/*" unless opt['files']
|
107
|
+
file_glob = "#{framework}/#{opt['app']}/#{opt['files']}"
|
108
|
+
|
109
|
+
puts "Attempting to tail files: #{file_glob}"
|
110
|
+
puts "Use ctl + c to stop"
|
111
|
+
puts
|
112
|
+
puts "ssh #{user_info['user_info']['uuid']}@#{app}-#{user_info['user_info']['namespace']}.#{libra_domain} 'tail #{file_glob}'" if debug
|
113
|
+
system("ssh #{user_info['user_info']['uuid']}@#{app}-#{user_info['user_info']['namespace']}.#{libra_domain} 'tail #{file_glob}'")
|
114
|
+
if $?.exitstatus != 0 and $?.exitstatus != 255
|
115
|
+
puts
|
116
|
+
puts "Error in trying to tail files. You can tail manually by running:"
|
117
|
+
puts
|
118
|
+
puts "ssh #{user_info['user_info']['uuid']}@#{app}-#{user_info['user_info']['namespace']}.#{libra_domain} 'tail #{file_glob}'`"
|
119
|
+
puts
|
120
|
+
exit 254
|
121
|
+
end
|
122
|
+
exit 0
|
data/lib/rhc-common.rb
CHANGED
@@ -40,7 +40,8 @@ module RHC
|
|
40
40
|
TYPES = {
|
41
41
|
'php-5.3.2' => :php,
|
42
42
|
'rack-1.1.0' => :rack,
|
43
|
-
'wsgi-3.2.1' => :wsgi
|
43
|
+
'wsgi-3.2.1' => :wsgi,
|
44
|
+
'jbossas-7.0.0' => :jbossas
|
44
45
|
}
|
45
46
|
|
46
47
|
def self.delay(time, adj=Defaultdelay)
|
@@ -222,6 +223,16 @@ module RHC
|
|
222
223
|
end
|
223
224
|
exit exit_code.nil? ? 666 : exit_code
|
224
225
|
end
|
226
|
+
|
227
|
+
def self.print_response_messages(json_resp)
|
228
|
+
messages = json_resp['messages']
|
229
|
+
if (messages && !messages.empty?)
|
230
|
+
puts ''
|
231
|
+
puts 'MESSAGES:'
|
232
|
+
puts messages
|
233
|
+
puts ''
|
234
|
+
end
|
235
|
+
end
|
225
236
|
|
226
237
|
def self.print_response_success(response, debug, always_print_result=false)
|
227
238
|
if debug
|
@@ -229,11 +240,15 @@ module RHC
|
|
229
240
|
print_json_body(response, debug)
|
230
241
|
elsif always_print_result
|
231
242
|
print_json_body(response, debug)
|
243
|
+
else
|
244
|
+
json_resp = JSON.parse(response.body)
|
245
|
+
print_response_messages(json_resp)
|
232
246
|
end
|
233
247
|
end
|
234
248
|
|
235
249
|
def self.print_json_body(response, debug)
|
236
|
-
json_resp = JSON.parse(response.body)
|
250
|
+
json_resp = JSON.parse(response.body)
|
251
|
+
print_response_messages(json_resp)
|
237
252
|
exit_code = json_resp['exit_code']
|
238
253
|
if debug
|
239
254
|
if json_resp['debug']
|
@@ -244,7 +259,7 @@ module RHC
|
|
244
259
|
puts "Exit Code: #{exit_code}"
|
245
260
|
if (json_resp.length > 3)
|
246
261
|
json_resp.each do |k,v|
|
247
|
-
if (k != '
|
262
|
+
if (k != 'result' && k != 'debug' && k != 'exit_code' && k != 'messages')
|
248
263
|
puts "#{k.to_s}: #{v.to_s}"
|
249
264
|
end
|
250
265
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 269
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 69
|
9
|
+
- 3
|
10
|
+
version: 0.69.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Red Hat
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-12 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -54,6 +54,7 @@ executables:
|
|
54
54
|
- rhc-ctl-app
|
55
55
|
- rhc-snapshot
|
56
56
|
- rhc-user-info
|
57
|
+
- rhc-tail-files
|
57
58
|
extensions: []
|
58
59
|
|
59
60
|
extra_rdoc_files: []
|
@@ -61,6 +62,7 @@ extra_rdoc_files: []
|
|
61
62
|
files:
|
62
63
|
- lib/rhc-common.rb
|
63
64
|
- bin/rhc-create-domain
|
65
|
+
- bin/rhc-tail-files
|
64
66
|
- bin/rhc-create-app
|
65
67
|
- bin/rhc-ctl-app
|
66
68
|
- bin/rhc-user-info
|