def test_lvmsnap_shot_device_init(self): pv = StorageDevice("pv1", fmt=blivet.formats.get_format("lvmpv"), size=Size("1 GiB")) vg = LVMVolumeGroupDevice("testvg", parents=[pv]) lv = LVMLogicalVolumeDevice("testlv", parents=[vg], fmt=blivet.formats.get_format("xfs")) with self.assertRaisesRegex(ValueError, "lvm snapshot origin must be a logical volume"): LVMLogicalVolumeDevice("snap1", parents=[vg], origin=pv) with self.assertRaisesRegex(ValueError, "only existing vorigin snapshots are supported"): LVMLogicalVolumeDevice("snap1", parents=[vg], vorigin=True) lv.exists = True snap1 = LVMLogicalVolumeDevice("snap1", parents=[vg], origin=lv) self.assertEqual(snap1.format.type, lv.format.type) lv.format = blivet.formats.get_format("DM_snapshot_cow", exists=True) self.assertEqual(snap1.format.type, lv.format.type) self.assertEqual(snap1.isleaf, True) self.assertEqual(snap1.direct, True) self.assertEqual(lv.isleaf, False) self.assertEqual(lv.direct, True) self.assertEqual(snap1.depends_on(lv), True) self.assertEqual(lv.depends_on(snap1), False)
def test_lvmsnap_shot_device_init(self): pv = StorageDevice("pv1", fmt=blivet.formats.get_format("lvmpv"), size=Size("1 GiB")) vg = LVMVolumeGroupDevice("testvg", parents=[pv]) lv = LVMLogicalVolumeDevice("testlv", parents=[vg], fmt=blivet.formats.get_format("xfs")) with self.assertRaisesRegex( ValueError, "lvm snapshot origin volume must already exist"): LVMLogicalVolumeDevice("snap1", parents=[vg], origin=lv) with self.assertRaisesRegex( ValueError, "lvm snapshot origin must be a logical volume"): LVMLogicalVolumeDevice("snap1", parents=[vg], origin=pv) with self.assertRaisesRegex( ValueError, "only existing vorigin snapshots are supported"): LVMLogicalVolumeDevice("snap1", parents=[vg], vorigin=True) lv.exists = True snap1 = LVMLogicalVolumeDevice("snap1", parents=[vg], origin=lv) self.assertEqual(snap1.format.type, lv.format.type) lv.format = blivet.formats.get_format("DM_snapshot_cow", exists=True) self.assertEqual(snap1.format.type, lv.format.type) self.assertEqual(snap1.isleaf, True) self.assertEqual(snap1.direct, True) self.assertEqual(lv.isleaf, False) self.assertEqual(lv.direct, True) self.assertEqual(snap1.depends_on(lv), True) self.assertEqual(lv.depends_on(snap1), False)
def test_lvmthin_snap_shot_device_init(self): pv = StorageDevice("pv1", fmt=blivet.formats.get_format("lvmpv"), size=Size("1 GiB")) vg = LVMVolumeGroupDevice("testvg", parents=[pv]) pool = LVMLogicalVolumeDevice("pool1", parents=[vg], size=Size("500 MiB"), seg_type="thin-pool") thinlv = LVMLogicalVolumeDevice("thinlv", parents=[pool], size=Size("200 MiB"), seg_type="thin") with self.assertRaisesRegex(ValueError, "lvm snapshot origin volume must already exist"): LVMLogicalVolumeDevice("snap1", parents=[pool], origin=thinlv, seg_type="thin") with self.assertRaisesRegex(ValueError, "lvm snapshot origin must be a logical volume"): LVMLogicalVolumeDevice("snap1", parents=[pool], origin=pv, seg_type="thin") # now make the constructor succeed so we can test some properties thinlv.exists = True snap1 = LVMLogicalVolumeDevice("snap1", parents=[pool], origin=thinlv, seg_type="thin") self.assertEqual(snap1.isleaf, True) self.assertEqual(snap1.direct, True) self.assertEqual(thinlv.isleaf, True) self.assertEqual(thinlv.direct, True) self.assertEqual(snap1.depends_on(thinlv), True) self.assertEqual(thinlv.depends_on(snap1), False) # existing thin snapshots do not depend on their origin snap1.exists = True self.assertEqual(snap1.depends_on(thinlv), False)
def test_lvmthin_snap_shot_device_init(self): pv = StorageDevice("pv1", fmt=blivet.formats.get_format("lvmpv"), size=Size("1 GiB")) vg = LVMVolumeGroupDevice("testvg", parents=[pv]) pool = LVMLogicalVolumeDevice("pool1", parents=[vg], size=Size("500 MiB"), seg_type="thin-pool") thinlv = LVMLogicalVolumeDevice("thinlv", parents=[pool], size=Size("200 MiB"), seg_type="thin") with self.assertRaisesRegex( ValueError, "lvm snapshot origin volume must already exist"): LVMLogicalVolumeDevice("snap1", parents=[pool], origin=thinlv, seg_type="thin") with self.assertRaisesRegex( ValueError, "lvm snapshot origin must be a logical volume"): LVMLogicalVolumeDevice("snap1", parents=[pool], origin=pv, seg_type="thin") # now make the constructor succeed so we can test some properties thinlv.exists = True snap1 = LVMLogicalVolumeDevice("snap1", parents=[pool], origin=thinlv, seg_type="thin") self.assertEqual(snap1.isleaf, True) self.assertEqual(snap1.direct, True) self.assertEqual(thinlv.isleaf, True) self.assertEqual(thinlv.direct, True) self.assertEqual(snap1.depends_on(thinlv), True) self.assertEqual(thinlv.depends_on(snap1), False) # existing thin snapshots do not depend on their origin snap1.exists = True self.assertEqual(snap1.depends_on(thinlv), False)