Sha256: 3b688018977ec1dfc2463d863828d7f7ddf922dc90b9204e993fbbaeb2e8ebc6

Contents?: true

Size: 850 Bytes

Versions: 2

Compression:

Stored size: 850 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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cap-rightscale-0.3.3 lib/cap-rightscale/utils/rs_utils.rb
cap-rightscale-0.3.2 lib/cap-rightscale/utils/rs_utils.rb