Sha256: f536a6f7672876005533ed6b66d0a9fcb25710f354f21a70eefb58f2010febea

Contents?: true

Size: 839 Bytes

Versions: 2

Compression:

Stored size: 839 Bytes

Contents

require 'ping'
require 'thread'

class RSUtils
  class << self
    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
        warn(e)
        exit(1)
      end
    end

    def valid_echo(host_list, logger)
      hosts = host_list
      threads = []
      hosts.each do |host|
        threads << Thread.new {Ping.pingecho(host)}
      end
      threads.each_with_index do |t,i|
        unless t.value
          logger.info("Server dead: #{hosts[i]}")
          hosts[i] = nil
        else
          logger.info("Server alive: #{hosts[i]}")
        end
      end
      hosts.delete(nil)
      threads.clear

      hosts
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cap-rightscale-0.3.6 lib/cap-rightscale/utils/rs_utils.rb
cap-rightscale-0.3.5 lib/cap-rightscale/utils/rs_utils.rb