Sha256: 823cb54cd3f3d3d22b200066a656bf1656442e920e0e3a773680c8d302d66bd7

Contents?: true

Size: 844 Bytes

Versions: 1

Compression:

Stored size: 844 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
        logger.warn(e)
        exit(1)
      end
    end

    def valid_echo(host_list)
      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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cap-rightscale-0.3.1 lib/cap-rightscale/utils/rs_utils.rb