Sha256: 33938b55269aedbd3d63565fa764b59c13e7eef5b019f88c3b8caa8a48832a82

Contents?: true

Size: 1.68 KB

Versions: 33

Compression:

Stored size: 1.68 KB

Contents

report do
  interfaces = {}

  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

    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, {
    :@interfaces => interfaces.values
  }
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
onering-report-plugins-0.0.33 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.32 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.31 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.30 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.29 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.28 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.27 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.26 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.25 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.24 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.23 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.22 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.21 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.20 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.19 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.18 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.17 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.16 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.15 lib/reporter/default/properties_network.rb
onering-report-plugins-0.0.14 lib/reporter/default/properties_network.rb