Add clone_disk method to virtualbox driver

This commit is contained in:
Brian Cain 2019-12-13 15:27:18 -08:00
parent d1ccb6536f
commit 0dfde12e9a
No known key found for this signature in database
GPG Key ID: 9FC4639B2E4510A0
2 changed files with 16 additions and 10 deletions

View File

@ -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

View File

@ -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: