Пример #1
0
    def volume_attached_here(self,
                             server,
                             serverpath,
                             sr_uuid,
                             vdi_uuid,
                             readonly=True):
        self.connect_volume(server, serverpath, sr_uuid, vdi_uuid)

        with self._session_factory.get_session() as session:
            vm_uuid = tools.get_this_vm_uuid()
            vm_ref = session.VM.get_by_uuid(vm_uuid)
            vdi_ref = session.VDI.get_by_uuid(vdi_uuid)
            vbd_ref = session.VBD.create(vm_ref,
                                         vdi_ref,
                                         userdevice='autodetect',
                                         bootable=False,
                                         mode='RO' if readonly else 'RW',
                                         type='disk',
                                         empty=False,
                                         other_config=dict())
            session.VBD.plug(vbd_ref)
            device = session.VBD.get_device(vbd_ref)
            try:
                yield "/dev/" + device
            finally:
                session.VBD.unplug(vbd_ref)
                session.VBD.destroy(vbd_ref)
                self.disconnect_volume(vdi_uuid)
 def test_create_vbd(self):
     session = self.session
     vm_uuid = tools.get_this_vm_uuid()
     vm_ref = session.VM.get_by_uuid(vm_uuid)
     with temporary_vdi(session) as vdi_ref:
         vbd_ref = session.VBD.create(vm_ref, vdi_ref,
             userdevice='autodetect', bootable=False, mode='RW',
             type='disk', empty=False, other_config=dict())
         session.VBD.destroy(vbd_ref)
 def detach_destroy_extra_disks(self):
     session = self.session
     vm_uuid = tools.get_this_vm_uuid()
     vm_ref = session.VM.get_by_uuid(vm_uuid)
     for vbd_ref in session.VM.get_vbds(vm_ref):
         if session.VBD.get_device(vbd_ref) == "xvda":
             continue
         vdi_ref = session.VBD.get_vdi(vbd_ref)
         session.VBD.unplug(vbd_ref)
         session.VBD.destroy(vbd_ref)
         session.VDI.destroy(vdi_ref)
    def test_attach_a_volume_here(self):
        vol = self.driver.create_volume(
            params.nfs_server, params.nfs_serverpath, 1)
        vm_uuid = tools.get_this_vm_uuid()
        vm_ref = self.session.VM.get_by_uuid(vm_uuid)

        originally_attached_vbds = self.session.VM.get_vbds(vm_ref)

        with self.driver.volume_attached_here(params.nfs_server, params.nfs_serverpath, **vol) as blockdev:
            self.assertTrue(os.path.exists(blockdev))
            attached_vbds = self.session.VM.get_vbds(vm_ref)
            self.assertEquals(len(originally_attached_vbds) + 1, len(attached_vbds))

        attached_vbds_after = self.session.VM.get_vbds(vm_ref)
        self.assertEquals(originally_attached_vbds, attached_vbds_after)
def temporary_vbd(session):
    vm_uuid = tools.get_this_vm_uuid()
    vm_ref = session.VM.get_by_uuid(vm_uuid)
    with temporary_vdi(session) as vdi_ref:
        vbd_ref = session.VBD.create(vm_ref, vdi_ref,
            userdevice='autodetect', bootable=False, mode='RO',
            type='disk', empty=False, other_config=dict())
        try:
            yield vbd_ref
        finally:
            try:
                session.VBD.unplug(vbd_ref)
            except:
                pass
            session.VBD.destroy(vbd_ref)
Пример #6
0
    def volume_attached_here(self, server, serverpath, sr_uuid, vdi_uuid,
                             readonly=True):
        self.connect_volume(server, serverpath, sr_uuid, vdi_uuid)

        with self._session_factory.get_session() as session:
            vm_uuid = tools.get_this_vm_uuid()
            vm_ref = session.VM.get_by_uuid(vm_uuid)
            vdi_ref = session.VDI.get_by_uuid(vdi_uuid)
            vbd_ref = session.VBD.create(
                vm_ref, vdi_ref, userdevice='autodetect', bootable=False,
                mode='RO' if readonly else 'RW', type='disk', empty=False,
                other_config=dict())
            session.VBD.plug(vbd_ref)
            device = session.VBD.get_device(vbd_ref)
            try:
                yield "/dev/" + device
            finally:
                session.VBD.unplug(vbd_ref)
                session.VBD.destroy(vbd_ref)
                self.disconnect_volume(vdi_uuid)
Пример #7
0
 def test_get_this_vm_uuid(self, mock_read_first_line):
     mock_read_first_line.return_value = 'someuuid'
     self.assertEquals('someuuid', tools.get_this_vm_uuid())
     mock_read_first_line.assert_called_once_with('/sys/hypervisor/uuid')
Пример #8
0
 def test_get_this_vm_uuid(self, mock_read_first_line):
     mock_read_first_line.return_value = 'someuuid'
     self.assertEquals('someuuid', tools.get_this_vm_uuid())
     mock_read_first_line.assert_called_once_with('/sys/hypervisor/uuid')
 def test_get_uuid(self):
     machine_uuid = tools.get_this_vm_uuid()
     self.assertTrue(bool(machine_uuid))