diff options
Diffstat (limited to 'src/mongo/db/ftdc/ftdc_mongod.cpp')
-rw-r--r-- | src/mongo/db/ftdc/ftdc_mongod.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/db/ftdc/ftdc_mongod.cpp b/src/mongo/db/ftdc/ftdc_mongod.cpp index 7b4b4468d25..54aff9028bf 100644 --- a/src/mongo/db/ftdc/ftdc_mongod.cpp +++ b/src/mongo/db/ftdc/ftdc_mongod.cpp @@ -64,6 +64,26 @@ Status validateCollectionStatsNamespaces(const std::vector<std::string> value, return Status::OK(); } +Status validateExtraDiagnostics(const std::vector<std::string> value) { + try { + std::string flagArr[] = { "all", "concurrent_access", "data_validation", "invalid_op", "out_of_order", + "panic", "slow_operation", "visibility" }; + + for (const auto& diagFlag : value) { + bool exists = std::find(std::begin(flagArr), std::end(flagArr), diagFlag) != std::end(flagArr); + + if (!exists) { + return Status(ErrorCodes::BadValue, + fmt::format("'{}' is not a valid flag option", diagFlag)); + } + } + } catch (...) { + return exceptionToStatus(); + } + + return Status::OK(); +} + namespace { class FTDCCollectionStatsCollector final : public FTDCCollectorInterface { |