Merge pull request #7290 from phyber/fix/master/prepare_nfs_settings_machine_ip_fix

prepare_nfs_settings: Try harder to get all machine IPs.
This commit is contained in:
Seth Vargo 2016-05-27 18:38:03 -04:00
commit 68329817ad
2 changed files with 30 additions and 1 deletions

View File

@ -37,7 +37,27 @@ module VagrantPlugins
# The ! indicates that this method modifies its argument. # The ! indicates that this method modifies its argument.
def add_ips_to_env!(env) def add_ips_to_env!(env)
adapter, host_ip = find_host_only_adapter adapter, host_ip = find_host_only_adapter
machine_ip = read_static_machine_ips || read_dynamic_machine_ip(adapter) machine_ip = read_static_machine_ips
if !machine_ip
# No static IP, attempt to use the dynamic IP.
machine_ip = read_dynamic_machine_ip(adapter)
else
# We have static IPs, also attempt to read any dynamic IPs.
# If there is no dynamic IP on the adapter, it doesn't matter. We
# already have a static IP.
begin
dynamic_ip = read_dynamic_machine_ip(adapter)
rescue Vagrant::Errors::NFSNoGuestIP
dynamic_ip = nil
end
# If we found a dynamic IP and we didn't include it in the
# machine_ip array yet, do so.
if dynamic_ip && !machine_ip.include?(dynamic_ip)
machine_ip.push(dynamic_ip)
end
end
raise Vagrant::Errors::NFSNoHostonlyNetwork if !host_ip || !machine_ip raise Vagrant::Errors::NFSNoHostonlyNetwork if !host_ip || !machine_ip

View File

@ -116,5 +116,14 @@ describe VagrantPlugins::ProviderVirtualBox::Action::PrepareNFSSettings do
expect(env[:nfs_host_ip]).to eq("1.2.3.4") expect(env[:nfs_host_ip]).to eq("1.2.3.4")
expect(env[:nfs_machine_ip]).to eq(["11.12.13.14"]) expect(env[:nfs_machine_ip]).to eq(["11.12.13.14"])
end end
it "allows statically configured guest IPs to co-exist with dynamic host only IPs for NFS" do
env[:machine].config.vm.network :private_network, ip: "11.12.13.14"
subject.call(env)
expect(env[:nfs_host_ip]).to eq("1.2.3.4")
expect(env[:nfs_machine_ip]).to eq(["11.12.13.14", "2.3.4.5"])
end
end end
end end