From bcfb6f99e02248e51eb26ce54d018d9fd3190804 Mon Sep 17 00:00:00 2001 From: Ramana Raja Date: Tue, 15 Apr 2025 16:26:39 -0400 Subject: [PATCH] pybind/mgr/rbd_support: check group enabled for snap mirroring ... in mirror group snap scheduler's group_validator. Make sure that the mirror group is in enabled state before performing schedule operations on it. Signed-off-by: Ramana Raja --- src/pybind/mgr/rbd_support/mirror_group_snapshot_schedule.py | 5 +++-- src/pybind/mgr/rbd_support/schedule.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/rbd_support/mirror_group_snapshot_schedule.py b/src/pybind/mgr/rbd_support/mirror_group_snapshot_schedule.py index 8371bcd12b82b..4ac01362e5eee 100644 --- a/src/pybind/mgr/rbd_support/mirror_group_snapshot_schedule.py +++ b/src/pybind/mgr/rbd_support/mirror_group_snapshot_schedule.py @@ -24,8 +24,9 @@ def group_validator(group: rbd.Group) -> None: info = group.mirror_group_get_info() except rbd.ObjectNotFound: raise rbd.InvalidArgument("Error getting mirror group info") - if info['image_mode'] != rbd.RBD_MIRROR_IMAGE_MODE_SNAPSHOT: - raise rbd.InvalidArgument("Invalid mirror group mode") + if (info['state'] != rbd.RBD_MIRROR_GROUP_ENABLED + or info['image_mode'] != rbd.RBD_MIRROR_IMAGE_MODE_SNAPSHOT): + raise rbd.InvalidArgument("Group not enabled for snapshot mirroring") class GroupSpec(NamedTuple): diff --git a/src/pybind/mgr/rbd_support/schedule.py b/src/pybind/mgr/rbd_support/schedule.py index 46ea3f987004f..45032ec07f72e 100644 --- a/src/pybind/mgr/rbd_support/schedule.py +++ b/src/pybind/mgr/rbd_support/schedule.py @@ -168,8 +168,8 @@ class LevelSpec: group_name)) except rbd.InvalidArgument: raise ValueError( - "group {} is not in snapshot mirror mode".format( - group_id)) + "group {} not enabled for snapshot mirroring".format( + group_name)) else: image_name = match.group(3) try: -- 2.39.5