From e5ea630e9f4671482b333aa51fbfe802beada055 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 11 Mar 2017 22:50:50 +0800 Subject: [PATCH] messages/MPGCreated: add MPGCreated add a new message type MPGCreated. osd is supposed to send this message to monitor to inform that any pg(s) is created and activated. Signed-off-by: Kefu Chai --- src/messages/MOSDPGCreated.h | 32 ++++++++++++++++++++++++++++++++ src/msg/Message.cc | 4 ++++ src/msg/Message.h | 1 + 3 files changed, 37 insertions(+) create mode 100644 src/messages/MOSDPGCreated.h diff --git a/src/messages/MOSDPGCreated.h b/src/messages/MOSDPGCreated.h new file mode 100644 index 0000000000000..13ec10faa8c3b --- /dev/null +++ b/src/messages/MOSDPGCreated.h @@ -0,0 +1,32 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#pragma once + +#include "osd/osd_types.h" +#include "messages/PaxosServiceMessage.h" + +class MOSDPGCreated : public PaxosServiceMessage { +public: + pg_t pgid; + MOSDPGCreated() + : PaxosServiceMessage(MSG_OSD_PG_CREATED, 0) + {} + MOSDPGCreated(pg_t pgid) + : PaxosServiceMessage(MSG_OSD_PG_CREATED, 0), + pgid(pgid) + {} + const char *get_type_name() const override { return "pg_created"; } + void print(ostream& out) const override { + out << "osd_pg_created(" << pgid << ")"; + } + void encode_payload(uint64_t features) override { + paxos_encode(); + ::encode(pgid, payload); + } + void decode_payload() override { + auto p = payload.begin(); + paxos_decode(p); + ::decode(pgid, p); + } +}; diff --git a/src/msg/Message.cc b/src/msg/Message.cc index 8b5cb0a98f0c3..c80ddf0fe00f3 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -72,6 +72,7 @@ using namespace std; #include "messages/MOSDMap.h" #include "messages/MMonGetOSDMap.h" +#include "messages/MOSDPGCreated.h" #include "messages/MOSDPGNotify.h" #include "messages/MOSDPGQuery.h" #include "messages/MOSDPGLog.h" @@ -462,6 +463,9 @@ Message *decode_message(CephContext *cct, int crcflags, case MSG_OSD_REPOPREPLY: m = new MOSDRepOpReply(); break; + case MSG_OSD_PG_CREATED: + m = new MOSDPGCreated(); + break; case MSG_OSD_PG_UPDATE_LOG_MISSING: m = new MOSDPGUpdateLogMissing(); break; diff --git a/src/msg/Message.h b/src/msg/Message.h index da35ce08ef2ba..a3c3ffa4b0707 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -114,6 +114,7 @@ #define MSG_OSD_PG_UPDATE_LOG_MISSING 114 #define MSG_OSD_PG_UPDATE_LOG_MISSING_REPLY 115 +#define MSG_OSD_PG_CREATED 116 // *** MDS *** -- 2.39.5