def _allow_minute_granularity_snapshots(self):
self.config_set('mgr', 'mgr/snap_schedule/allow_m_granularity', True)
+ def _dump_on_update(self):
+ self.config_set('mgr', 'mgr/snap_schedule/dump_on_update', True)
+
def setUp(self):
super(TestSnapSchedules, self).setUp()
self.volname = None
self.snapshots = set()
self._enable_snap_schedule()
self._allow_minute_granularity_snapshots()
+ self._dump_on_update()
def tearDown(self):
if self.vol_created:
def allow_minute_snaps(self) -> None:
return self.mgr.get_module_option('allow_m_granularity')
+ @property
+ def dump_on_update(self) -> None:
+ return self.mgr.get_module_option('dump_on_update')
+
def get_schedule_db(self, fs: str) -> sqlite3.Connection:
if fs not in self.sqlite_connections:
poolid = self.get_metadata_pool(fs)
db = self.get_schedule_db(fs)
rows = []
with db:
+ if self.dump_on_update:
+ dump = [line for line in db.iterdump()]
+ dump = "\n".join(dump)
+ log.debug(f"db dump:\n{dump}")
cur = db.execute(Schedule.EXEC_QUERY, (path,))
all_rows = cur.fetchall()
rows = [r for r in all_rows
desc='allow minute scheduled snapshots',
runtime=True,
),
+ Option(
+ 'dump_on_update',
+ type='bool',
+ default=False,
+ desc='dump database to debug log on update',
+ runtime=True,
+ ),
+
]
def __init__(self, *args: Any, **kwargs: Any) -> None: