summaryrefslogtreecommitdiff
path: root/src/mongo/tools
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2019-02-21 18:39:30 +0000
committerSara Golemon <sara.golemon@mongodb.com>2019-02-22 19:07:37 +0000
commitf78470edc935205c9d5b5c5253ff210d6f4471d3 (patch)
treebfbe14086c773b62dcbaad7d2c156b93edc7a486 /src/mongo/tools
parentbd5bd0eff3fc852d55760ebb4c7ac62e394e8ce6 (diff)
downloadmongo-f78470edc935205c9d5b5c5253ff210d6f4471d3.tar.gz
SERVER-39724 Migrate embedded options to IDL
Diffstat (limited to 'src/mongo/tools')
-rw-r--r--src/mongo/tools/SConscript1
-rw-r--r--src/mongo/tools/mongoebench_main.cpp1
-rw-r--r--src/mongo/tools/mongoebench_options.cpp27
-rw-r--r--src/mongo/tools/mongoebench_options.idl66
4 files changed, 68 insertions, 27 deletions
diff --git a/src/mongo/tools/SConscript b/src/mongo/tools/SConscript
index e27673dd9b4..5daad550c6b 100644
--- a/src/mongo/tools/SConscript
+++ b/src/mongo/tools/SConscript
@@ -40,6 +40,7 @@ mongoebench = yamlEnv.Program(
'mongoebench_main.cpp',
'mongoebench_options.cpp',
'mongoebench_options_init.cpp',
+ env.Idlc('mongoebench_options.idl')[0],
],
LIBDEPS=[
'$BUILD_DIR/mongo/db/dbdirectclient',
diff --git a/src/mongo/tools/mongoebench_main.cpp b/src/mongo/tools/mongoebench_main.cpp
index f9928cff3e0..89feb7cfb55 100644
--- a/src/mongo/tools/mongoebench_main.cpp
+++ b/src/mongo/tools/mongoebench_main.cpp
@@ -42,6 +42,7 @@
#include "mongo/scripting/bson_template_evaluator.h"
#include "mongo/shell/bench.h"
#include "mongo/tools/mongoebench_options.h"
+#include "mongo/tools/mongoebench_options_gen.h"
#include "mongo/util/exit.h"
#include "mongo/util/log.h"
#include "mongo/util/options_parser/option_section.h"
diff --git a/src/mongo/tools/mongoebench_options.cpp b/src/mongo/tools/mongoebench_options.cpp
index 755c23251f6..501966bad54 100644
--- a/src/mongo/tools/mongoebench_options.cpp
+++ b/src/mongo/tools/mongoebench_options.cpp
@@ -47,33 +47,6 @@ namespace mongo {
MongoeBenchGlobalParams mongoeBenchGlobalParams;
-Status addMongoeBenchOptions(moe::OptionSection* options) {
- options->addOptionChaining("help", "help", moe::Switch, "show this usage information");
-
- options
- ->addOptionChaining(
- "benchRunConfigFile", "benchRunConfigFile", moe::String, "config file for benchRun")
- .hidden()
- .positional(1, 1);
-
- options->addOptionChaining("seed", "seed", moe::Long, "random seed to use");
-
- options
- ->addOptionChaining(
- "threads", "threads,t", moe::Unsigned, "number of benchRun worker threads")
- .setDefault(moe::Value(1U));
-
- options->addOptionChaining("time", "time,s", moe::Double, "seconds to run benchRun for")
- .setDefault(moe::Value(1.0));
-
- options->addOptionChaining("output",
- "output,o",
- moe::String,
- "output file for benchRun stats (defaults to <dbPath>/perf.json)");
-
- return Status::OK();
-}
-
void printMongoeBenchHelp(std::ostream* out) {
*out << "Usage: mongoebench <config file> [options]" << std::endl;
*out << moe::startupOptions.helpString();
diff --git a/src/mongo/tools/mongoebench_options.idl b/src/mongo/tools/mongoebench_options.idl
new file mode 100644
index 00000000000..b86795f8790
--- /dev/null
+++ b/src/mongo/tools/mongoebench_options.idl
@@ -0,0 +1,66 @@
+# Copyright (C) 2019-present MongoDB, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the Server Side Public License, version 1,
+# as published by MongoDB, Inc.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# Server Side Public License for more details.
+#
+# You should have received a copy of the Server Side Public License
+# along with this program. If not, see
+# <http://www.mongodb.com/licensing/server-side-public-license>.
+#
+# As a special exception, the copyright holders give permission to link the
+# code of portions of this program with the OpenSSL library under certain
+# conditions as described in each individual source file and distribute
+# linked combinations including the program with the OpenSSL library. You
+# must comply with the Server Side Public License in all respects for
+# all of the code used other than as permitted herein. If you modify file(s)
+# with this exception, you may extend this exception to your version of the
+# file(s), but you are not obligated to do so. If you do not wish to do so,
+# delete this exception statement from your version. If you delete this
+# exception statement from all source files in the program, then also delete
+# it in the license file.
+#
+
+global:
+ cpp_namespace: "mongo"
+ configs:
+ source: [ cli, ini ]
+ initializer:
+ register: addMongoeBenchOptions
+
+configs:
+ help:
+ description: 'Show this usage information'
+ arg_vartype: Switch
+
+ benchRunConfigFile:
+ description: 'Config file for benchRun'
+ arg_vartype: String
+ hidden: true
+ positional: 1
+
+ seed:
+ description: 'Random seed to use'
+ arg_vartype: Long
+
+ threads:
+ description: 'Number of benchRun worker threads'
+ single_name: t
+ arg_vartype: Unsigned
+ default: { expr: '1U' }
+
+ time:
+ description: 'Seconds to run benchRun for'
+ single_name: s
+ arg_vartype: Double
+ default: 1.0
+
+ output:
+ description: 'Output file for benchRun stats (defaults to <dbPath>/perf.json)'
+ single_name: o
+ arg_vartype: String