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.
38 lines
1.2 KiB
Ruby
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
|