Return better error messages from file pool

A `qubes.storage.StoragePoolException` will be returned as a useful
error from `qvm-backup`.
This commit is contained in:
Demi Marie Obenour 2020-11-26 11:17:33 -05:00
parent 7275939000
commit 09785449ed
No known key found for this signature in database
GPG Key ID: 28A45C93B0B5B6E0

View File

@ -271,9 +271,9 @@ class FileVolume(qubes.storage.Volume):
if self._export_lock is not None: if self._export_lock is not None:
assert self._export_lock is FileVolume._marker_running, \ assert self._export_lock is FileVolume._marker_running, \
'nested calls to export()' 'nested calls to export()'
self._not_implemented('exporting a starting volume') raise qubes.storage.StoragePoolException('file pool cannot export running volumes')
if self.is_dirty(): if self.is_dirty():
self._not_implemented('exporting a dirty volume') raise qubes.storage.StoragePoolException('file pool cannot export dirty volumes')
self._export_lock = FileVolume._marker_exported self._export_lock = FileVolume._marker_exported
return self.path return self.path
@ -327,7 +327,7 @@ class FileVolume(qubes.storage.Volume):
if self._export_lock is not None: if self._export_lock is not None:
assert self._export_lock is FileVolume._marker_exported, \ assert self._export_lock is FileVolume._marker_exported, \
'nested calls to start()' 'nested calls to start()'
self._not_implemented('starting a VM with an exported volume') raise qubes.storage.StoragePoolException('file pool cannot start a VM with an exported volume')
self._export_lock = FileVolume._marker_running self._export_lock = FileVolume._marker_running
if not self.save_on_stop and not self.snap_on_start: if not self.save_on_stop and not self.snap_on_start:
self.reset() self.reset()