class Wifidiag::Adapters::CiscoWlc

Public Class Methods

new(host:, port: 161, community:) click to toggle source
# File lib/wifidiag/adapters/cisco_wlc.rb, line 11
def initialize(host:, port: 161, community:)
  @host = host
  @port = port
  @community = community
end

Public Instance Methods

collect() click to toggle source
# File lib/wifidiag/adapters/cisco_wlc.rb, line 17
def collect
  aps = {}
  wlc.clients.map do |client|
    if client.ap
      ap = aps.fetch(client.ap_mac) do
        aps[client.ap_mac] = ApData.new(
          name: client.ap.name,
          mac_address: client.ap.mac_address,
          location: client.ap.location,
          model: client.ap.model,
        )
      end
    end
    ClientData.new(
      mac_address: client.mac_address,
      ip_address: client.ip_address,
      ap: ap,
      wlan_profile: client.wlan_profile,
      protocol: client.protocol,
      ap_mac: client.ap_mac,
      uptime: client.uptime,
      current_rate: client.current_rate,
      supported_data_rates: client.supported_data_rates,
      user: client.user,
      ssid: client.ssid,
    )
  end
end
wlc() click to toggle source
# File lib/wifidiag/adapters/cisco_wlc.rb, line 46
def wlc
  @snmp ||= WlcSnmp::Client.new(host: @host, port: @port, community: @community)
end