]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add MIMIC mon feature
authorSage Weil <sage@redhat.com>
Mon, 28 Aug 2017 19:43:50 +0000 (15:43 -0400)
committerSage Weil <sage@redhat.com>
Wed, 6 Sep 2017 14:18:03 +0000 (10:18 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/Monitor.cc
src/mon/mon_types.h
src/test/cli/monmaptool/feature-set-unset-list.t

index 9f0a3560c64d0a74963c1e5b93190bacc599d538..f9273d51ecc86e1a1235a063e1549911c240daa4 100755 (executable)
@@ -2120,6 +2120,10 @@ void Monitor::calc_quorum_requirements()
        ceph::features::mon::FEATURE_LUMINOUS)) {
     required_features |= CEPH_FEATUREMASK_SERVER_LUMINOUS;
   }
+  if (monmap->get_required_features().contains_all(
+       ceph::features::mon::FEATURE_MIMIC)) {
+    required_features |= CEPH_FEATUREMASK_SERVER_MIMIC;
+  }
   dout(10) << __func__ << " required_features " << required_features << dendl;
 }
 
index 94a831fc3f7a2b017b534bbc7503d2a0ee911934..68139a40bc9ef731232ab714bc6d4e4558013643 100644 (file)
@@ -488,6 +488,7 @@ namespace ceph {
     namespace mon {
       constexpr mon_feature_t FEATURE_KRAKEN(     (1ULL << 0));
       constexpr mon_feature_t FEATURE_LUMINOUS(   (1ULL << 1));
+      constexpr mon_feature_t FEATURE_MIMIC(      (1ULL << 2));
 
       constexpr mon_feature_t FEATURE_RESERVED(   (1ULL << 63));
       constexpr mon_feature_t FEATURE_NONE(       (0ULL));
@@ -501,6 +502,7 @@ namespace ceph {
         return (
          FEATURE_KRAKEN |
          FEATURE_LUMINOUS |
+         FEATURE_MIMIC |
          FEATURE_NONE
          );
       }
@@ -518,6 +520,7 @@ namespace ceph {
         return (
          FEATURE_KRAKEN |
          FEATURE_LUMINOUS |
+         FEATURE_MIMIC |
          FEATURE_NONE
          );
       }
@@ -534,6 +537,8 @@ static inline const char *ceph::features::mon::get_feature_name(uint64_t b) {
     return "kraken";
   } else if (f == FEATURE_LUMINOUS) {
     return "luminous";
+  } else if (f == FEATURE_MIMIC) {
+    return "mimic";
   } else if (f == FEATURE_RESERVED) {
     return "reserved";
   }
@@ -547,6 +552,8 @@ mon_feature_t ceph::features::mon::get_feature_by_name(std::string n) {
     return FEATURE_KRAKEN;
   } else if (n == "luminous") {
     return FEATURE_LUMINOUS;
+  } else if (n == "mimic") {
+    return FEATURE_MIMIC;
   } else if (n == "reserved") {
     return FEATURE_RESERVED;
   }
index 8a3f41b3cca0b10e206a05899b7048daed05c92e..33e069be22748a9c60d8b54dd5750db38d939378 100644 (file)
       required:   [none]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1),luminous(2)]
-      persistent: [kraken(1),luminous(2)]
+      supported:  [kraken(1),luminous(2),mimic(4)]
+      persistent: [kraken(1),luminous(2),mimic(4)]
   MONMAP FEATURES:
       persistent: [none]
       optional:   [none]
       required:   [none]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1),luminous(2)]
-      persistent: [kraken(1),luminous(2)]
+      supported:  [kraken(1),luminous(2),mimic(4)]
+      persistent: [kraken(1),luminous(2),mimic(4)]
   monmap:persistent:[none]
   monmap:optional:[none]
   monmap:required:[none]
-  available:supported:[kraken(1),luminous(2)]
-  available:persistent:[kraken(1),luminous(2)]
+  available:supported:[kraken(1),luminous(2),mimic(4)]
+  available:persistent:[kraken(1),luminous(2),mimic(4)]
 
   $ monmaptool --feature-set foo /tmp/test.monmap.1234
   unknown features name 'foo' or unable to parse value: Expected option value to be integer, got 'foo'
@@ -49,8 +49,8 @@
       required:   [kraken(1),unknown(16),unknown(32)]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1),luminous(2)]
-      persistent: [kraken(1),luminous(2)]
+      supported:  [kraken(1),luminous(2),mimic(4)]
+      persistent: [kraken(1),luminous(2),mimic(4)]
 
   $ monmaptool --feature-unset 32 --optional --feature-list /tmp/test.monmap.1234
   monmaptool: monmap file /tmp/test.monmap.1234
@@ -60,8 +60,8 @@
       required:   [kraken(1),unknown(16),unknown(32)]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1),luminous(2)]
-      persistent: [kraken(1),luminous(2)]
+      supported:  [kraken(1),luminous(2),mimic(4)]
+      persistent: [kraken(1),luminous(2),mimic(4)]
   monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors)
 
   $ monmaptool --feature-unset 32 --persistent --feature-unset 16 --optional --feature-list /tmp/test.monmap.1234
@@ -72,8 +72,8 @@
       required:   [kraken(1)]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1),luminous(2)]
-      persistent: [kraken(1),luminous(2)]
+      supported:  [kraken(1),luminous(2),mimic(4)]
+      persistent: [kraken(1),luminous(2),mimic(4)]
   monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors)
 
   $ monmaptool --feature-unset kraken --feature-list /tmp/test.monmap.1234
@@ -84,8 +84,8 @@
       required:   [none]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1),luminous(2)]
-      persistent: [kraken(1),luminous(2)]
+      supported:  [kraken(1),luminous(2),mimic(4)]
+      persistent: [kraken(1),luminous(2),mimic(4)]
   monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors)
 
   $ rm /tmp/test.monmap.1234