/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/filestore/libs/daemon/common/options.cpp
70 строк
2 KB
yegorskii
moved parameters for registration from server to storage config + added registration tests for nbs (#1859)
04 сен 2024, 16:30
Не верифицирован
04 сен 2024, 16:30
2b88e32
Код
Авторство
О чём код?
#include "options.h" #include <library/cpp/getopt/small/last_getopt.h> #include <util/generic/serialized_enum.h> namespace NCloud::NFileStore::NDaemon { using namespace NLastGetopt; //////////////////////////////////////////////////////////////////////////////// TOptionsCommon::TOptionsCommon() { Opts.AddVersionOption(); Opts.AddLongOption("app-config") .RequiredArgument("FILE") .StoreResult(&AppConfig); Opts.AddLongOption("storage-file") .RequiredArgument("FILE") .StoreResult(&StorageConfig); Opts.AddLongOption("features-file") .RequiredArgument("FILE") .StoreResult(&FeaturesConfig); Opts.AddLongOption("node-registration-attempts") .RequiredArgument("NUM") .StoreResult(&NodeRegistrationMaxAttempts); Opts.AddLongOption("node-registration-timeout") .RequiredArgument("DURATION") .StoreResult(&NodeRegistrationTimeout); Opts.AddLongOption("node-registration-error-timeout") .RequiredArgument("DURATION") .StoreResult(&NodeRegistrationErrorTimeout); Opts.AddLongOption("service") .RequiredArgument("{" + GetEnumAllNames<EServiceKind>() + "}") .Handler1T<TString>([this] (const auto& s) { Service = FromString<EServiceKind>(s); }); Opts.AddLongOption("disable-local-service") .StoreTrue(&DisableLocalService); } void TOptionsCommon::Parse(int argc, char** argv) { auto res = std::make_unique<TOptsParseResultException>(&Opts, argc, argv); if (res->FindLongOptParseResult("verbose") != nullptr && !VerboseLevel) { VerboseLevel = "debug"; } if (Service == EServiceKind::Kikimr) { Y_ENSURE(res->FindLongOptParseResult("ic-port"), "'--ic-port' option is required for kikimr service"); Y_ENSURE(res->FindLongOptParseResult("domain"), "'--domain' option is required for kikimr service"); Y_ENSURE(SysConfig && DomainsConfig, "sys-file and domains-file options are required if load-configs-from-cms is not set"); } } } // NCloud::NFileStore::NDaemon