diff --git a/plugins/providers/virtualbox/cap/configure_disks.rb b/plugins/providers/virtualbox/cap/configure_disks.rb index 42e66f6eb..228153120 100644 --- a/plugins/providers/virtualbox/cap/configure_disks.rb +++ b/plugins/providers/virtualbox/cap/configure_disks.rb @@ -170,25 +170,22 @@ module VagrantPlugins def self.vmdk_to_vdi(driver, defined_disk) LOGGER.warn("Converting disk '#{defined_disk["Disk Name"]}' from 'vmdk' to 'vdi' format") - # todo: MEDIUM changes if virtualbox is older than 5. Need a proper check/switch - # Maybe move this into version_4, then version_5 - # if version 4, medium = "hd" - medium = "medium" - source = defined_disk["Location"] destination = File.join(File.dirname(source), File.basename(source, ".*")) + ".vdi" - driver.execute("clone#{medium}", source, destination, '--format', 'VDI') + + driver.clone_disk(source, destination, 'VDI') destination end def self.vdi_to_vmdk(driver, defined_disk) LOGGER.warn("Converting disk from vdi to vmdk format") - medium = "medium" - source = defined_disk["Location"] destination = File.join(File.dirname(source), File.basename(source, ".*")) + ".vmdk" - driver.execute("clone#{medium}", source, destination, '--format', 'VMDK') + + driver.clone_disk(source, destination, 'VMDK') + + destination end end end diff --git a/plugins/providers/virtualbox/driver/base.rb b/plugins/providers/virtualbox/driver/base.rb index f11a78124..1a230018a 100644 --- a/plugins/providers/virtualbox/driver/base.rb +++ b/plugins/providers/virtualbox/driver/base.rb @@ -433,7 +433,16 @@ module VagrantPlugins execute("createmedium", '--filename', disk_file, '--sizebyte', disk_size.to_i.to_s, '--format', disk_format) end - def clone_disk(disk_file, disk_format="VDI") + # @param [String] source + # @param [String] destination + # @param [String] disk_format + def clone_disk(source, destination, disk_format) + # todo: MEDIUM changes if virtualbox is older than 5. Need a proper check/switch + # Maybe move this into version_4, then version_5 + # if version 4, medium = "hd" + medium = "medium" + + execute("clone#{medium}", source, destination, '--format', disk_format) end # Controller-Port-Device looks like: