Exemple #1
0
 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,
     )
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
    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
Exemple #5
0
 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)
Exemple #6
0
    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
Exemple #7
0
    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
Exemple #8
0
    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