Sha256: e2c351ee67e2a9f884f7bf84d0673e9e786e32556b2bee4047b7628cffa59c2c

Contents?: true

Size: 1.81 KB

Versions: 7

Compression:

Stored size: 1.81 KB

Contents

report do
  interfaces = {}
  ips = []

  Facter.value('network_interfaces').each do |iface|
    iface = iface.to_sym
    next if [:dummy0, :lo, :sit0].include?(iface)
    interfaces[iface] ||= {}

    mac = (Facter.value("macaddress_#{iface}").upcase rescue nil)
    mtu = (Integer(Facter.value("mtu_#{iface}")) rescue nil)

    interfaces[iface][:name] = iface
    interfaces[iface][:mac] = mac if mac
    interfaces[iface][:mtu] = mtu if mtu

    ips << Facter.value("ipaddress_#{iface}")

    addresses = [{
      :ip       => Facter.value("ipaddress_#{iface}"),
      :netmask  => Facter.value("netmask_#{iface}")
    }.reject{|k,v| v === nil }]

    interfaces[iface][:addresses] = addresses unless addresses.empty? or addresses.reject{|i| i.empty? }.empty?

  # LLDP autodiscovery
    switch = {
      :name        => Facter.value("lldp_switch_#{iface}"),
      :port        => Facter.value("lldp_port_#{iface}"),
      :port_name   => Facter.value("lldp_port_name_#{iface}"),
      :port_mac    => Facter.value("lldp_port_mac_#{iface}"),
      :ip          => Facter.value("lldp_management_ip_#{iface}"),
      :chassis_mac => Facter.value("lldp_chassis_mac_#{iface}"),
      :mfs         => Facter.value("lldp_mfs_#{iface}")
    }.reject{|k,v| v === nil }


  # Bonding configuration

  # slaves
    master = Facter.value("bonding_master_#{iface}")
    interfaces[iface][:master] = master if master

  # masters
    bond = {
      :arp_ip_target => Facter.value("bonding_arp_ip_target_#{iface}")
    }.reject {|k,v| v === nil }


  # conditionally add applicable subsections
    interfaces[iface][:switch]  = switch unless switch.empty?
    interfaces[iface][:bonding] = bond unless bond.empty?
  end

  property :network, {
    :@ip         => ips,
    :@interfaces => interfaces.values,
    :@sockets    => Facter.value('netstat')
  }
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
onering-report-plugins-0.0.46 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.45 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.44 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.43 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.42 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.41 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.40 lib/reporter/default/properties_network.rb