Class: Inspec::Resources::NetworkInterface
- Inherits:
-
Object
- Object
- Inspec::Resources::NetworkInterface
- Defined in:
- lib/inspec/resources/interface.rb
Instance Method Summary collapse
- #exists? ⇒ Boolean
-
#initialize(iface) ⇒ NetworkInterface
constructor
A new instance of NetworkInterface.
- #ipv4_address? ⇒ Boolean
- #ipv4_addresses ⇒ Object
- #ipv4_addresses_netmask ⇒ Object
- #ipv4_cidrs ⇒ Object
- #ipv6_address? ⇒ Boolean
- #ipv6_addresses ⇒ Object
- #ipv6_cidrs ⇒ Object
-
#speed ⇒ Object
returns link speed in Mbits/sec.
- #to_s ⇒ Object
- #up? ⇒ Boolean
Constructor Details
#initialize(iface) ⇒ NetworkInterface
Returns a new instance of NetworkInterface.
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/inspec/resources/interface.rb', line 20 def initialize(iface) @iface = iface @interface_provider = nil if inspec.os.linux? @interface_provider = LinuxInterface.new(inspec) elsif inspec.os.windows? @interface_provider = WindowsInterface.new(inspec) else return skip_resource "The `interface` resource is not supported on your OS yet." end end |
Instance Method Details
#exists? ⇒ Boolean
33 34 35 |
# File 'lib/inspec/resources/interface.rb', line 33 def exists? !interface_info.nil? && !interface_info[:name].nil? end |
#ipv4_address? ⇒ Boolean
46 47 48 |
# File 'lib/inspec/resources/interface.rb', line 46 def ipv4_address? !ipv4_addresses.nil? && !ipv4_addresses.empty? end |
#ipv4_addresses ⇒ Object
54 55 56 |
# File 'lib/inspec/resources/interface.rb', line 54 def ipv4_addresses ipv4_cidrs.map { |i| i.split("/")[0] } end |
#ipv4_addresses_netmask ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/inspec/resources/interface.rb', line 62 def ipv4_addresses_netmask ipv4_cidrs.map { |i| i.split("/") }.map do |addr, netlen| binmask = "#{"1" * netlen.to_i}#{"0" * (32 - netlen.to_i)}".to_i(2) netmask = [] (1..4).each do |_byte| netmask.unshift(binmask & 255) binmask = binmask >> 8 end "#{addr}/#{netmask.join(".")}" end end |
#ipv4_cidrs ⇒ Object
74 75 76 |
# File 'lib/inspec/resources/interface.rb', line 74 def ipv4_cidrs interface_info.nil? ? [] : interface_info[:ipv4_addresses] end |
#ipv6_address? ⇒ Boolean
50 51 52 |
# File 'lib/inspec/resources/interface.rb', line 50 def ipv6_address? !ipv6_addresses.nil? && !ipv6_addresses.empty? end |
#ipv6_addresses ⇒ Object
58 59 60 |
# File 'lib/inspec/resources/interface.rb', line 58 def ipv6_addresses ipv6_cidrs.map { |i| i.split("/")[0] } end |
#ipv6_cidrs ⇒ Object
78 79 80 |
# File 'lib/inspec/resources/interface.rb', line 78 def ipv6_cidrs interface_info.nil? ? [] : interface_info[:ipv6_addresses] end |
#speed ⇒ Object
returns link speed in Mbits/sec
42 43 44 |
# File 'lib/inspec/resources/interface.rb', line 42 def speed interface_info.nil? ? nil : interface_info[:speed] end |
#to_s ⇒ Object
82 83 84 |
# File 'lib/inspec/resources/interface.rb', line 82 def to_s "Interface #{@iface}" end |
#up? ⇒ Boolean
37 38 39 |
# File 'lib/inspec/resources/interface.rb', line 37 def up? interface_info.nil? ? false : interface_info[:up] end |