class Netmidget

Attributes

device_name[RW]
hostname[RW]
ip[RW]
log[RW]
site[RW]

Public Class Methods

new(opts) click to toggle source
# File lib/netmidget.rb, line 10
def initialize(opts)
  @hostname = opts[:hostname] || `/bin/hostname`.chomp
  @site = opts[:site]
  @ip = opts[:ip]
  @device_name = opts[:device_name]
  @log = opts[:log] || nil
end

Public Instance Methods

device_str() click to toggle source
# File lib/netmidget.rb, line 18
def device_str
  "#{site}::#{device_name}::#{ip}"
end
ping() click to toggle source
# File lib/netmidget.rb, line 22
def ping
  Net::Ping::External.new(ip).ping?
end
ping?() click to toggle source
# File lib/netmidget.rb, line 26
def ping?
  if not resp = ping
    warn_str = "#{device_str} was unresponsive...trying again"
    log ? log.warn(warn_str) : puts(Time.now.to_s + ": " + warn_str)
    resp = ping
  end
  resp
end
ping_output_str_fail() click to toggle source
# File lib/netmidget.rb, line 59
def ping_output_str_fail
  str = ping_output_str_prefix + "Fail"
  log ? log.error(str) : puts(str = (stdout_prefix + str))
  str
end
ping_output_str_prefix() click to toggle source
# File lib/netmidget.rb, line 49
def ping_output_str_prefix
  "Pinging #{device_str}: "
end
ping_output_str_success() click to toggle source
# File lib/netmidget.rb, line 53
def ping_output_str_success
  str = ping_output_str_prefix + "Success"
  log ? log.info(str) : puts(str = (stdout_prefix + str))
  str
end
stdout_prefix() click to toggle source
# File lib/netmidget.rb, line 45
def stdout_prefix
  "#{Time.now.to_s}: #{hostname} "
end
traceroute() click to toggle source
# File lib/netmidget.rb, line 35
def traceroute
  `/usr/sbin/traceroute -n -m 20 -w 2 #{ip} 2>&1`
end
traceroute_output_str() click to toggle source
# File lib/netmidget.rb, line 39
def traceroute_output_str
  str = traceroute
  log ? log.error(str) : puts(str = (stdout_prefix + str))
  str
end