From: N Balachandran Date: Mon, 21 Apr 2025 11:34:08 +0000 (+0530) Subject: rbd: display correct mirror state when creating X-Git-Tag: v19.2.3~172^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=14213e37140bce47acd35fae10fdf8c8e7a78ad7;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 946acfb2ae4..779f85c5c61 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 c5b8921b85f..f5d9096789a 100644 --- a/src/pybind/rbd/c_rbd.pxd +++ b/src/pybind/rbd/c_rbd.pxd @@ -164,6 +164,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 adb7957e532..7a8faf750bd 100644 --- a/src/pybind/rbd/mock_rbd.pxi +++ b/src/pybind/rbd/mock_rbd.pxi @@ -168,6 +168,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 d7c05ac58b4..488382cdfa8 100644 --- a/src/pybind/rbd/rbd.pyx +++ b/src/pybind/rbd/rbd.pyx @@ -97,6 +97,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 fcafd63a4eb..60672447a41 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"; }