Brian Cain 75d4aa42a1
Ensure non-existent machines do not attempt to list snapshots
Prior to this commit, if a snapshot restore was run on an entire
environment with some non-existent guests, Vagrant would attempt to list
their snapshots with a nil id. This commit fixes that by returning an
empty list of snapshots if the machine has not been created yet.
2019-04-09 13:11:19 -07:00

38 lines
1.2 KiB
Ruby

module VagrantPlugins
module ProviderVirtualBox
module Cap
# Reads the forwarded ports that currently exist on the machine
# itself. This raises an exception if the machine isn't running.
#
# This also may not match up with configured forwarded ports, because
# Vagrant auto port collision fixing may have taken place.
#
# @return [Hash<Integer, Integer>] Host => Guest port mappings.
def self.forwarded_ports(machine)
return nil if machine.state.id != :running
{}.tap do |result|
machine.provider.driver.read_forwarded_ports.each do |_, _, h, g|
result[h] = g
end
end
end
# Reads the network interface card MAC addresses and returns them.
#
# @return [Hash<String, String>] Adapter => MAC address
def self.nic_mac_addresses(machine)
machine.provider.driver.read_mac_addresses
end
# Returns a list of the snapshots that are taken on this machine.
#
# @return [Array<String>] Snapshot Name
def self.snapshot_list(machine)
return [] if machine.id.nil?
machine.provider.driver.list_snapshots(machine.id)
end
end
end
end