From 1b62447071a900b9fa7d856617cb7db9e030f91e Mon Sep 17 00:00:00 2001 From: Sunny Kumar Date: Fri, 12 Nov 2021 16:27:55 +0000 Subject: [PATCH] mgr/rbd_support: fix schedule remove Issue: If we provide a random string in the schedule remove command the entire schedule at specified level gets removed. Fixes: https://tracker.ceph.com/issues/53250 Signed-off-by: Sunny Kumar --- src/pybind/mgr/rbd_support/schedule.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/rbd_support/schedule.py b/src/pybind/mgr/rbd_support/schedule.py index ffcb78a074122..615c002a043d9 100644 --- a/src/pybind/mgr/rbd_support/schedule.py +++ b/src/pybind/mgr/rbd_support/schedule.py @@ -512,10 +512,12 @@ class Schedules: if interval is None: schedule = None else: - schedule.remove(Interval.from_string(interval), - StartTime.from_string(start_time)) - if schedule: - self.schedules[level_spec.id] = schedule + try: + schedule.remove(Interval.from_string(interval), + StartTime.from_string(start_time)) + finally: + if schedule: + self.schedules[level_spec.id] = schedule if not schedule: del self.level_specs[level_spec.id] self.save(level_spec, schedule) -- 2.39.5