From: N Balachandran Date: Mon, 21 Apr 2025 11:34:08 +0000 (+0530) Subject: rbd: display correct mirror state when creating X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=596aef3a5eb3c1f31e553278dfab3a4f1ff44eb7;p=ceph.git rbd: display correct mirror state when creating The mirror image state is set to MIRROR_IMAGE_STATE_CREATING when the image is first created on the secondary, but was displayed as "unknown" by the rbd info command. This has been fixed. Fixes: https://tracker.ceph.com/issues/70963 Signed-off-by: N Balachandran (cherry picked from commit f2e35646721ed3076e3da54124f8d783c456b2dc) --- diff --git a/src/include/rbd/librbd.h b/src/include/rbd/librbd.h index 3a58a46064a36..027bb28f8afcb 100644 --- a/src/include/rbd/librbd.h +++ b/src/include/rbd/librbd.h @@ -186,7 +186,8 @@ typedef enum { typedef enum { RBD_MIRROR_IMAGE_DISABLING = 0, RBD_MIRROR_IMAGE_ENABLED = 1, - RBD_MIRROR_IMAGE_DISABLED = 2 + RBD_MIRROR_IMAGE_DISABLED = 2, + RBD_MIRROR_IMAGE_CREATING = 3 } rbd_mirror_image_state_t; typedef struct { diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd index 9624cb4ce051a..35c53246d47b0 100644 --- a/src/pybind/rbd/c_rbd.pxd +++ b/src/pybind/rbd/c_rbd.pxd @@ -159,6 +159,7 @@ cdef extern from "rbd/librbd.h" nogil: _RBD_MIRROR_IMAGE_DISABLING "RBD_MIRROR_IMAGE_DISABLING" _RBD_MIRROR_IMAGE_ENABLED "RBD_MIRROR_IMAGE_ENABLED" _RBD_MIRROR_IMAGE_DISABLED "RBD_MIRROR_IMAGE_DISABLED" + _RBD_MIRROR_IMAGE_CREATING "RBD_MIRROR_IMAGE_CREATING" ctypedef struct rbd_mirror_image_info_t: char *global_id diff --git a/src/pybind/rbd/mock_rbd.pxi b/src/pybind/rbd/mock_rbd.pxi index 04a056fcc6477..a98e2d12f0478 100644 --- a/src/pybind/rbd/mock_rbd.pxi +++ b/src/pybind/rbd/mock_rbd.pxi @@ -159,6 +159,7 @@ cdef nogil: _RBD_MIRROR_IMAGE_DISABLING "RBD_MIRROR_IMAGE_DISABLING" _RBD_MIRROR_IMAGE_ENABLED "RBD_MIRROR_IMAGE_ENABLED" _RBD_MIRROR_IMAGE_DISABLED "RBD_MIRROR_IMAGE_DISABLED" + _RBD_MIRROR_IMAGE_CREATING "RBD_MIRROR_IMAGE_CREATING" ctypedef struct rbd_mirror_image_info_t: char *global_id diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx index 10464821b633a..995a2d6925d7f 100644 --- a/src/pybind/rbd/rbd.pyx +++ b/src/pybind/rbd/rbd.pyx @@ -96,6 +96,7 @@ RBD_MIRROR_IMAGE_MODE_SNAPSHOT = _RBD_MIRROR_IMAGE_MODE_SNAPSHOT RBD_MIRROR_IMAGE_DISABLING = _RBD_MIRROR_IMAGE_DISABLING RBD_MIRROR_IMAGE_ENABLED = _RBD_MIRROR_IMAGE_ENABLED RBD_MIRROR_IMAGE_DISABLED = _RBD_MIRROR_IMAGE_DISABLED +RBD_MIRROR_IMAGE_CREATING = _RBD_MIRROR_IMAGE_CREATING MIRROR_IMAGE_STATUS_STATE_UNKNOWN = _MIRROR_IMAGE_STATUS_STATE_UNKNOWN MIRROR_IMAGE_STATUS_STATE_ERROR = _MIRROR_IMAGE_STATUS_STATE_ERROR diff --git a/src/tools/rbd/Utils.cc b/src/tools/rbd/Utils.cc index fcafd63a4eb86..60672447a4174 100644 --- a/src/tools/rbd/Utils.cc +++ b/src/tools/rbd/Utils.cc @@ -1012,6 +1012,8 @@ std::string mirror_image_state(librbd::mirror_image_state_t state) { return "enabled"; case RBD_MIRROR_IMAGE_DISABLED: return "disabled"; + case RBD_MIRROR_IMAGE_CREATING: + return "creating"; default: return "unknown"; }