]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
messages: drop compatibility for pre-octopus versions
authorKefu Chai <kchai@redhat.com>
Thu, 18 Feb 2021 17:06:50 +0000 (01:06 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 23 Feb 2021 10:54:13 +0000 (18:54 +0800)
no need to be compatible with pre-octopus versions when it comes to
in-cluster communications.

* MMgrBeacon: octopus encodes MMgrBeacon with version 8
* MMonJoin: octopus encodes MMonJoin with version 2
* MOSDBoot: octopus encodes MOSDBoot with version 7
* MOSDFailure: octopus encodes MOSDFailure with version 4
* MOSDMarkMeDown: octopus encodes MOSDMarkMeDown with version 3
* MOSDPGLog: octopus encodes MOSDPGLog with version 6
* MOSDPGScan: octopus encodes MOSDPGScan with version 2
* MOSDPGInfo: octopus encodes MOSDPGInfo with version 6
* MOSDPGNotify: octopus encodes MOSDPGNotify with version 7

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/messages/MMgrBeacon.h
src/messages/MMonJoin.h
src/messages/MOSDBoot.h
src/messages/MOSDFailure.h
src/messages/MOSDMarkMeDown.h
src/messages/MOSDPGInfo.h
src/messages/MOSDPGLog.h
src/messages/MOSDPGNotify.h
src/messages/MOSDPGScan.h

index 5b6ca3b60be04108249de6a9a9dfbea702d15a74..371f296829c6f2ba2c85d60d25d122872d2141f8 100644 (file)
@@ -126,13 +126,8 @@ public:
     using ceph::encode;
     paxos_encode();
 
-    if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      header.version = 7;
-      header.compat_version = 1;
-      encode(server_addrs.legacy_addr(), payload, features);
-    } else {
-      encode(server_addrs, payload, features);
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
+    encode(server_addrs, payload, features);
     encode(gid, payload);
     encode(available, payload);
     encode(name, payload);
@@ -158,38 +153,18 @@ public:
     using ceph::decode;
     auto p = payload.cbegin();
     paxos_decode(p);
+    assert(header.version >= 8);
     decode(server_addrs, p);  // entity_addr_t for version < 8
     decode(gid, p);
     decode(available, p);
     decode(name, p);
-    if (header.version >= 2) {
-      decode(fsid, p);
-    }
-    if (header.version >= 3) {
-      std::set<std::string> module_name_list;
-      decode(module_name_list, p);
-      // Only need to unpack this field if we won't have the full
-      // ModuleInfo structures added in v7
-      if (header.version < 7) {
-        for (const auto &i : module_name_list) {
-          MgrMap::ModuleInfo info;
-          info.name = i;
-          modules.push_back(std::move(info));
-        }
-      }
-    }
-    if (header.version >= 4) {
-      decode(command_descs, p);
-    }
-    if (header.version >= 5) {
-      decode(metadata, p);
-    }
-    if (header.version >= 6) {
-      decode(services, p);
-    }
-    if (header.version >= 7) {
-      decode(modules, p);
-    }
+    decode(fsid, p);
+    std::set<std::string> module_name_list;
+    decode(module_name_list, p);
+    decode(command_descs, p);
+    decode(metadata, p);
+    decode(services, p);
+    decode(modules, p);
     if (header.version >= 9) {
       decode(mgr_features, p);
     }
index 309035e5b0b98b2ac52b4aa50d7487ca894cdaca..027f696cf2b0219b212d47493d33fe3e45d15a49 100644 (file)
@@ -46,15 +46,10 @@ public:
     paxos_encode();
     encode(fsid, payload);
     encode(name, payload);
-    if (HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      header.version = HEAD_VERSION;
-      header.compat_version = COMPAT_VERSION;
-      encode(addrs, payload, features);
-    } else {
-      header.version = 1;
-      header.compat_version = 1;
-      encode(addrs.legacy_addr(), payload, features);
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
+    header.version = HEAD_VERSION;
+    header.compat_version = COMPAT_VERSION;
+    encode(addrs, payload, features);
   }
   void decode_payload() override {
     using ceph::decode;
@@ -62,13 +57,8 @@ public:
     paxos_decode(p);
     decode(fsid, p);
     decode(name, p);
-    if (header.version == 1) {
-      entity_addr_t addr;
-      decode(addr, p);
-      addrs = entity_addrvec_t(addr);
-    } else {
-      decode(addrs, p);
-    }
+    assert(header.version > 1);
+    decode(addrs, p);
   }
 };
 
index d40324f4ac15e6d08cdb9858d797e6e56e5e2dcd..f28a11c38c4060fbf16a41fd922d6d73f4a06789 100644 (file)
@@ -68,18 +68,7 @@ public:
     header.compat_version = COMPAT_VERSION;
     using ceph::encode;
     paxos_encode();
