Module: Gogetit::Util
- Included in:
- Etcd::Etcd, Gogetit, GogetLXD, GogetLibvirt
- Defined in:
- lib/util.rb
Instance Method Summary collapse
- #get_gateway(version) ⇒ Object
- #ping_available?(fqdn) ⇒ Boolean
- #recognize_env ⇒ Object
- #ssh_available?(fqdn, user) ⇒ Boolean
-
#symbolize_keys(thing) ⇒ Object
taken from gist.github.com/andrewpcone/11359798.
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
43 44 45 46 |
# File 'lib/util.rb', line 43 def ping_available?(fqdn) `ping -c 1 -W 1 #{fqdn}` $?.exitstatus == 0 end |
#recognize_env ⇒ Object
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
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
taken from gist.github.com/andrewpcone/11359798
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 |