From: Jan Fajerski Date: Mon, 23 Aug 2021 13:15:21 +0000 (+0200) Subject: snap-schedule: count retained snapshots per retention policy X-Git-Tag: v17.1.0~1012^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=853d97bbae0c4082b7d6fda7e191df7c246db10f;p=ceph-ci.git snap-schedule: count retained snapshots per retention policy Before this commit the length of the already-retained snapshots terminated the loop. This fails when muliple retention policies are set. Fixes: https://tracker.ceph.com/issues/52388 Signed-off-by: Jan Fajerski --- diff --git a/src/pybind/mgr/snap_schedule/fs/schedule_client.py b/src/pybind/mgr/snap_schedule/fs/schedule_client.py index 84950d39924..dc2e6e7151c 100644 --- a/src/pybind/mgr/snap_schedule/fs/schedule_client.py +++ b/src/pybind/mgr/snap_schedule/fs/schedule_client.py @@ -90,6 +90,7 @@ def get_prune_set(candidates: Set[Tuple[cephfs.DirEntry, datetime]], if not period_count: continue last = None + kept_for_this_period = 0 for snap in sorted(candidates, key=lambda x: x[0].d_name, reverse=True): snap_ts = snap[1].strftime(date_pattern) @@ -99,7 +100,8 @@ def get_prune_set(candidates: Set[Tuple[cephfs.DirEntry, datetime]], log.debug((f'keeping {snap[0].d_name} due to ' f'{period_count}{period}')) keep.append(snap) - if len(keep) == period_count: + kept_for_this_period += 1 + if kept_for_this_period == period_count: log.debug(('found enough snapshots for ' f'{period_count}{period}')) break