From: N Balachandran Date: Mon, 21 Apr 2025 11:34:08 +0000 (+0530) Subject: rbd: display correct mirror state when creating X-Git-Tag: v20.3.0~22^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F62898%2Fhead;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 --- diff --git a/src/include/rbd/librbd.h b/src/include/rbd/librbd.h index c258c4e9b5412..b347b03df9e28 100644 --- a/src/include/rbd/librbd.h +++ b/src/include/rbd/librbd.h @@ -189,7 +189,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 0a3d4f8b05bd4..a5a61087c9e2e 100644 --- a/src/pybind/rbd/c_rbd.pxd +++ b/src/pybind/rbd/c_rbd.pxd @@ -165,6 +165,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 d8bef8b5d900c..2f2871b738db4 100644 --- a/src/pybind/rbd/mock_rbd.pxi +++ b/src/pybind/rbd/mock_rbd.pxi @@ -169,6 +169,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 b1a04af95c650..f3e74a1634bcd 100644 --- a/src/pybind/rbd/rbd.pyx +++ b/src/pybind/rbd/rbd.pyx @@ -98,6 +98,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 bad7d5bdefef9..bcc2f507acba7 100644 --- a/src/tools/rbd/Utils.cc +++ b/src/tools/rbd/Utils.cc @@ -1023,6 +1023,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"; }