]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
pybind/mgr/rbd_support: check group enabled for snap mirroring
authorRamana Raja <rraja@redhat.com>
Tue, 15 Apr 2025 20:26:39 +0000 (16:26 -0400)
committerPrasanna Kumar Kalever <prasanna.kalever@redhat.com>
Thu, 24 Apr 2025 15:56:39 +0000 (21:26 +0530)
... 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 <rraja@redhat.com>
src/pybind/mgr/rbd_support/mirror_group_snapshot_schedule.py
src/pybind/mgr/rbd_support/schedule.py

index 8371bcd12b82bfc075cb053b579921232c9f2b98..4ac01362e5eee28bac46aafa630c73dd42c90f17 100644 (file)
@@ -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):
index 46ea3f987004fffad15e0c3430ba97e707e80ec4..45032ec07f72ebfd170077343ae442911b1b0db5 100644 (file)
@@ -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: