]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/mon_types: add sticky FEATURE_LUMINOUS feature bit
authorSage Weil <sage@redhat.com>
Mon, 6 Feb 2017 15:40:53 +0000 (10:40 -0500)
committerSage Weil <sage@redhat.com>
Tue, 7 Feb 2017 15:36:31 +0000 (10:36 -0500)
Once mons upgrade to luminous, you can't go back.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/mon_types.h
src/test/cli/monmaptool/feature-set-unset-list.t

index 8b5aa68b51184f494bf39735bf88cb41c37a5568..06067769a8fad1279576278cbc129bb18184a641 100644 (file)
@@ -437,7 +437,9 @@ WRITE_CLASS_ENCODER(mon_feature_t)
 namespace ceph {
   namespace features {
     namespace mon {
-      constexpr mon_feature_t FEATURE_KRAKEN(      (1ULL << 0));
+      constexpr mon_feature_t FEATURE_KRAKEN(     (1ULL << 0));
+      constexpr mon_feature_t FEATURE_LUMINOUS(   (1ULL << 1));
+
       constexpr mon_feature_t FEATURE_RESERVED(   (1ULL << 63));
       constexpr mon_feature_t FEATURE_NONE(       (0ULL));
 
@@ -448,9 +450,10 @@ namespace ceph {
        */
       constexpr mon_feature_t get_supported() {
         return (
-            FEATURE_KRAKEN |
-            FEATURE_NONE
-            );
+         FEATURE_KRAKEN |
+         FEATURE_LUMINOUS |
+         FEATURE_NONE
+         );
       }
       /**
        * All the features that, once set, cannot be removed.
@@ -464,9 +467,10 @@ namespace ceph {
        */
       constexpr mon_feature_t get_persistent() {
         return (
-            FEATURE_KRAKEN |
-            FEATURE_NONE
-            );
+         FEATURE_KRAKEN |
+         FEATURE_LUMINOUS |
+         FEATURE_NONE
+         );
       }
 
       static inline mon_feature_t get_feature_by_name(std::string n);
@@ -479,6 +483,8 @@ static inline const char *ceph::features::mon::get_feature_name(uint64_t b) {
 
   if (f == FEATURE_KRAKEN) {
     return "kraken";
+  } else if (f == FEATURE_LUMINOUS) {
+    return "luminous";
   } else if (f == FEATURE_RESERVED) {
     return "reserved";
   }
@@ -490,6 +496,8 @@ mon_feature_t ceph::features::mon::get_feature_by_name(std::string n) {
 
   if (n == "kraken") {
     return FEATURE_KRAKEN;
+  } else if (n == "luminous") {
+    return FEATURE_LUMINOUS;
   } else if (n == "reserved") {
     return FEATURE_RESERVED;
   }
index cebec929406e7776676430b060f371a5d36e199e..8a3f41b3cca0b10e206a05899b7048daed05c92e 100644 (file)
       required:   [none]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1)]
-      persistent: [kraken(1)]
+      supported:  [kraken(1),luminous(2)]
+      persistent: [kraken(1),luminous(2)]
   MONMAP FEATURES:
       persistent: [none]
       optional:   [none]
       required:   [none]
   
   AVAILABLE FEATURES:
-      supported:  [kraken(1)]
-      persistent: [kraken(1)]
+      supported:  [kraken(1),luminous(2)]
+      persistent: [kraken(1),luminous(2)]
   monmap:persistent:[none]
   monmap:optional:[none]
   monmap:required:[none]
-  available:supported:[kraken(1)]
-  available:persistent:[kraken(1)]
+  available:supported:[kraken(1),luminous(2)]
+  available:persistent:[kraken(1),luminous(2)]
 
   $ 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)]
-      persistent: [kraken(1)]
+      supported:  [kraken(1),luminous(2)]
+      persistent: [kraken(1),luminous(2)]
 
   $ 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)]
-      persistent: [kraken(1)]
+      supported:  [kraken(1),luminous(2)]
+      persistent: [kraken(1),luminous(2)]
   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)]
-      persistent: [kraken(1)]
+      supported:  [kraken(1),luminous(2)]
+      persistent: [kraken(1),luminous(2)]
   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)]
-      persistent: [kraken(1)]
+      supported:  [kraken(1),luminous(2)]
+      persistent: [kraken(1),luminous(2)]
   monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors)
 
   $ rm /tmp/test.monmap.1234