Module: Vagrant::Util::GuestInspection::Linux

Defined in:
lib/vagrant/util/guest_inspection.rb

Overview

Linux specific inspection helpers

Instance Method Summary collapse

Instance Method Details

#hostnamectl?(comm) ⇒ Boolean

systemd hostname set is via hostnamectl

NOTE: This test includes actually calling hostnamectl to verify that it is in working order. This prevents attempts to use the hostnamectl command when it is available, but dbus is not which renders the command useless

Parameters:

Returns:

  • (Boolean)


73
74
75
# File 'lib/vagrant/util/guest_inspection.rb', line 73

def hostnamectl?(comm)
  comm.test("command -v hostnamectl && hostnamectl")
end

#netplan?(comm) ⇒ Boolean

netplan is installed

Parameters:

Returns:

  • (Boolean)


83
84
85
# File 'lib/vagrant/util/guest_inspection.rb', line 83

def netplan?(comm)
  comm.test("command -v netplan")
end

#networkd?(comm) ⇒ Boolean

is networkd isntalled

Parameters:

Returns:

  • (Boolean)


91
92
93
# File 'lib/vagrant/util/guest_inspection.rb', line 91

def networkd?(comm)
  comm.test("command -v networkd")
end

#nm_controlled?(comm, device_name) ⇒ Boolean

NetworkManager currently controls device

Parameters:

Returns:

  • (Boolean)


110
111
112
113
# File 'lib/vagrant/util/guest_inspection.rb', line 110

def nm_controlled?(comm, device_name)
  comm.test("nmcli -t d show #{device_name}") &&
    !comm.test("nmcli -t d show #{device_name} | grep unmanaged")
end

#nmcli?(comm) ⇒ Boolean

nmcli is installed

Parameters:

Returns:

  • (Boolean)


101
102
103
# File 'lib/vagrant/util/guest_inspection.rb', line 101

def nmcli?(comm)
  comm.test("command -v nmcli")
end

#systemd?(comm) ⇒ Boolean

systemd is in use

Returns:

  • (Boolean)


17
18
19
# File 'lib/vagrant/util/guest_inspection.rb', line 17

def systemd?(comm)
  comm.test("ps -o comm= 1 | grep systemd", sudo: true)
end

#systemd_controlled?(comm, service_name) ⇒ Boolean

Check if given service is controlled by systemd

Parameters:

Returns:

  • (Boolean)


61
62
63
# File 'lib/vagrant/util/guest_inspection.rb', line 61

def systemd_controlled?(comm, service_name)
  comm.test("systemctl -q is-active #{service_name}", sudo: true)
end

#systemd_network_manager?(comm) ⇒ Boolean

NetworkManager.service is in use

Parameters:

Returns:

  • (Boolean)


33
34
35
# File 'lib/vagrant/util/guest_inspection.rb', line 33

def systemd_network_manager?(comm)
  comm.test("systemctl -q is-active NetworkManager.service", sudo: true)
end

#systemd_networkd?(comm) ⇒ Boolean

systemd-networkd.service is in use

Parameters:

Returns:

  • (Boolean)


25
26
27
# File 'lib/vagrant/util/guest_inspection.rb', line 25

def systemd_networkd?(comm)
  comm.test("systemctl -q is-active systemd-networkd.service", sudo: true)
end

#systemd_unit?(comm, name) ⇒ Boolean

Check if a unit is currently active within systemd

Parameters:

Returns:

  • (Boolean)


52
53
54
# File 'lib/vagrant/util/guest_inspection.rb', line 52

def systemd_unit?(comm, name)
  comm.test("systemctl -q list-units | grep \"#{name}\"")
end

#systemd_unit_file?(comm, name) ⇒ Boolean

Check if a unit file with the given name is defined. Name can be a pattern or explicit name.

Parameters:

Returns:

  • (Boolean)


43
44
45
# File 'lib/vagrant/util/guest_inspection.rb', line 43

def systemd_unit_file?(comm, name)
  comm.test("systemctl -q list-unit-files | grep \"#{name}\"")
end