def create_disk(self, datastore, disk_id, size): spec = self._create_spec(size) name = vmdk_path(datastore, disk_id) vmdk_mkdir(datastore, disk_id, self._logger) self._manage_disk(vim.VirtualDiskManager.CreateVirtualDisk_Task, name=name, spec=spec) self._manage_disk(vim.VirtualDiskManager.SetVirtualDiskUuid, name=name, uuid=uuid_to_vmdk_uuid(disk_id))
def create_disk(self, datastore, disk_id, size): spec = self._create_spec(size) name = vmdk_path(datastore, disk_id) self._vmdk_mkdir(datastore, disk_id) self._manage_disk(vim.VirtualDiskManager.CreateVirtualDisk_Task, name=name, spec=spec) self._manage_disk(vim.VirtualDiskManager.SetVirtualDiskUuid, name=name, uuid=uuid_to_vmdk_uuid(disk_id))
def test_vmdk_uuid_conversion(self): for id in [ "01234567-89ab-cedf-0123-456789abcdef", "01 23456 789ABCEDF0123456789ABCDEF", "01 23 45 67 89 ab ce df-01 23 45 67 89 ab cd ef", "0123456789abcedf0123456789abcdef", ]: vmdk_uuid = uuid_to_vmdk_uuid(id) assert_that(vmdk_uuid, equal_to("01 23 45 67 89 ab ce df-01 23 45 67 89 ab cd ef")) for id in ["", "01234567-89ab-cedf-0123-456789abcd", "01 23456 789abcedf0123456789abcdefabcd"]: self.assertRaises(ValueError, uuid_to_vmdk_uuid, id)
def test_vmdk_uuid_conversion(self): for id in ['01234567-89ab-cedf-0123-456789abcdef', '01 23456 789ABCEDF0123456789ABCDEF', '01 23 45 67 89 ab ce df-01 23 45 67 89 ab cd ef', '0123456789abcedf0123456789abcdef']: vmdk_uuid = uuid_to_vmdk_uuid(id) assert_that( vmdk_uuid, equal_to('01 23 45 67 89 ab ce df-01 23 45 67 89 ab cd ef')) for id in ['', '01234567-89ab-cedf-0123-456789abcd', '01 23456 789abcedf0123456789abcdefabcd']: self.assertRaises(ValueError, uuid_to_vmdk_uuid, id)
def test_create_empty_disk(self): vm_id = str(uuid.uuid4()) datastore = "ds1" spec = self._create_spec_for_disk_test(datastore, vm_id) size_mb = 100 disk_id = str(uuid.uuid4()) self.vm_config.create_empty_disk(spec, datastore, disk_id, size_mb) devs = [change.device for change in spec.deviceChange] device_type = vim.vm.device.VirtualDisk disks = self.vm_config.find_devices(devs, device_type) assert_that(len(disks), equal_to(1)) # verify that uuid to be set on disk to be added matches the # of the disk (modulo some formatting differences) assert_that(disks[0].backing.uuid, equal_to(uuid_to_vmdk_uuid(disk_id)))
def copy_disk(self, source_datastore, source_id, dest_datastore, dest_id): """Copy a virtual disk. This method is used to create a "full clone" of a vmdk. Underneath, this call boils down to doing a DiskLib_Clone() Command line equivalent: $ vmkfstools -i source dest """ source = vmdk_path(source_datastore, source_id, IMAGE_FOLDER_NAME_PREFIX) dest = vmdk_path(dest_datastore, dest_id) self._vmdk_mkdir(dest_datastore, dest_id) self._manage_disk(vim.VirtualDiskManager.CopyVirtualDisk_Task, sourceName=source, destName=dest) self._manage_disk(vim.VirtualDiskManager.SetVirtualDiskUuid, name=dest, uuid=uuid_to_vmdk_uuid(dest_id))
def copy_disk(self, source_datastore, source_id, dest_datastore, dest_id): """Copy a virtual disk. This method is used to create a "full clone" of a vmdk. Underneath, this call boils down to doing a DiskLib_Clone() Command line equivalent: $ vmkfstools -i source dest """ source = vmdk_path(source_datastore, source_id, IMAGE_FOLDER_NAME) dest = vmdk_path(dest_datastore, dest_id) vmdk_mkdir(dest_datastore, dest_id, self._logger) self._manage_disk(vim.VirtualDiskManager.CopyVirtualDisk_Task, sourceName=source, destName=dest) self._manage_disk(vim.VirtualDiskManager.SetVirtualDiskUuid, name=dest, uuid=uuid_to_vmdk_uuid(dest_id))
def set_disk_uuid(self, path, uuid): try: disk_mgr = self._content.virtualDiskManager disk_mgr.SetVirtualDiskUuid(name=os_to_datastore_path(path), uuid=uuid_to_vmdk_uuid(uuid)) except vim.fault.FileFault, e: raise DiskFileException(e.msg)