X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Ftools%2Frbd_mirror%2Finstance_watcher%2FTypes.h;h=70af2f79112b4b5af15ff2d3666a3271732d3634;hb=d2e6a577eb19928d58b31d1b6e096ca0f03c4052;hp=53b333c34afc98da330d99b9e74d50f04cb3d2d1;hpb=31f18b776d001752a193a7cec8bb49033c1a904c;p=ceph.git diff --git a/ceph/src/tools/rbd_mirror/instance_watcher/Types.h b/ceph/src/tools/rbd_mirror/instance_watcher/Types.h index 53b333c34..70af2f791 100644 --- a/ceph/src/tools/rbd_mirror/instance_watcher/Types.h +++ b/ceph/src/tools/rbd_mirror/instance_watcher/Types.h @@ -19,10 +19,11 @@ namespace mirror { namespace instance_watcher { enum NotifyOp { - NOTIFY_OP_IMAGE_ACQUIRE = 0, - NOTIFY_OP_IMAGE_RELEASE = 1, - NOTIFY_OP_SYNC_REQUEST = 2, - NOTIFY_OP_SYNC_START = 3, + NOTIFY_OP_IMAGE_ACQUIRE = 0, + NOTIFY_OP_IMAGE_RELEASE = 1, + NOTIFY_OP_PEER_IMAGE_REMOVED = 2, + NOTIFY_OP_SYNC_REQUEST = 3, + NOTIFY_OP_SYNC_START = 4 }; struct PayloadBase { @@ -41,17 +42,12 @@ struct PayloadBase { struct ImagePayloadBase : public PayloadBase { std::string global_image_id; - std::string peer_mirror_uuid; - std::string peer_image_id; ImagePayloadBase() : PayloadBase() { } - ImagePayloadBase(uint64_t request_id, const std::string &global_image_id, - const std::string &peer_mirror_uuid, - const std::string &peer_image_id) - : PayloadBase(request_id), global_image_id(global_image_id), - peer_mirror_uuid(peer_mirror_uuid), peer_image_id(peer_image_id) { + ImagePayloadBase(uint64_t request_id, const std::string &global_image_id) + : PayloadBase(request_id), global_image_id(global_image_id) { } void encode(bufferlist &bl) const; @@ -62,31 +58,36 @@ struct ImagePayloadBase : public PayloadBase { struct ImageAcquirePayload : public ImagePayloadBase { static const NotifyOp NOTIFY_OP = NOTIFY_OP_IMAGE_ACQUIRE; - ImageAcquirePayload() : ImagePayloadBase() { + ImageAcquirePayload() { } - - ImageAcquirePayload(uint64_t request_id, const std::string &global_image_id, - const std::string &peer_mirror_uuid, - const std::string &peer_image_id) - : ImagePayloadBase(request_id, global_image_id, peer_mirror_uuid, - peer_image_id) { + ImageAcquirePayload(uint64_t request_id, const std::string &global_image_id) + : ImagePayloadBase(request_id, global_image_id) { } }; struct ImageReleasePayload : public ImagePayloadBase { static const NotifyOp NOTIFY_OP = NOTIFY_OP_IMAGE_RELEASE; - bool schedule_delete; - - ImageReleasePayload() : ImagePayloadBase(), schedule_delete(false) { + ImageReleasePayload() { } + ImageReleasePayload(uint64_t request_id, const std::string &global_image_id) + : ImagePayloadBase(request_id, global_image_id) { + } +}; - ImageReleasePayload(uint64_t request_id, const std::string &global_image_id, - const std::string &peer_mirror_uuid, - const std::string &peer_image_id, bool schedule_delete) - : ImagePayloadBase(request_id, global_image_id, peer_mirror_uuid, - peer_image_id), - schedule_delete(schedule_delete) { +struct PeerImageRemovedPayload : public PayloadBase { + static const NotifyOp NOTIFY_OP = NOTIFY_OP_PEER_IMAGE_REMOVED; + + std::string global_image_id; + std::string peer_mirror_uuid; + + PeerImageRemovedPayload() { + } + PeerImageRemovedPayload(uint64_t request_id, + const std::string& global_image_id, + const std::string& peer_mirror_uuid) + : PayloadBase(request_id), + global_image_id(global_image_id), peer_mirror_uuid(peer_mirror_uuid) { } void encode(bufferlist &bl) const; @@ -144,6 +145,7 @@ struct UnknownPayload { typedef boost::variant Payload;