From: Sage Weil Date: Mon, 28 Aug 2017 19:43:50 +0000 (-0400) Subject: mon: add MIMIC mon feature X-Git-Tag: v13.0.1~1005^2~29 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d9cd2d7df65d56de564342a5aefa6e2f1936c1a5;p=ceph.git mon: add MIMIC mon feature Signed-off-by: Sage Weil --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 9f0a3560c64d..f9273d51ecc8 100755 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -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; } diff --git a/src/mon/mon_types.h b/src/mon/mon_types.h index 94a831fc3f7a..68139a40bc9e 100644 --- a/src/mon/mon_types.h +++ b/src/mon/mon_types.h @@ -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; } diff --git a/src/test/cli/monmaptool/feature-set-unset-list.t b/src/test/cli/monmaptool/feature-set-unset-list.t index 8a3f41b3cca0..33e069be2274 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),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