From a274e772f2f74df5e949c2e7a9e694a70627a21f Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 18 Dec 2018 21:34:30 -0600 Subject: [PATCH] monmaptool: add --enable-all-features option Signed-off-by: Sage Weil --- src/test/cli/monmaptool/add-exists.t | 1 + src/test/cli/monmaptool/feature-set-unset-list.t | 1 + src/test/cli/monmaptool/help.t | 1 + src/test/cli/monmaptool/rm-nonexistent.t | 1 + src/tools/monmaptool.cc | 9 +++++++++ 5 files changed, 13 insertions(+) diff --git a/src/test/cli/monmaptool/add-exists.t b/src/test/cli/monmaptool/add-exists.t index daeacbc52c4..ee002e1203d 100644 --- a/src/test/cli/monmaptool/add-exists.t +++ b/src/test/cli/monmaptool/add-exists.t @@ -12,6 +12,7 @@ monmaptool: monmap file mymonmap monmaptool: map already contains mon.foo usage: [--print] [--create [--clobber][--fsid uuid]] + [--enable-all-features] [--generate] [--set-initial-members] [--add name 1.2.3.4:567] [--rm name] [--feature-list [plain|parseable]] diff --git a/src/test/cli/monmaptool/feature-set-unset-list.t b/src/test/cli/monmaptool/feature-set-unset-list.t index 5aec83ec074..4f22d26f518 100644 --- a/src/test/cli/monmaptool/feature-set-unset-list.t +++ b/src/test/cli/monmaptool/feature-set-unset-list.t @@ -30,6 +30,7 @@ $ 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' usage: [--print] [--create [--clobber][--fsid uuid]] + [--enable-all-features] [--generate] [--set-initial-members] [--add name 1.2.3.4:567] [--rm name] [--feature-list [plain|parseable]] diff --git a/src/test/cli/monmaptool/help.t b/src/test/cli/monmaptool/help.t index d6267ef964d..5c5a95cc257 100644 --- a/src/test/cli/monmaptool/help.t +++ b/src/test/cli/monmaptool/help.t @@ -1,5 +1,6 @@ $ monmaptool --help usage: [--print] [--create [--clobber][--fsid uuid]] + [--enable-all-features] [--generate] [--set-initial-members] [--add name 1.2.3.4:567] [--rm name] [--feature-list [plain|parseable]] diff --git a/src/test/cli/monmaptool/rm-nonexistent.t b/src/test/cli/monmaptool/rm-nonexistent.t index 433750d7b24..08e6a328bc6 100644 --- a/src/test/cli/monmaptool/rm-nonexistent.t +++ b/src/test/cli/monmaptool/rm-nonexistent.t @@ -10,6 +10,7 @@ monmaptool: removing doesnotexist monmaptool: map does not contain doesnotexist usage: [--print] [--create [--clobber][--fsid uuid]] + [--enable-all-features] [--generate] [--set-initial-members] [--add name 1.2.3.4:567] [--rm name] [--feature-list [plain|parseable]] diff --git a/src/tools/monmaptool.cc b/src/tools/monmaptool.cc index 7c922822349..c551aa2d62d 100644 --- a/src/tools/monmaptool.cc +++ b/src/tools/monmaptool.cc @@ -24,6 +24,7 @@ void usage() { cout << " usage: [--print] [--create [--clobber][--fsid uuid]]\n" + << " [--enable-all-features]\n" << " [--generate] [--set-initial-members]\n" << " [--add name 1.2.3.4:567] [--rm name]\n" << " [--feature-list [plain|parseable]]\n" @@ -181,6 +182,7 @@ int main(int argc, const char **argv) std::string fn; bool print = false; bool create = false; + bool enable_all_features = false; bool clobber = false; bool modified = false; bool show_features = false; @@ -203,6 +205,8 @@ int main(int argc, const char **argv) print = true; } else if (ceph_argparse_flag(args, i, "--create", (char*)NULL)) { create = true; + } else if (ceph_argparse_flag(args, i, "--enable-all-features", (char*)NULL)) { + enable_all_features = true; } else if (ceph_argparse_flag(args, i, "--clobber", (char*)NULL)) { clobber = true; } else if (ceph_argparse_flag(args, i, "--generate", (char*)NULL)) { @@ -333,6 +337,11 @@ int main(int argc, const char **argv) } modified = true; } + if (enable_all_features) { + // populate persistent features, too + monmap.persistent_features = ceph::features::mon::get_persistent(); + modified = true; + } if (generate) { int r = monmap.build_initial(g_ceph_context, true, cerr); -- 2.39.5