-    if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      header.version = 6;
-      header.compat_version = 6;
-      encode(sb, payload);
-      hb_back_addrs.legacy_addr().encode(payload, features);
-      cluster_addrs.legacy_addr().encode(payload, features);
-      encode(boot_epoch, payload);
-      hb_front_addrs.legacy_addr().encode(payload, features);
-      encode(metadata, payload);
-      encode(osd_features, payload);
-      return;
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
     encode(sb, payload);
     encode(hb_back_addrs, payload, features);
     encode(cluster_addrs, payload, features);
@@ -92,20 +81,7 @@ public:
     auto p = payload.cbegin();
     using ceph::decode;
     paxos_decode(p);
-    if (header.version < 7) {
-      entity_addr_t a;
-      decode(sb, p);
-      decode(a, p);
-      hb_back_addrs = entity_addrvec_t(a);
-      decode(a, p);
-      cluster_addrs = entity_addrvec_t(a);
-      decode(boot_epoch, p);
-      decode(a, p);
-      hb_front_addrs = entity_addrvec_t(a);
-      decode(metadata, p);
-      decode(osd_features, p);
-      return;
-    }
+    assert(header.version >= 7);
     decode(sb, p);
     decode(hb_back_addrs, p);
     decode(cluster_addrs, p);
index 72aa644ed6647f5d4441a3912f41b71d6e4a503a..508cc84d30373e75cdfec9893dd9f574ea56259f 100644 (file)
@@ -75,15 +75,9 @@ public:
     auto p = payload.cbegin();
     paxos_decode(p);
     decode(fsid, p);
-    if (header.version < 4) {
-      entity_inst_t i;
-      decode(i, p);
-      target_osd = i.name.num();
-      target_addrs.v.push_back(i.addr);
-    } else {
-      decode(target_osd, p);
-      decode(target_addrs, p);
-    }
+    assert(header.version >= 4);
+    decode(target_osd, p);
+    decode(target_addrs, p);
     decode(epoch, p);
     decode(flags, p);
     decode(failed_for, p);
