Class: VagrantPlugins::ProviderZone::QGA::FreebsdBackend
- Inherits:
-
BaseBackend
- Object
- BaseBackend
- VagrantPlugins::ProviderZone::QGA::FreebsdBackend
- Defined in:
- lib/vagrant-zones/qga/freebsd_backend.rb
Overview
Vanilla FreeBSD: write ifconfig_*, defaultrouter, hostname entries to /etc/rc.conf.local and restart netif + routing services.
Constant Summary collapse
- RC_CONF_LOCAL =
'/etc/rc.conf.local'- BEGIN_MARKER =
'# BEGIN vagrant-zones managed block'- END_MARKER =
'# END vagrant-zones managed block'
Instance Method Summary collapse
Methods inherited from BaseBackend
Instance Method Details
#apply(uii, qga, nics, _ctx) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/vagrant-zones/qga/freebsd_backend.rb', line 27 def apply(uii, qga, nics, _ctx) block = render_block(nics, qga) remove_existing_block(qga) append = qga.exec('/bin/sh', args: ['-c', "cat >> #{RC_CONF_LOCAL}"], input_data: block, timeout: 30) raise Errors::QGAError, message: "rc.conf.local append failed: #{append[:stderr]}" if append[:exitcode] != 0 uii.info("#{I18n.t('vagrant_zones.qga_backend_apply')} freebsd-rcconf") netif = qga.exec('/usr/sbin/service', args: %w[netif restart], timeout: 60) raise Errors::QGAError, message: "service netif restart failed: #{netif[:stderr]}" if netif[:exitcode] != 0 qga.exec('/usr/sbin/service', args: %w[routing restart], timeout: 30) end |
#cleanup(uii, qga, _nics) ⇒ Object
41 42 43 44 |
# File 'lib/vagrant-zones/qga/freebsd_backend.rb', line 41 def cleanup(uii, qga, _nics) remove_existing_block(qga) uii.info("#{I18n.t('vagrant_zones.qga_backend_cleanup')} freebsd-rcconf") end |
#detect?(qga) ⇒ Boolean
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/vagrant-zones/qga/freebsd_backend.rb', line 15 def detect?(qga) os = qga.osinfo return false unless os['id'].to_s.downcase == 'freebsd' # Pure FreeBSD only here; pfSense/OPNsense handled by their own backends. pfsense = qga.exec('/bin/sh', args: ['-c', 'grep -q pfSense /etc/version 2>/dev/null'], timeout: 10)[:exitcode].zero? opnsense = qga.exec('/usr/bin/test', args: ['-d', '/usr/local/opnsense/version'], timeout: 10)[:exitcode].zero? !(pfsense || opnsense) rescue StandardError false end |