File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
src/pybind/mgr/snap_schedule/tests Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -31,4 +31,41 @@ def db():
3131 db .row_factory = sqlite3 .Row
3232 db .execute ("PRAGMA FOREIGN_KEYS = 1" )
3333 db .executescript (Schedule .CREATE_TABLES )
34+ _create_snap_schedule_kv_db (db )
35+ _upgrade_snap_schedule_db_schema (db )
3436 return db
37+
38+ def _create_snap_schedule_kv_db (db ):
39+ SQL = """
40+ CREATE TABLE IF NOT EXISTS SnapScheduleModuleKV (
41+ key TEXT PRIMARY KEY,
42+ value NOT NULL
43+ ) WITHOUT ROWID;
44+ INSERT OR IGNORE INTO SnapScheduleModuleKV (key, value) VALUES ('__snap_schedule_db_version', 1);
45+ """
46+ db .executescript (SQL )
47+
48+ def _get_snap_schedule_db_version (db ):
49+ SQL = """
50+ SELECT value
51+ FROM SnapScheduleModuleKV
52+ WHERE key = '__snap_schedule_db_version';
53+ """
54+ cur = db .execute (SQL )
55+ row = cur .fetchone ()
56+ assert row is not None
57+ return int (row [0 ])
58+
59+ # add all upgrades here
60+ def _upgrade_snap_schedule_db_schema (db ):
61+ # add a column to hold the subvolume group name
62+ if _get_snap_schedule_db_version (db ) < 2 :
63+ SQL = """
64+ ALTER TABLE schedules
65+ ADD COLUMN group_name TEXT;
66+ """
67+ db .executescript (SQL )
68+
69+ # bump up the snap-schedule db version to 2
70+ SQL = "UPDATE OR ROLLBACK SnapScheduleModuleKV SET value = ? WHERE key = '__snap_schedule_db_version';"
71+ db .execute (SQL , (2 ,))
You can’t perform that action at this time.
0 commit comments