Class: Specinfra::Command::Freebsd::Base::Host

Inherits:
Base::Host show all
Defined in:
lib/specinfra/command/freebsd/base/host.rb

Class Method Summary collapse

Methods inherited from Base::Host

check_is_resolvable

Methods inherited from Base

create, escape

Class Method Details

.check_is_reachable(host, port, proto, timeout) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/specinfra/command/freebsd/base/host.rb', line 3

def check_is_reachable(host, port, proto, timeout)
  if port.nil?
    "ping -t #{escape(timeout)} -c 2 -n #{escape(host)}"
  else
    "nc -vvvvz#{escape(proto[0].chr)} #{escape(host)} #{escape(port)} -w #{escape(timeout)}"
  end
end

.get_ipaddress(name) ⇒ Object



10
11
12
13
14
# File 'lib/specinfra/command/freebsd/base/host.rb', line 10

def get_ipaddress(name)
  # getent hosts will return both the ipv6 and ipv4 record.
  # this will only pick the first one. (Linux behavior)
  "getent hosts #{escape(name)} | awk '{print $1; exit}'"
end

.get_ipv4_address(name) ⇒ Object



15
16
17
18
# File 'lib/specinfra/command/freebsd/base/host.rb', line 15

def get_ipv4_address(name)
  # May return multiple values pick the one matching ipv4
  "getent hosts #{escape(name)} | awk '$1 ~ /^[0-9.]+$/ {print $1}'"
end

.get_ipv6_address(name) ⇒ Object



19
20
21
22
# File 'lib/specinfra/command/freebsd/base/host.rb', line 19

def get_ipv6_address(name)
  # May return multiple values pick the one matching ipv6
  "getent hosts #{escape(name)} | awk 'tolower($1) ~ /^[0-9a-f:]+$/ {print $1}'"
end