class AutomateIt::AddressManager::OpenBSD

AddressManager::OpenBSD

A OpenBSD-specific driver for the AddressManager provides complete support for querying, adding and removing addresses.

Public Class Methods

token() click to toggle source
# File lib/automateit/address_manager/openbsd.rb, line 6
def self.token
  :openbsd
end

Public Instance Methods

add(opts) click to toggle source

See AddressManager#add

# File lib/automateit/address_manager/openbsd.rb, line 19
def add(opts)
  _add_helper(opts) do |opts|
    interpreter.sh(_openbsd_ifconfig_helper(:add, opts))
  end
end
addresses() click to toggle source

See AddressManager#addresses

# File lib/automateit/address_manager/openbsd.rb, line 34
def addresses()
  _raise_unless_available
  # OpenBSD requires an "-A" to display aliases, not the usual "-a"
  return `ifconfig -A`.scan(/\s+inet\s+([^\s]+)\s+/).flatten
end
has?(opts) click to toggle source

See AddressManager#has?

# File lib/automateit/address_manager/openbsd.rb, line 41
def has?(opts)
  opts2 = opts.clone
  is_alias = opts2.delete(:label)
  return super(opts2)
end
remove(opts) click to toggle source

See AddressManager#remove

# File lib/automateit/address_manager/openbsd.rb, line 26
def remove(opts)
  _remove_helper(opts) do |opts|
    interpreter.sh(_openbsd_ifconfig_helper(:remove, opts))
    true
  end
end

Protected Instance Methods

_openbsd_ifconfig_helper(action, opts) click to toggle source

ifconfig dc0 inet alias 192.168.0.3 netmask 255.255.255.255

# File lib/automateit/address_manager/openbsd.rb, line 50
def _openbsd_ifconfig_helper(action, opts)
  helper_opts = {:state => false, :prepend => %w(inet)}
  opts2 = opts.clone
  if opts2.delete(:label)
    helper_opts[:prepend] << \
      case action
      when :add
        "alias"
      when :remove, :del
        "delete"
      else 
        ArgumentError.new("Unknown action: #{action}")
      end
  end
  return _ifconfig_helper(action, opts2, helper_opts)
end