From cab7e8a392318c7b3d96bf0421ca37def30ff879 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 28 Mar 2020 09:08:28 -0500 Subject: [PATCH] mon/mon_types: add mon pacific feature Signed-off-by: Sage Weil --- doc/dev/release-kickoff-checklist.rst | 2 +- src/mon/mon_types.h | 10 +++++++ .../cli/monmaptool/feature-set-unset-list.t | 28 +++++++++---------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/doc/dev/release-kickoff-checklist.rst b/doc/dev/release-kickoff-checklist.rst index 2dafcb6487f..c6d61a30810 100644 --- a/doc/dev/release-kickoff-checklist.rst +++ b/doc/dev/release-kickoff-checklist.rst @@ -26,7 +26,7 @@ Make sure X (and, ideally, X+1) is defined: - [x] src/common/ceph_releases.h (ceph_release_t) - [x] src/common/ceph_strings.cc (ceph_release_name()) - [x] src/include/rados.h (CEPH_RELEASE_* and MAX) -- [ ] src/mon/mon_types.h (ceph::features::mon::FEATURE_* and related structs and helpers; note that monmaptool CLI test output will need adjustment) +- [x] src/mon/mon_types.h (ceph::features::mon::FEATURE_* and related structs and helpers; note that monmaptool CLI test output will need adjustment) Scripts ~~~~~~~ diff --git a/src/mon/mon_types.h b/src/mon/mon_types.h index be8902ae2aa..86eb34b3113 100644 --- a/src/mon/mon_types.h +++ b/src/mon/mon_types.h @@ -497,6 +497,7 @@ namespace ceph { constexpr mon_feature_t FEATURE_OSDMAP_PRUNE (1ULL << 3); constexpr mon_feature_t FEATURE_NAUTILUS( (1ULL << 4)); constexpr mon_feature_t FEATURE_OCTOPUS( (1ULL << 5)); + constexpr mon_feature_t FEATURE_PACIFIC( (1ULL << 6)); constexpr mon_feature_t FEATURE_RESERVED( (1ULL << 63)); constexpr mon_feature_t FEATURE_NONE( (0ULL)); @@ -514,6 +515,7 @@ namespace ceph { FEATURE_OSDMAP_PRUNE | FEATURE_NAUTILUS | FEATURE_OCTOPUS | + FEATURE_PACIFIC | FEATURE_NONE ); } @@ -535,6 +537,7 @@ namespace ceph { FEATURE_NAUTILUS | FEATURE_OSDMAP_PRUNE | FEATURE_OCTOPUS | + FEATURE_PACIFIC | FEATURE_NONE ); } @@ -553,6 +556,9 @@ namespace ceph { static inline ceph_release_t infer_ceph_release_from_mon_features(mon_feature_t f) { + if (f.contains_all(ceph::features::mon::FEATURE_PACIFIC)) { + return ceph_release_t::pacific; + } if (f.contains_all(ceph::features::mon::FEATURE_OCTOPUS)) { return ceph_release_t::octopus; } @@ -586,6 +592,8 @@ static inline const char *ceph::features::mon::get_feature_name(uint64_t b) { return "nautilus"; } else if (f == FEATURE_OCTOPUS) { return "octopus"; + } else if (f == FEATURE_PACIFIC) { + return "pacific"; } else if (f == FEATURE_RESERVED) { return "reserved"; } @@ -606,6 +614,8 @@ inline mon_feature_t ceph::features::mon::get_feature_by_name(const std::string return FEATURE_NAUTILUS; } else if (n == "octopus") { return FEATURE_OCTOPUS; + } else if (n == "pacific") { + return FEATURE_PACIFIC; } 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 ca57e9b3774..86075d5aaef 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),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] MONMAP FEATURES: persistent: [none] optional: [none] required: [none] AVAILABLE FEATURES: - supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] monmap:persistent:[none] monmap:optional:[none] monmap:required:[none] - available:supported:[kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - available:persistent:[kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + available:supported:[kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + available:persistent:[kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] $ 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' @@ -44,8 +44,8 @@ required: [kraken(1),octopus(32),unknown(4096)] AVAILABLE FEATURES: - supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] $ monmaptool --feature-unset 32 --optional --feature-list /tmp/test.monmap.1234 monmaptool: monmap file /tmp/test.monmap.1234 @@ -55,8 +55,8 @@ required: [kraken(1),octopus(32),unknown(4096)] AVAILABLE FEATURES: - supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors) $ monmaptool --feature-unset 32 --persistent --feature-unset 4096 --optional --feature-list /tmp/test.monmap.1234 @@ -67,8 +67,8 @@ required: [kraken(1)] AVAILABLE FEATURES: - supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors) $ monmaptool --feature-unset kraken --feature-list /tmp/test.monmap.1234 @@ -79,8 +79,8 @@ required: [none] AVAILABLE FEATURES: - supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] - persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32)] + supported: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] + persistent: [kraken(1),luminous(2),mimic(4),osdmap-prune(8),nautilus(16),octopus(32),pacific(64)] monmaptool: writing epoch 0 to /tmp/test.monmap.1234 (1 monitors) $ rm /tmp/test.monmap.1234 -- 2.39.5