From b8929c426278664851642efc1f37f28877f0e164 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 20 Mar 2013 13:43:31 -0700 Subject: [PATCH] messages: add MOSDMarkMeDown Signed-off-by: Samuel Just --- src/messages/MOSDMarkMeDown.h | 69 +++++++++++++++++++++++++++++++++++ src/msg/Message.cc | 4 ++ src/msg/Message.h | 1 + 3 files changed, 74 insertions(+) create mode 100644 src/messages/MOSDMarkMeDown.h diff --git a/src/messages/MOSDMarkMeDown.h b/src/messages/MOSDMarkMeDown.h new file mode 100644 index 0000000000000..e99c83d18dd71 --- /dev/null +++ b/src/messages/MOSDMarkMeDown.h @@ -0,0 +1,69 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2013 Inktank Storage, Inc. + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#ifndef CEPH_MOSDMARKMEDOWN_H +#define CEPH_MOSDMARKMEDOWN_H + +#include "messages/PaxosServiceMessage.h" + +class MOSDMarkMeDown : public PaxosServiceMessage { + + static const int HEAD_VERSION = 1; + + public: + uuid_d fsid; + entity_inst_t target_osd; + epoch_t e; + bool ack; + + MOSDMarkMeDown() + : PaxosServiceMessage(MSG_OSD_MARK_ME_DOWN, 0, HEAD_VERSION) { } + MOSDMarkMeDown(const uuid_d &fs, const entity_inst_t& f, + epoch_t e, bool ack) + : PaxosServiceMessage(MSG_OSD_MARK_ME_DOWN, e, HEAD_VERSION), + fsid(fs), target_osd(f), ack(ack) {} + private: + ~MOSDMarkMeDown() {} + +public: + entity_inst_t get_target() { return target_osd; } + epoch_t get_epoch() { return e; } + + void decode_payload() { + bufferlist::iterator p = payload.begin(); + paxos_decode(p); + ::decode(fsid, p); + ::decode(target_osd, p); + ::decode(e, p); + ::decode(ack, p); + } + void encode_payload(uint64_t features) { + paxos_encode(); + ::encode(fsid, payload); + ::encode(target_osd, payload); + ::encode(e, payload); + ::encode(ack, payload); + } + + const char *get_type_name() const { return "osd_mark_me_down"; } + void print(ostream& out) const { + out << "osd_mark_me_down(" + << "ack=" << ack + << ", target_osd=" << target_osd + << ", fsid=" << fsid + << ")"; + } +}; + +#endif diff --git a/src/msg/Message.cc b/src/msg/Message.cc index 4b3c16b49daed..77be03a590be0 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -58,6 +58,7 @@ using namespace std; #include "messages/MOSDAlive.h" #include "messages/MOSDPGTemp.h" #include "messages/MOSDFailure.h" +#include "messages/MOSDMarkMeDown.h" #include "messages/MOSDPing.h" #include "messages/MOSDOp.h" #include "messages/MOSDOpReply.h" @@ -371,6 +372,9 @@ Message *decode_message(CephContext *cct, ceph_msg_header& header, ceph_msg_foot case MSG_OSD_FAILURE: m = new MOSDFailure(); break; + case MSG_OSD_MARK_ME_DOWN: + m = new MOSDMarkMeDown(); + break; case MSG_OSD_PING: m = new MOSDPing(); break; diff --git a/src/msg/Message.h b/src/msg/Message.h index 274537db7e654..1bf28e36f2d33 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -68,6 +68,7 @@ #define MSG_OSD_BOOT 71 #define MSG_OSD_FAILURE 72 #define MSG_OSD_ALIVE 73 +#define MSG_OSD_MARK_ME_DOWN 74 #define MSG_OSD_SUBOP 76 #define MSG_OSD_SUBOPREPLY 77 -- 2.39.5