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 {
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;
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;
typedef boost::variant<ImageAcquirePayload,
ImageReleasePayload,
+ PeerImageRemovedPayload,
SyncRequestPayload,
SyncStartPayload,
UnknownPayload> Payload;