Module: Gogetit::Util

Included in:
Etcd::Etcd, Gogetit, GogetLXD, GogetLibvirt
Defined in:
lib/util.rb

Instance Method Summary collapse

Instance Method Details

#get_gateway(version) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/util.rb', line 19

def get_gateway(version)
  IO.popen("ip -#{version.to_s} route").read.each_line do |route|
    if route.include? 'default'
      route.split[2]
    else
      'There is no get_gateway!'
      nil
    end
  end
end

#ping_available?(fqdn) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
# File 'lib/util.rb', line 43

def ping_available?(fqdn)
  `ping -c 1 -W 1 #{fqdn}`
  $?.exitstatus == 0
end

#recognize_envObject



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/util.rb', line 6

def recognize_env
  thedir = 'lib/env'
  gateway = get_gateway(4)
  Dir.foreach(thedir) do |item|
    if item.match(/\.json$/)
      env_data = JSON.parse(File.read(thedir+'/'+item))
      if gateway =~ Regexp.new(env_data['regexp_pattern'])
        return env_data['name']
      end
    end
  end
end

#ssh_available?(fqdn, user) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
54
# File 'lib/util.rb', line 48

def ssh_available?(fqdn, user)
  begin
    Net::SSH.start(fqdn, user).class
  rescue Exception => e
    puts e
  end
end

#symbolize_keys(thing) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/util.rb', line 31

def symbolize_keys(thing)
  case thing
  when Array
    thing.map{|v| symbolize_keys(v)}
  when Hash
    inj = thing.inject({}) {|h, (k,v)| h[k] = symbolize_keys(v); h}
    inj.symbolize_keys
  else
    thing
  end
end