]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
messages: add MOSDMarkMeDown
authorSamuel Just <sam.just@inktank.com>
Wed, 20 Mar 2013 20:43:31 +0000 (13:43 -0700)
committerSamuel Just <sam.just@inktank.com>
Fri, 22 Mar 2013 01:37:35 +0000 (18:37 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/messages/MOSDMarkMeDown.h [new file with mode: 0644]
src/msg/Message.cc
src/msg/Message.h

diff --git a/src/messages/MOSDMarkMeDown.h b/src/messages/MOSDMarkMeDown.h
new file mode 100644 (file)
index 0000000..e99c83d
--- /dev/null
@@ -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
index 4b3c16b49daed2d9743e58b3d0ba96bc4f808fd5..77be03a590be0c59e11bcd59612f537bfbe4f44b 100644 (file)
@@ -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;
index 274537db7e6546abcdd80b3e30dcaac42782105f..1bf28e36f2d33ff443a8ed70dd534c215a4bf6a7 100644 (file)
@@ -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