@@ -92,17 +86,7 @@ public:
   void encode_payload(uint64_t features) override {
     using ceph::encode;
     paxos_encode();
-    if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      header.version = 3;
-      header.compat_version = 3;
-      encode(fsid, payload);
-      encode(entity_inst_t(entity_name_t::OSD(target_osd),
-                          target_addrs.legacy_addr()), payload, features);
-      encode(epoch, payload);
-      encode(flags, payload);
-      encode(failed_for, payload);
-      return;
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
     header.version = HEAD_VERSION;
     header.compat_version = COMPAT_VERSION;
     encode(fsid, payload);
index 2ff0e1cd809ea1cb7b47a4d328c53150eaa18f7e..e9428518639c882ea042f4a774355631952a6217 100644 (file)
@@ -48,16 +48,7 @@ public:
     using ceph::decode;
     auto p = payload.cbegin();
     paxos_decode(p);
-    if (header.version <= 2) {
-      decode(fsid, p);
-      entity_inst_t i;
-      decode(i, p);
-      target_osd = i.name.num();
-      target_addrs = entity_addrvec_t(i.addr);
-      decode(epoch, p);
-      decode(request_ack, p);
-      return;
-    }
+    assert(header.version >= 3);
     decode(fsid, p);
     decode(target_osd, p);
     decode(target_addrs, p);
@@ -68,17 +59,7 @@ public:
   void encode_payload(uint64_t features) override {
     using ceph::encode;
     paxos_encode();
-    if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      header.version = 2;
-      header.compat_version = 2;
-      encode(fsid, payload);
-      encode(entity_inst_t(entity_name_t::OSD(target_osd),
-                          target_addrs.legacy_addr()),
-            payload, features);
-      encode(epoch, payload);
-      encode(request_ack, payload);
-      return;
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
     header.version = HEAD_VERSION;
     header.compat_version = COMPAT_VERSION;
     encode(fsid, payload);
index b742cd014d722ca84d7aa1b0706312f60041cab4..63ddc3e3ef8a6f1d3f44efc9e3c773aca09cb496 100644 (file)
@@ -22,7 +22,7 @@
 class MOSDPGInfo final : public Message {
 private:
   static constexpr int HEAD_VERSION = 6;
-  static constexpr int COMPAT_VERSION = 5;
+  static constexpr int COMPAT_VERSION = 6;
 
   epoch_t epoch = 0;
 
@@ -67,33 +67,13 @@ public:
     using ceph::encode;
     header.version = HEAD_VERSION;
     encode(epoch, payload);
-    if (!HAVE_FEATURE(features, SERVER_OCTOPUS)) {
-      // pretend to be vector<pair<pg_notify_t,PastIntervals>>
-      header.version = 5;
-      encode((uint32_t)pg_list.size(), payload);
-      for (auto& i : pg_list) {
-       encode(i, payload);   // this embeds a dup (ignored) PastIntervals
-       encode(i.past_intervals, payload);
-      }
-      return;
-    }
+    assert(HAVE_FEATURE(features, SERVER_OCTOPUS));
     encode(pg_list, payload);
   }
   void decode_payload() override {
     using ceph::decode;
     auto p = payload.cbegin();
     decode(epoch, p);
-    if (header.version == 5) {
-      // decode legacy vector<pair<pg_notify_t,PastIntervals>>
-      uint32_t num;
-      decode(num, p);
-      pg_list.resize(num);
-      for (unsigned i = 0; i < num; ++i) {
-       decode(pg_list[i], p);
-       decode(pg_list[i].past_intervals, p);
-      }
-      return;
-    }
     decode(pg_list, p);
   }
 private:
index fc3b9174d485d6902ce91f2061f3d4335e26f432..747e3b767b49a4da6e34c14edc4c230f894ddb09 100644 (file)
@@ -22,7 +22,7 @@
 class MOSDPGLog final : public MOSDPeeringOp {
 private:
   static constexpr int HEAD_VERSION = 6;
-  static constexpr int COMPAT_VERSION = 5;
+  static constexpr int COMPAT_VERSION = 6;
 
   epoch_t epoch = 0;
   /// query_epoch is the epoch of the query being responded to, or
@@ -101,12 +101,8 @@ public:
     encode(info, payload);
     encode(log, payload);
     encode(missing, payload, features);
-    if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      // pre-nautilus OSDs do not set last_peering_reset properly
-      encode(epoch, payload);
-    } else {
-      encode(query_epoch, payload);
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
+    encode(query_epoch, payload);
     encode(past_intervals, payload);
     encode(to, payload);
     encode(from, payload);
@@ -123,9 +119,8 @@ public:
     decode(past_intervals, p);
     decode(to, p);
     decode(from, p);
-    if (header.version >= 6) {
-      decode(lease, p);
-    }
+    assert(header.version >= 6);
+    decode(lease, p);
   }
 private:
   template<class T, typename... Args>
index a3b237c1a8b05b6b46c767cd6f160d88b9da7fc0..c7aef014a4f71b7bfcf25e9dcef5f1fe910029a0 100644 (file)
@@ -26,7 +26,7 @@
 class MOSDPGNotify final : public Message {
 private:
   static constexpr int HEAD_VERSION = 7;
-  static constexpr int COMPAT_VERSION = 6;
+  static constexpr int COMPAT_VERSION = 7;
 
   epoch_t epoch = 0;
   /// query_epoch is the epoch of the query being responded to, or
@@ -61,16 +61,7 @@ public:
     using ceph::encode;
     header.version = HEAD_VERSION;
     encode(epoch, payload);
-    if (!HAVE_FEATURE(features, SERVER_OCTOPUS)) {
-      // pretend to be vector<pair<pg_notify_t,PastIntervals>>
-      header.version = 6;
-      encode((uint32_t)pg_list.size(), payload);
-      for (auto& i : pg_list) {
-       encode(i, payload);   // this embeds a dup (ignored) PastIntervals
-       encode(i.past_intervals, payload);
-      }
-      return;
-    }
+    assert(HAVE_FEATURE(features, SERVER_OCTOPUS));
     encode(pg_list, payload);
   }
 
@@ -78,17 +69,6 @@ public:
     auto p = payload.cbegin();
     using ceph::decode;
     decode(epoch, p);
-    if (header.version == 6) {
-      // decode legacy vector<pair<pg_notify_t,PastIntervals>>
-      uint32_t num;
-      decode(num, p);
-      pg_list.resize(num);
-      for (unsigned i = 0; i < num; ++i) {
-       decode(pg_list[i], p);
-       decode(pg_list[i].past_intervals, p);
-      }
-      return;
-    }
     decode(pg_list, p);
   }
   void print(std::ostream& out) const override {
index c80bb6efcb8cdc334d731271eaecac6fd9b220e5..be555e7c2fd61f1295eaa82f1d82dd29bd17c6c6 100644 (file)
@@ -75,12 +75,8 @@ public:
     using ceph::encode;
     encode(op, payload);
     encode(map_epoch, payload);
-    if (!HAVE_FEATURE(features, SERVER_NAUTILUS)) {
-      // pre-nautilus OSDs do not set last_peering_reset properly
-      encode(map_epoch, payload);
-    } else {
-      encode(query_epoch, payload);
-    }
+    assert(HAVE_FEATURE(features, SERVER_NAUTILUS));
+    encode(query_epoch, payload);
     encode(pgid.pgid, payload);
     encode(begin, payload);
     encode(end, payload);