class Bridge

def bridge_info

def bridge_info
  return @cache if defined?(@cache)
  @cache = @bridge_provider.bridge_info(@bridge_name) if !@bridge_provider.nil?
end

def exists?

def exists?
  !bridge_info.nil? && !bridge_info[:name].nil?
end

def has_interface?(interface)

def has_interface?(interface)
  return skip_resource 'The `bridge` resource does not provide interface detection for Windows yet' if inspec.os.windows?
  bridge_info.nil? ? false : bridge_info[:interfaces].include?(interface)
end

def initialize(bridge_name)

def initialize(bridge_name)
  @bridge_name = bridge_name
  @bridge_provider = nil
  if inspec.os.linux?
    @bridge_provider = LinuxBridge.new(inspec)
  elsif inspec.os.windows?
    @bridge_provider = WindowsBridge.new(inspec)
  else
    return skip_resource 'The `bridge` resource is not supported on your OS yet.'
  end
end

def interfaces

def interfaces
  bridge_info.nil? ? nil : bridge_info[:interfaces]
end

def to_s

def to_s
  "Bridge #{@bridge_name}"
end