def test_get_snapshots_by_volume(self): snaps = self.create_snapshots() vol = snaps[0].volume expected_snaps = [snaps[0], cinderlib.Snapshot(vol)] self.persistence.set_snapshot(expected_snaps[1]) res = self.persistence.get_snapshots(volume_id=vol.id) self.assertListEqualObj(self.sorted(expected_snaps), self.sorted(res))
def test_get_snapshots_by_name_multiple(self): snap_name = 'snap' vol = self.create_volumes([{'size': 1}])[0] snaps = [cinderlib.Snapshot(vol, name=snap_name) for i in range(2)] [self.persistence.set_snapshot(snap) for snap in snaps] res = self.persistence.get_snapshots(snapshot_name=snap_name) self.assertListEqualObj(self.sorted(snaps), self.sorted(res))
def test_set_snapshot(self): vol = cinderlib.Volume(self.backend, size=1, name='disk') snap = cinderlib.Snapshot(vol, name='disk') self.assertEqual(0, len(sqla_api.snapshot_get_all(self.context))) self.persistence.set_snapshot(snap) db_entries = sqla_api.snapshot_get_all(self.context) self.assertEqual(1, len(db_entries)) ovo_snap = cinder_ovos.Snapshot(self.context) ovo_snap._from_db_object(ovo_snap._context, ovo_snap, db_entries[0]) cl_snap = cinderlib.Snapshot(vol, __ovo=ovo_snap) self.assertEqualObj(snap, cl_snap)
def test_get_changed_fields_snapshot(self): vol = cinderlib.Volume(self.backend, size=1, extra_specs={'k': 'v'}) snap = cinderlib.Snapshot(vol) self.persistence.set_snapshot(snap) snap._ovo.display_name = "abcde" result = self.persistence.get_changed_fields(snap) self.assertEqual(result, {'display_name': snap._ovo.display_name})
def create_snapshots(self): vols = self.create_n_volumes(2) snaps = [] for i, vol in enumerate(vols): snap = cinderlib.Snapshot(vol, name='snaps%s' % (i + i)) snaps.append(snap) self.persistence.set_snapshot(snap) return self.sorted(snaps)
def test_set_snapshot(self): vol = cinderlib.Volume(self.backend, size=1, name='disk') snap = cinderlib.Snapshot(vol, name='disk') self.assertDictEqual({}, self.persistence.snapshots) self.persistence.set_snapshot(snap) self.assertDictEqual({snap.id: snap}, self.persistence.snapshots)
def test_delete_snapshot_not_found(self): snaps = self.create_snapshots() fake_snap = cinderlib.Snapshot(snaps[0].volume) self.persistence.delete_snapshot(fake_snap) res = self.persistence.get_snapshots() self.assertListEqualObj(snaps, self.sorted(res))