From 65b41d075429a56d1849070cf830a7404eff16a9 Mon Sep 17 00:00:00 2001 From: Nikolay Perfilov Date: Wed, 29 Jan 2025 23:25:46 +0300 Subject: [PATCH] Disable CLI update with compiler flag DISABLE_UPDATE (#13919) --- ydb/apps/ydb/commands/ya.make | 11 ++++++++++- ydb/apps/ydb/commands/ydb_cloud_root.cpp | 10 +++++++++- ydb/apps/ydb/commands/ydb_version.cpp | 13 ++++++++++++- ydb/apps/ydb/commands/ydb_version.h | 4 +++- ydb/public/lib/ydb_cli/common/profile_manager.h | 2 -- ydb/public/lib/ydb_cli/common/ya.make | 11 ++++++++++- ydb/public/lib/ydb_cli/common/ydb_updater.cpp | 2 -- 7 files changed, 44 insertions(+), 9 deletions(-) diff --git a/ydb/apps/ydb/commands/ya.make b/ydb/apps/ydb/commands/ya.make index 18d82d4709cc..2525edbf8369 100644 --- a/ydb/apps/ydb/commands/ya.make +++ b/ydb/apps/ydb/commands/ya.make @@ -2,10 +2,19 @@ LIBRARY(commands) SRCS( ydb_cloud_root.cpp - ydb_update.cpp ydb_version.cpp ) +IF (YDB_CERTIFIED) + CFLAGS( + -DDISABLE_UPDATE + ) +ELSE() + SRCS( + ydb_update.cpp + ) +ENDIF () + PEERDIR( ydb/public/sdk/cpp/src/client/iam ydb/public/lib/ydb_cli/commands diff --git a/ydb/apps/ydb/commands/ydb_cloud_root.cpp b/ydb/apps/ydb/commands/ydb_cloud_root.cpp index 44821e57800d..8cc378c85ac6 100644 --- a/ydb/apps/ydb/commands/ydb_cloud_root.cpp +++ b/ydb/apps/ydb/commands/ydb_cloud_root.cpp @@ -1,10 +1,13 @@ #include "ydb_cloud_root.h" -#include "ydb_update.h" #include "ydb_version.h" #include #include + +#ifndef DISABLE_UPDATE +#include "ydb_update.h" #include +#endif #include @@ -56,7 +59,9 @@ void TClientCommandRoot::SetCredentialsGetter(TConfig& config) { TYCloudClientCommandRoot::TYCloudClientCommandRoot(const TString& name, const TClientSettings& settings) : TClientCommandRoot(name, settings) { +#ifndef DISABLE_UPDATE AddCommand(std::make_unique()); +#endif AddCommand(std::make_unique()); } @@ -79,6 +84,7 @@ void TYCloudClientCommandRoot::Config(TConfig& config) { } int TYCloudClientCommandRoot::Run(TConfig& config) { +#ifndef DISABLE_UPDATE if (config.NeedToCheckForUpdate) { TYdbUpdater updater; if (config.ForceVersionCheck) { @@ -95,6 +101,8 @@ int TYCloudClientCommandRoot::Run(TConfig& config) { << colors.OldColor() << Endl; } } +#endif + return TClientCommandRoot::Run(config); } diff --git a/ydb/apps/ydb/commands/ydb_version.cpp b/ydb/apps/ydb/commands/ydb_version.cpp index 535b4b5ef74e..dbf12e86bf62 100644 --- a/ydb/apps/ydb/commands/ydb_version.cpp +++ b/ydb/apps/ydb/commands/ydb_version.cpp @@ -1,12 +1,16 @@ #include "ydb_version.h" -#include +#ifndef DISABLE_UPDATE + #include +#endif #include #include namespace NYdb::NConsoleClient { +const char* VersionResourceName = "version.txt"; + TCommandVersion::TCommandVersion() : TClientCommand("version", {}, "Print YDB CLI version") {} @@ -20,6 +24,8 @@ void TCommandVersion::Config(TConfig& config) { config.Opts->AddLongOption("semantic", "Print semantic version only") .StoreTrue(&Semantic); + +#ifndef DISABLE_UPDATE config.Opts->AddLongOption("check", "Force to check latest version available") .StoreTrue(&config.ForceVersionCheck); config.Opts->AddLongOption("disable-checks", "Disable version checks. CLI will not check whether there is a newer version available") @@ -33,6 +39,8 @@ void TCommandVersion::Config(TConfig& config) { config.Opts->MutuallyExclusive("enable-checks", "semantic"); config.Opts->MutuallyExclusive("enable-checks", "check"); config.Opts->MutuallyExclusive("check", "semantic"); +#endif + } void TCommandVersion::Parse(TConfig& config) { @@ -44,6 +52,7 @@ void TCommandVersion::Parse(TConfig& config) { int TCommandVersion::Run(TConfig& config) { Y_UNUSED(config); +#ifndef DISABLE_UPDATE if (EnableChecks) { TYdbUpdater updater; updater.SetCheckVersion(true); @@ -56,6 +65,8 @@ int TCommandVersion::Run(TConfig& config) { Cout << "Latest version checks disabled" << Endl; return EXIT_SUCCESS; } +#endif + if (!Semantic) { Cout << "YDB CLI "; } diff --git a/ydb/apps/ydb/commands/ydb_version.h b/ydb/apps/ydb/commands/ydb_version.h index ca0584bfb311..6feeb76dfbd0 100644 --- a/ydb/apps/ydb/commands/ydb_version.h +++ b/ydb/apps/ydb/commands/ydb_version.h @@ -5,11 +5,13 @@ namespace NYdb { namespace NConsoleClient { +extern const char* VersionResourceName; + class TCommandVersion : public TClientCommand { public: TCommandVersion(); virtual void Config(TConfig& config) override; - virtual int Run(TConfig& config) override; + virtual int Run(TConfig& config) override; virtual void Parse(TConfig& config) override; private: diff --git a/ydb/public/lib/ydb_cli/common/profile_manager.h b/ydb/public/lib/ydb_cli/common/profile_manager.h index c96df527d9aa..dcbd8b40d7ab 100644 --- a/ydb/public/lib/ydb_cli/common/profile_manager.h +++ b/ydb/public/lib/ydb_cli/common/profile_manager.h @@ -4,8 +4,6 @@ namespace NYdb { namespace NConsoleClient { -extern const char* VersionResourceName; - class IProfile { public: virtual ~IProfile() = default; diff --git a/ydb/public/lib/ydb_cli/common/ya.make b/ydb/public/lib/ydb_cli/common/ya.make index c61b7ea1ce7d..3c25ffef2104 100644 --- a/ydb/public/lib/ydb_cli/common/ya.make +++ b/ydb/public/lib/ydb_cli/common/ya.make @@ -29,10 +29,19 @@ SRCS( sys.cpp tabbed_table.cpp waiting_bar.cpp - ydb_updater.cpp yt.cpp ) +IF (YDB_CERTIFIED) + CFLAGS( + -DDISABLE_UPDATE + ) +ELSE() + SRCS( + ydb_updater.cpp + ) +ENDIF () + PEERDIR( contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3 library/cpp/config diff --git a/ydb/public/lib/ydb_cli/common/ydb_updater.cpp b/ydb/public/lib/ydb_cli/common/ydb_updater.cpp index 98a8ad55ee77..b429ff190d77 100644 --- a/ydb/public/lib/ydb_cli/common/ydb_updater.cpp +++ b/ydb/public/lib/ydb_cli/common/ydb_updater.cpp @@ -18,8 +18,6 @@ namespace NYdb { namespace NConsoleClient { -const char* VersionResourceName = "version.txt"; - TString GetOsArchitecture() { #if defined(_win32_) return "amd64";