tests: ThinVolume.revert()
This commit is contained in:
parent
8cf9264283
commit
aea0de35ad
@ -24,7 +24,6 @@
|
|||||||
'volume_group/thin_pool' combination. Pool variables without a prefix
|
'volume_group/thin_pool' combination. Pool variables without a prefix
|
||||||
represent a :py:class:`qubes.storage.lvm.ThinPool`.
|
represent a :py:class:`qubes.storage.lvm.ThinPool`.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import tempfile
|
import tempfile
|
||||||
@ -580,6 +579,76 @@ class TC_00_ThinPool(ThinPoolBase):
|
|||||||
|
|
||||||
volume.remove()
|
volume.remove()
|
||||||
|
|
||||||
|
def test_020_revert_last(self):
|
||||||
|
''' Test volume revert'''
|
||||||
|
config = {
|
||||||
|
'name': 'root',
|
||||||
|
'pool': self.pool.name,
|
||||||
|
'save_on_stop': True,
|
||||||
|
'rw': True,
|
||||||
|
'revisions_to_keep': 2,
|
||||||
|
'size': qubes.config.defaults['root_img_size'],
|
||||||
|
}
|
||||||
|
vm = qubes.tests.storage.TestVM(self)
|
||||||
|
volume = self.app.get_pool(self.pool.name).init_volume(vm, config)
|
||||||
|
volume.create()
|
||||||
|
volume.start()
|
||||||
|
volume.stop()
|
||||||
|
volume.start()
|
||||||
|
volume.stop()
|
||||||
|
self.assertEqual(len(volume.revisions), 2)
|
||||||
|
revisions = volume.revisions
|
||||||
|
revision_id = max(revisions.keys())
|
||||||
|
current_path = volume.path
|
||||||
|
current_uuid = self._get_lv_uuid(volume.path)
|
||||||
|
rev_uuid = self._get_lv_uuid(volume.vid + '-' + revision_id)
|
||||||
|
self.assertFalse(volume.is_dirty())
|
||||||
|
self.assertNotEqual(current_uuid, rev_uuid)
|
||||||
|
volume.revert()
|
||||||
|
path_snap = '/dev/' + volume._vid_snap
|
||||||
|
self.assertFalse(os.path.exists(path_snap), path_snap)
|
||||||
|
self.assertEqual(current_path, volume.path)
|
||||||
|
new_uuid = self._get_lv_origin_uuid(volume.path)
|
||||||
|
self.assertEqual(new_uuid, rev_uuid)
|
||||||
|
self.assertEqual(volume.revisions, revisions)
|
||||||
|
|
||||||
|
volume.remove()
|
||||||
|
|
||||||
|
def test_021_revert_earlier(self):
|
||||||
|
''' Test volume revert'''
|
||||||
|
config = {
|
||||||
|
'name': 'root',
|
||||||
|
'pool': self.pool.name,
|
||||||
|
'save_on_stop': True,
|
||||||
|
'rw': True,
|
||||||
|
'revisions_to_keep': 2,
|
||||||
|
'size': qubes.config.defaults['root_img_size'],
|
||||||
|
}
|
||||||
|
vm = qubes.tests.storage.TestVM(self)
|
||||||
|
volume = self.app.get_pool(self.pool.name).init_volume(vm, config)
|
||||||
|
volume.create()
|
||||||
|
volume.start()
|
||||||
|
volume.stop()
|
||||||
|
volume.start()
|
||||||
|
volume.stop()
|
||||||
|
self.assertEqual(len(volume.revisions), 2)
|
||||||
|
revisions = volume.revisions
|
||||||
|
revision_id = min(revisions.keys())
|
||||||
|
current_path = volume.path
|
||||||
|
current_uuid = self._get_lv_uuid(volume.path)
|
||||||
|
rev_uuid = self._get_lv_uuid(volume.vid + '-' + revision_id)
|
||||||
|
self.assertFalse(volume.is_dirty())
|
||||||
|
self.assertNotEqual(current_uuid, rev_uuid)
|
||||||
|
volume.revert(revision_id)
|
||||||
|
path_snap = '/dev/' + volume._vid_snap
|
||||||
|
self.assertFalse(os.path.exists(path_snap), path_snap)
|
||||||
|
self.assertEqual(current_path, volume.path)
|
||||||
|
new_uuid = self._get_lv_origin_uuid(volume.path)
|
||||||
|
self.assertEqual(new_uuid, rev_uuid)
|
||||||
|
self.assertEqual(volume.revisions, revisions)
|
||||||
|
|
||||||
|
volume.remove()
|
||||||
|
|
||||||
|
|
||||||
@skipUnlessLvmPoolExists
|
@skipUnlessLvmPoolExists
|
||||||
class TC_01_ThinPool(ThinPoolBase, qubes.tests.SystemTestCase):
|
class TC_01_ThinPool(ThinPoolBase, qubes.tests.SystemTestCase):
|
||||||
|
Loading…
Reference in New Issue
Block a user