Class: RSUtils
- Inherits:
-
Object
- Object
- RSUtils
- Defined in:
- lib/cap-rightscale/utils/rs_utils.rb
Class Method Summary collapse
- .mk_rs_cache_dir(prefix = nil) ⇒ Object
- .valid_echo(servers, logger) ⇒ Object
- .valid_resolv(servers, logger) ⇒ Object
Class Method Details
.mk_rs_cache_dir(prefix = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/cap-rightscale/utils/rs_utils.rb', line 7 def mk_rs_cache_dir(prefix=nil) tmpdir = Dir.tmpdir _prefix = prefix || "cap-rightscale" begin path = "#{tmpdir}/#{_prefix}-#{ENV['USER']}-#{rand(0x100000000).to_s(36)}" Dir.mkdir(path, 0700) rescue Errno::EEXIST STEDERR.puts(e) exit(1) end end |
.valid_echo(servers, logger) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/cap-rightscale/utils/rs_utils.rb', line 38 def valid_echo(servers, logger) hosts = servers threads = [] hosts.each do |host| threads << Thread.new(host) {|h| Ping.pingecho(h) } end threads.each_with_index do |t,i| unless t.value logger.debug("Server dead or Network problem: #{hosts[i]}") hosts[i] = nil else logger.debug("Server alive: #{hosts[i]}") end end hosts.delete(nil) threads.clear hosts || [] end |
.valid_resolv(servers, logger) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/cap-rightscale/utils/rs_utils.rb', line 19 def valid_resolv(servers, logger) hosts = servers @dns ||= Resolv::DNS.new hosts = hosts.map do |host| result = @dns.getaddress(host) rescue nil if result.nil? logger.debug("ResolvError: No address for #{host}") host = nil else logger.debug("Resolved server: #{host} => #{result}") end host end hosts.delete(nil) hosts || [] end |