Sha256: 603d6c8d6d39aa9886c1cffa7f9e82d83f5044de8c9bb2bd2d61264d00a37841

Contents?: true

Size: 796 Bytes

Versions: 3

Compression:

Stored size: 796 Bytes

Contents

# Base class for retrieving network facts from guest VMs
#
# @since 2.8.0
class VagrantHosts::Cap::Facts::Base

  # Retrieve facts from a guest VM
  #
  # See {#load_facts} for implementation details.
  #
  # @return [Hash] A hash of facts.
  def self.network_facts(machine)
    new(machine).load_facts
  end

  attr_reader :machine

  def initialize(machine)
    @machine = machine
  end

  def load_facts
    raise NotImplementedError
  end

  private

  # TODO: Split this out into a shared module.
  def sudo(cmd)
    stdout = ''
    stderr = ''

    retval = machine.communicate.sudo(cmd) do |type, data|
      if type == :stderr
        stderr << data.chomp
      else
        stdout << data.chomp
      end
    end

    {:stdout => stdout, :stderr => stderr, :retval => retval}
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vagrant-hosts-2.8.2 lib/vagrant-hosts/cap/facts/base.rb
vagrant-hosts-2.8.1 lib/vagrant-hosts/cap/facts/base.rb
vagrant-hosts-2.8.0 lib/vagrant-hosts/cap/facts/base.rb