Remove WrongAssignment exception

Signed-off-by: Bahtiar `kalkin-` Gadimov <bahtiar@gadimov.de>
This commit is contained in:
Bahtiar `kalkin-` Gadimov 2017-04-15 16:44:42 +02:00
parent e446e7a2f4
commit 5a8cc9bdd3
No known key found for this signature in database
GPG Key ID: 07799AE179ED4FD4
2 changed files with 8 additions and 12 deletions

View File

@ -55,10 +55,6 @@ class DeviceAlreadyAttached(qubes.exc.QubesException, KeyError):
'''Trying to attach already attached device''' '''Trying to attach already attached device'''
pass pass
class WrongAssignment(qubes.exc.QubesException, KeyError):
'''Trying to attach non permanent assignment to a halted vm'''
pass
class DeviceAssignment(object): # pylint: disable=too-few-public-methods class DeviceAssignment(object): # pylint: disable=too-few-public-methods
''' Maps a device to a frontend_domain. ''' ''' Maps a device to a frontend_domain. '''
@ -155,13 +151,13 @@ class DeviceCollection(object):
if not device_assignment.frontend_domain: if not device_assignment.frontend_domain:
device_assignment.frontend_domain = self._vm device_assignment.frontend_domain = self._vm
else:
assert device_assignment.frontend_domain == self._vm, \
"Trying to attach DeviceAssignment belonging to other domain"
if device_assignment.frontend_domain != self._vm:
raise WrongAssignment(
"Trying to attach DeviceAssignment belonging to other domain")
if not device_assignment.persistent and self._vm.is_halted(): if not device_assignment.persistent and self._vm.is_halted():
raise WrongAssignment("Devices can only be attached persistent to " raise qubes.exc.QubesVMNotRunningError(self._vm,
"a halted vm") "Devices can only be attached non-persistent to a running vm")
device = self._device(device_assignment) device = self._device(device_assignment)
if device in self.assignments(): if device in self.assignments():
raise DeviceAlreadyAttached( raise DeviceAlreadyAttached(
@ -182,7 +178,7 @@ class DeviceCollection(object):
device_assignment.frontend_domain = self._vm device_assignment.frontend_domain = self._vm
if device_assignment in self._set and not self._vm.is_halted(): if device_assignment in self._set and not self._vm.is_halted():
raise WrongAssignment( raise qubes.exc.QubesVMNotHaltedError(self._vm,
"Can not remove a persistent attachment from a non halted vm") "Can not remove a persistent attachment from a non halted vm")
if device_assignment not in self.assignments(): if device_assignment not in self.assignments():
raise DeviceNotAttached( raise DeviceNotAttached(

View File

@ -101,7 +101,7 @@ class TC_00_Devices_PCI(qubes.tests.SystemTestsMixin,
dev_col = self.vm.devices['pci'] dev_col = self.vm.devices['pci']
self.assertDeviceNotInCollection(self.dev, dev_col) self.assertDeviceNotInCollection(self.dev, dev_col)
self.assignment.persistent = False self.assignment.persistent = False
with self.assertRaises(qubes.devices.WrongAssignment): with self.assertRaises(qubes.exc.QubesVMNotRunningError):
dev_col.attach(self.assignment) dev_col.attach(self.assignment)
@ -130,7 +130,7 @@ class TC_00_Devices_PCI(qubes.tests.SystemTestsMixin,
dev_col.attach(self.assignment) dev_col.attach(self.assignment)
self.app.save() self.app.save()
self.vm.start() self.vm.start()
with self.assertRaises(qubes.devices.WrongAssignment): with self.assertRaises(qubes.exc.QubesVMNotHaltedError):
self.vm.devices['pci'].detach(self.assignment) self.vm.devices['pci'].detach(self.assignment)
def test_030_persist_attach_detach_offline(self): def test_030_persist_attach_detach_offline(self):