plugins/providers/virtualbox/driver/version_4_1.rb in vagrant-unbundled-1.9.8.1 vs plugins/providers/virtualbox/driver/version_4_1.rb in vagrant-unbundled-2.0.0.1
- old
+ new
@@ -174,15 +174,22 @@
end
end
execute("list", "vms").split("\n").each do |line|
if vm = line[/^".+?"\s+\{(.+?)\}$/, 1]
- info = execute("showvminfo", vm, "--machinereadable", retryable: true)
- info.split("\n").each do |line|
- if adapter = line[/^hostonlyadapter\d+="(.+?)"$/, 1]
- networks.delete(adapter)
+ begin
+ info = execute("showvminfo", vm, "--machinereadable", retryable: true)
+ info.split("\n").each do |line|
+ if adapter = line[/^hostonlyadapter\d+="(.+?)"$/, 1]
+ networks.delete(adapter)
+ end
end
+ rescue Vagrant::Errors::VBoxManageError => e
+ raise if !e.extra_data[:stderr].include?("VBOX_E_OBJECT_NOT_FOUND")
+
+ # VirtualBox could not find the vm. It may have been deleted
+ # by another process after we called 'vboxmanage list vms'? Ignore this error.
end
end
end
networks.each do |name|
@@ -523,11 +530,18 @@
execute("list", "vms", retryable: true).split("\n").each do |line|
if uuid = line[/^".+?" \{(.+?)\}$/, 1]
# Ignore our own used ports
next if uuid == @uuid
- read_forwarded_ports(uuid, true).each do |_, _, hostport, _|
- ports << hostport
+ begin
+ read_forwarded_ports(uuid, true).each do |_, _, hostport, _|
+ ports << hostport
+ end
+ rescue Vagrant::Errors::VBoxManageError => e
+ raise if !e.extra_data[:stderr].include?("VBOX_E_OBJECT_NOT_FOUND")
+
+ # VirtualBox could not find the vm. It may have been deleted
+ # by another process after we called 'vboxmanage list vms'? Ignore this error.
end
end
end
ports