rhc 0.95.13 → 0.95.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/bin/rhc-chk +41 -21
  2. metadata +4 -4
data/bin/rhc-chk CHANGED
@@ -170,13 +170,15 @@ module TestBase
170
170
  response = http.start {|http| http.request(req)}
171
171
  return response
172
172
  ensure
173
- $debuginfo['fetches'] ||= []
174
- body = RHC::json_decode(response.body)
175
- body['data'] = body['data'] && body['data'] != '' ? RHC::json_decode(body['data']) : ''
176
- $debuginfo['fetches'] << {url.to_s => {
177
- 'body' => body,
178
- 'header' => response.instance_variable_get(:@header)
179
- }}
173
+ unless response.nil?
174
+ $debuginfo['fetches'] ||= []
175
+ body = RHC::json_decode(response.body)
176
+ body['data'] = body['data'] && body['data'] != '' ? RHC::json_decode(body['data']) : ''
177
+ $debuginfo['fetches'] << {url.to_s => {
178
+ 'body' => body,
179
+ 'header' => response.instance_variable_get(:@header)
180
+ }}
181
+ end
180
182
  end
181
183
 
182
184
  def continue_test
@@ -197,16 +199,25 @@ end
197
199
  #####################################################
198
200
 
199
201
  def error_for(name,*args)
200
- if name.kind_of? String
201
- name = name.downcase.to_sym
202
- end
202
+ # Make sure the name is a downcased symbol
203
+ name = name.to_s.downcase.to_sym
204
+
205
+ # Create message template
206
+ message = [:errors,:solutions].map{|x| get_message(x,name) }.compact.join("\n")
203
207
 
204
- message = sprintf(get_message(:errors,name),*(args.shift || ''))
205
- solution = get_message(:solutions,name)
206
- if solution
207
- message << "\n" << sprintf(solution,*(args.shift || ''))
208
+ # Params for message template
209
+ params = args.flatten
210
+
211
+ # Ensure we have the right number of placeholders
212
+ num_placeholders = message.scan("%s").length
213
+ unless num_placeholders == params.length
214
+ warn("\nWARNING: error_for called with wrong number of args from: \n\t%s\n" % caller[0]) if $debug
215
+ # This will ensure we have the right number of arguments, but should not get here
216
+ params << Array.new(num_placeholders,"???")
208
217
  end
209
- message
218
+
219
+ # Return the message
220
+ message % params.flatten
210
221
  end
211
222
 
212
223
  def get_message(type,name)
@@ -320,16 +331,23 @@ class Test3_SSH < Test::Unit::TestCase
320
331
  flunk(error_for(:no_account,test)) if $user_info.nil?
321
332
  end
322
333
 
334
+ def require_domain(test)
335
+ flunk(error_for(:no_domain,test)) if $user_info['user_info']['domains'].empty?
336
+ end
337
+
323
338
  def require_remote_keys(test)
324
339
  require_login(test)
340
+ require_domain(test)
325
341
  @@remote_pub_keys ||= (
326
-
327
- ssh_keys = RHC::get_ssh_keys($libra_server, $rhlogin, $password, $http)
328
- my_keys = [ssh_keys['ssh_key'], ssh_keys['keys'].values.map{|k| k['key']}].flatten
329
- my_keys.delete_if{|x| x.length == 0 }
342
+ ssh_keys = RHC::get_ssh_keys($libra_server, $rhlogin, $password, $http)
343
+ my_keys = [ssh_keys['ssh_key'], ssh_keys['keys'].values.map{|k| k['key']}].flatten
344
+ my_keys.delete_if{|x| x.length == 0 }
330
345
  my_keys
331
346
  )
332
- flunk(error_for(:no_remote_pub_keys,test)) if @@remote_pub_keys.nil?
347
+
348
+ missing_keys = [:nil?,:empty?].map{|f| @@remote_pub_keys.send(f) rescue false }.inject(:|)
349
+
350
+ flunk(error_for(:no_remote_pub_keys,test)) if missing_keys
333
351
  end
334
352
 
335
353
  def require_agent_keys(fatal = true)
@@ -376,7 +394,7 @@ class Test3_SSH < Test::Unit::TestCase
376
394
  end
377
395
 
378
396
  def test_03_remote_ssh_keys
379
- require_remote_keys("whether you have a valid key loaded in your agent")
397
+ require_remote_keys("whether your local SSH keys match the ones in your account")
380
398
  require_agent_keys(false)
381
399
 
382
400
  assert !(@@remote_pub_keys & [agent_key_fingerprints,libra_public_key].flatten).empty? ,error_for(:pubkey_not_loaded," ")
@@ -384,6 +402,7 @@ class Test3_SSH < Test::Unit::TestCase
384
402
 
385
403
  def test_04_ssh_connect
386
404
  require_login("connecting to your applications")
405
+ require_domain("connecting to your applications")
387
406
 
388
407
  host_template = "%%s-%s.%s" % [
389
408
  $user_info['user_info']['domains'][0]['namespace'],
@@ -530,6 +549,7 @@ $messages = YAML.load <<-EOF
530
549
  :no_derive: "We were unable to derive your public SSH key and compare it to the remote"
531
550
  :no_connectivity: "Cannot connect to server, therefore most tests will not work"
532
551
  :no_account: "You must have an account on the server in order to test: %s"
552
+ :no_domain: "You must have a domain associated with this account in order to test: %s"
533
553
  :cant_connect: You need to be able to connect to the server in order to test authentication
534
554
  :no_match_pub: "Local %s does not match remote pub key, SSH auth will not work"
535
555
  :_404: "The user %s does not have an account on this server"
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: 377
4
+ hash: 383
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 95
9
- - 13
10
- version: 0.95.13
9
+ - 14
10
+ version: 0.95.14
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: 2012-07-11 00:00:00 -05:00
18
+ date: 2012-07-13 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency