From: Sage Weil Date: Mon, 6 Feb 2017 15:40:53 +0000 (-0500) Subject: mon/mon_types: add sticky FEATURE_LUMINOUS feature bit X-Git-Tag: v12.0.1~467^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b053bca71f3a9895f9a932c6c0690aca1a60ae1b;p=ceph.git mon/mon_types: add sticky FEATURE_LUMINOUS feature bit Once mons upgrade to luminous, you can't go back. Signed-off-by: Sage Weil --- diff --git a/src/mon/mon_types.h b/src/mon/mon_types.h index 8b5aa68b5118..06067769a8fa 100644 --- a/src/mon/mon_types.h +++ b/src/mon/mon_types.h @@ -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; } diff --git a/src/test/cli/monmaptool/feature-set-unset-list.t b/src/test/cli/monmaptool/feature-set-unset-list.t index cebec929406e..8a3f41b3cca0 100644 --- a/src/test/cli/monmaptool/feature-set-unset-list.t +++ b/src/test/cli/monmaptool/feature-set-unset-list.t @@ -11,21 +11,21 @@ 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