Class: TrafficControl::Airport
- Inherits:
-
Object
- Object
- TrafficControl::Airport
- Defined in:
- lib/traffic_control/airport.rb
Instance Attribute Summary collapse
-
#clients ⇒ Object
Returns the value of attribute clients.
-
#host ⇒ Object
Returns the value of attribute host.
-
#settings ⇒ Object
Returns the value of attribute settings.
Instance Method Summary collapse
-
#initialize(host, community = "public") ⇒ Airport
constructor
A new instance of Airport.
- #load_data! ⇒ Object
- #snmp_output(host, community) ⇒ Object
- #snmp_parser(output) ⇒ Object
Constructor Details
#initialize(host, community = "public") ⇒ Airport
Returns a new instance of Airport.
8 9 10 11 12 13 |
# File 'lib/traffic_control/airport.rb', line 8 def initialize(host, community = "public") @host = host @community = community @settings = {} @clients = [] end |
Instance Attribute Details
#clients ⇒ Object
Returns the value of attribute clients.
6 7 8 |
# File 'lib/traffic_control/airport.rb', line 6 def clients @clients end |
#host ⇒ Object
Returns the value of attribute host.
6 7 8 |
# File 'lib/traffic_control/airport.rb', line 6 def host @host end |
#settings ⇒ Object
Returns the value of attribute settings.
6 7 8 |
# File 'lib/traffic_control/airport.rb', line 6 def settings @settings end |
Instance Method Details
#load_data! ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/traffic_control/airport.rb', line 15 def load_data! client_data = {} snmp_results = snmp_parser(snmp_output(@host, @community)) snmp_results.each do |setting| if setting[1] == "0" self.settings[setting[0]] = setting[2] else client_data[setting[1]] ||= [] client_data[setting.delete(setting[1])] << setting end end client_data.each { |key, value| self.clients << TrafficControl::Client.new(Hash[value]) } end |
#snmp_output(host, community) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/traffic_control/airport.rb', line 31 def snmp_output(host, community) snmpcmd = "#{SNMPBIN} -m AIRPORT-BASESTATION-3-MIB -Osq -v 2c " snmpcmd += "-c \"#{community}\" \"#{host}\" " snmpcmd += "SNMPv2-SMI::enterprises.apple.airport" `#{snmpcmd}` end |
#snmp_parser(output) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/traffic_control/airport.rb', line 39 def snmp_parser(output) output. chomp .split("\n") .collect{ |v| v.split(/\.(.+)/).collect{ |t| t.split(" ") }.flatten } end |