GET_SCHEDULES = PROTO_GET_SCHEDULES + ' s.path = ?'''
@classmethod
- def get_db_schedules(cls, path, db, fs, repeat=None, start=None):
+ def get_db_schedules(cls, path, db, fs,
+ schedule=None,
+ start=None,
+ repeat=None):
query = cls.GET_SCHEDULES
data: Tuple[Any, ...] = (path,)
if repeat:
query += ' AND sm.repeat = ?'
data += (repeat,)
+ if schedule:
+ query += ' AND sm.schedule = ?'
+ data += (schedule,)
if start:
query += ' AND sm.start = ?'
data += (start,)
sched = Schedule.get_db_schedules(path,
db,
fs_name,
- repeat,
- start)[0]
+ repeat=repeat,
+ start=start)[0]
time = datetime.now(timezone.utc)
with open_filesystem(self, fs_name) as fs_handle:
snap_ts = time.strftime(SNAPSHOT_TS_FORMAT)
self.store_schedule_db(sched.fs)
@updates_schedule_db
- def rm_snap_schedule(self, fs, path, repeat, start):
+ def rm_snap_schedule(self, fs, path, schedule, start):
db = self.get_schedule_db(fs)
- Schedule.rm_schedule(db, path, repeat, start)
+ Schedule.rm_schedule(db, path, schedule, start)
@updates_schedule_db
def add_retention_spec(self,
Schedule.rm_retention(db, path, retention_spec)
@updates_schedule_db
- def activate_snap_schedule(self, fs, path, repeat, start):
+ def activate_snap_schedule(self, fs, path, schedule, start):
db = self.get_schedule_db(fs)
- schedules = Schedule.get_db_schedules(path, db, fs, repeat, start)
+ schedules = Schedule.get_db_schedules(path, db, fs,
+ schedule=schedule,
+ start=start)
[s.set_active(db) for s in schedules]
@updates_schedule_db
- def deactivate_snap_schedule(self, fs, path, repeat, start):
+ def deactivate_snap_schedule(self, fs, path, schedule, start):
db = self.get_schedule_db(fs)
- schedules = Schedule.get_db_schedules(path, db, fs, repeat, start)
+ schedules = Schedule.get_db_schedules(path, db, fs,
+ schedule=schedule,
+ start=start)
[s.set_inactive(db) for s in schedules]