def test_spawn_attach_volume_vmdk(self): self._create_instance_in_the_db() self.type_data = db.flavor_get_by_name(None, "m1.large") self.mox.StubOutWithMock(block_device, "volume_in_mapping") self.mox.StubOutWithMock(v_driver, "block_device_info_get_mapping") ebs_root = "fake_root" block_device.volume_in_mapping(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(ebs_root) connection_info = self._test_vmdk_connection_info("vmdk") root_disk = [{"connection_info": connection_info}] v_driver.block_device_info_get_mapping(mox.IgnoreArg()).AndReturn(root_disk) mount_point = "/dev/vdc" self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, "_get_volume_uuid") volumeops.VMwareVolumeOps._get_volume_uuid(mox.IgnoreArg(), "volume-fake-id").AndReturn("fake_disk_uuid") self.mox.StubOutWithMock(vm_util, "get_vmdk_backed_disk_device") vm_util.get_vmdk_backed_disk_device(mox.IgnoreArg(), "fake_disk_uuid").AndReturn("fake_device") self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, "_consolidate_vmdk_volume") volumeops.VMwareVolumeOps._consolidate_vmdk_volume( self.instance, mox.IgnoreArg(), "fake_device", mox.IgnoreArg() ) self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, "attach_volume") volumeops.VMwareVolumeOps.attach_volume(connection_info, self.instance, mox.IgnoreArg()) self.mox.ReplayAll() self.conn.spawn( self.context, self.instance, self.image, injected_files=[], admin_password=None, network_info=self.network_info, block_device_info=None, )
def test_spawn_attach_volume_vmdk(self): self._create_instance_in_the_db() self.type_data = db.flavor_get_by_name(None, 'm1.large') self.mox.StubOutWithMock(block_device, 'volume_in_mapping') self.mox.StubOutWithMock(v_driver, 'block_device_info_get_mapping') ebs_root = 'fake_root' block_device.volume_in_mapping(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(ebs_root) connection_info = self._test_vmdk_connection_info('vmdk') root_disk = [{'connection_info': connection_info}] v_driver.block_device_info_get_mapping( mox.IgnoreArg()).AndReturn(root_disk) mount_point = '/dev/vdc' self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, '_get_volume_uuid') volumeops.VMwareVolumeOps._get_volume_uuid(mox.IgnoreArg(), 'volume-fake-id').AndReturn('fake_disk_uuid') self.mox.StubOutWithMock(vm_util, 'get_vmdk_backed_disk_device') vm_util.get_vmdk_backed_disk_device(mox.IgnoreArg(), 'fake_disk_uuid').AndReturn('fake_device') self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, '_consolidate_vmdk_volume') volumeops.VMwareVolumeOps._consolidate_vmdk_volume(self.instance, mox.IgnoreArg(), 'fake_device', mox.IgnoreArg()) self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, 'attach_volume') volumeops.VMwareVolumeOps.attach_volume(connection_info, self.instance, mox.IgnoreArg()) self.mox.ReplayAll() self.conn.spawn(self.context, self.instance, self.image, injected_files=[], admin_password=None, network_info=self.network_info, block_device_info=None)
def test_detach_vmdk_disk_from_vm(self): self._create_vm() connection_info = self._test_vmdk_connection_info("vmdk") mount_point = "/dev/vdc" self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, "_get_volume_uuid") volumeops.VMwareVolumeOps._get_volume_uuid(mox.IgnoreArg(), "volume-fake-id").AndReturn("fake_disk_uuid") self.mox.StubOutWithMock(vm_util, "get_vmdk_backed_disk_device") vm_util.get_vmdk_backed_disk_device(mox.IgnoreArg(), "fake_disk_uuid").AndReturn("fake_device") self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, "_consolidate_vmdk_volume") volumeops.VMwareVolumeOps._consolidate_vmdk_volume( self.instance, mox.IgnoreArg(), "fake_device", mox.IgnoreArg() ) self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, "detach_disk_from_vm") volumeops.VMwareVolumeOps.detach_disk_from_vm(mox.IgnoreArg(), self.instance, mox.IgnoreArg()) self.mox.ReplayAll() self.conn.detach_volume(connection_info, self.instance, mount_point)
def _get_vmdk_backed_disk_device(self, vm_ref, connection_info_data): # Get the vmdk file name that the VM is pointing to hardware_devices = self._session._call_method(vutil, "get_object_property", vm_ref, "config.hardware.device") # Get disk uuid disk_uuid = self._get_volume_uuid(vm_ref, connection_info_data["volume_id"]) device = vm_util.get_vmdk_backed_disk_device(hardware_devices, disk_uuid) if not device: raise exception.DiskNotFound(message=_("Unable to find volume")) return device
def test_detach_vmdk_disk_from_vm(self): self._create_vm() connection_info = self._test_vmdk_connection_info('vmdk') mount_point = '/dev/vdc' self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, '_get_volume_uuid') volumeops.VMwareVolumeOps._get_volume_uuid(mox.IgnoreArg(), 'volume-fake-id').AndReturn('fake_disk_uuid') self.mox.StubOutWithMock(vm_util, 'get_vmdk_backed_disk_device') vm_util.get_vmdk_backed_disk_device(mox.IgnoreArg(), 'fake_disk_uuid').AndReturn('fake_device') self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, '_consolidate_vmdk_volume') volumeops.VMwareVolumeOps._consolidate_vmdk_volume(self.instance, mox.IgnoreArg(), 'fake_device', mox.IgnoreArg()) self.mox.StubOutWithMock(volumeops.VMwareVolumeOps, 'detach_disk_from_vm') volumeops.VMwareVolumeOps.detach_disk_from_vm(mox.IgnoreArg(), self.instance, mox.IgnoreArg()) self.mox.ReplayAll() self.conn.detach_volume(connection_info, self.instance, mount_point)
def _get_vmdk_backed_disk_device(self, vm_ref, connection_info_data): # Get the vmdk file name that the VM is pointing to hardware_devices = self._session._call_method( vim_util, "get_dynamic_property", vm_ref, "VirtualMachine", "config.hardware.device" ) # Get disk uuid disk_uuid = self._get_volume_uuid(vm_ref, connection_info_data["volume_id"]) device = vm_util.get_vmdk_backed_disk_device(hardware_devices, disk_uuid) if not device: raise exception.StorageError(reason=_("Unable to find volume")) return device
def _get_vmdk_backed_disk_device(self, vm_ref, connection_info_data): # Get the vmdk file name that the VM is pointing to hardware_devices = self._session._call_method( vim_util, "get_dynamic_property", vm_ref, "VirtualMachine", "config.hardware.device") # Get disk uuid disk_uuid = self._get_volume_uuid(vm_ref, connection_info_data['volume_id']) device = vm_util.get_vmdk_backed_disk_device(hardware_devices, disk_uuid) if not device: raise volume_util.StorageError(_("Unable to find volume")) return device
def _get_vmdk_backed_disk_device(self, vm_ref, connection_info_data): # Get the vmdk file name that the VM is pointing to hardware_devices = self._session._call_method(vutil, "get_object_property", vm_ref, "config.hardware.device") # Get disk uuid disk_uuid = self._get_volume_uuid(vm_ref, connection_info_data['volume_id']) device = vm_util.get_vmdk_backed_disk_device(hardware_devices, disk_uuid) if not device: raise exception.DiskNotFound(message=_("Unable to find volume")) return device