From: Sunny Kumar Date: Fri, 12 Nov 2021 16:27:55 +0000 (+0000) Subject: mgr/rbd_support: fix schedule remove X-Git-Tag: v17.1.0~23^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=819b39c9d6b25d19d6a7e9a8a580bc5e3ec5d371;p=ceph.git 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 (cherry picked from commit 1b62447071a900b9fa7d856617cb7db9e030f91e) --- diff --git a/src/pybind/mgr/rbd_support/schedule.py b/src/pybind/mgr/rbd_support/schedule.py index ffcb78a07412..615c002a043d 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)