diff options
author | Bulat Gayazov <brgayazov@yandex-team.ru> | 2023-07-07 16:01:56 +0000 |
---|---|---|
committer | brgayazov <bulat@ydb.tech> | 2023-07-07 19:01:56 +0300 |
commit | 16e5be364061b70335dd3a382647fbf96ec52686 (patch) | |
tree | ce8e9d168098497a1216ee046493b08e09049e85 | |
parent | 6f6c640f81808c8000f6068a8ec5dbb5af5bce62 (diff) | |
download | ydb-16e5be364061b70335dd3a382647fbf96ec52686.tar.gz |
Fixed bug with progress bar in tools dump/restore
Fixed bug with progress bar in tools dump/restore
Pull Request resolved: #296
-rw-r--r-- | ydb/library/backup/backup.cpp | 2 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/common/recursive_remove.cpp | 24 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/common/recursive_remove.h | 6 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/dump/restore_impl.cpp | 2 |
4 files changed, 22 insertions, 12 deletions
diff --git a/ydb/library/backup/backup.cpp b/ydb/library/backup/backup.cpp index 0919e2ec9a8..d21fd19ac47 100644 --- a/ydb/library/backup/backup.cpp +++ b/ydb/library/backup/backup.cpp @@ -508,7 +508,7 @@ void RemoveClusterDirectory(const TDriver& driver, const TString& path) { void RemoveClusterDirectoryRecursive(const TDriver& driver, const TString& path) { NScheme::TSchemeClient schemeClient(driver); NTable::TTableClient tableClient(driver); - TStatus status = NConsoleClient::RemoveDirectoryRecursive(schemeClient, tableClient, path); + TStatus status = NConsoleClient::RemoveDirectoryRecursive(schemeClient, tableClient, path, {}, true, false); VerifyStatus(status, TStringBuilder() << "RemoveDirectoryRecursive, path: " << path.Quote()); LOG_DEBUG("Directory is removed recursively, path: " << path.Quote()); } diff --git a/ydb/public/lib/ydb_cli/common/recursive_remove.cpp b/ydb/public/lib/ydb_cli/common/recursive_remove.cpp index 07833902f9e..697684b3602 100644 --- a/ydb/public/lib/ydb_cli/common/recursive_remove.cpp +++ b/ydb/public/lib/ydb_cli/common/recursive_remove.cpp @@ -99,7 +99,8 @@ TStatus RemoveDirectoryRecursive( const TString& path, ERecursiveRemovePrompt prompt, const TRemoveDirectorySettings& settings, - bool removeSelf) + bool removeSelf, + bool createProgressBar) { auto recursiveListResult = RecursiveList(schemeClient, path, {}, removeSelf); if (!recursiveListResult.Status.IsSuccess()) { @@ -111,8 +112,11 @@ TStatus RemoveDirectoryRecursive( return TStatus(EStatus::SUCCESS, {}); } } - - TProgressBar bar(recursiveListResult.Entries.size()); + + std::unique_ptr<TProgressBar> bar; + if (createProgressBar) { + bar = std::make_unique<TProgressBar>(recursiveListResult.Entries.size()); + } // output order is: Root, Recursive(children)... // we need to reverse it to delete recursively for (auto it = recursiveListResult.Entries.rbegin(); it != recursiveListResult.Entries.rend(); ++it) { @@ -147,7 +151,9 @@ TStatus RemoveDirectoryRecursive( return TStatus(EStatus::UNSUPPORTED, MakeIssues(TStringBuilder() << "Unsupported entry type: " << entry.Type)); } - bar.AddProgress(1); + if (createProgressBar) { + bar->AddProgress(1); + } } return TStatus(EStatus::SUCCESS, {}); @@ -158,9 +164,10 @@ TStatus RemoveDirectoryRecursive( TTableClient& tableClient, const TString& path, const TRemoveDirectorySettings& settings, - bool removeSelf) + bool removeSelf, + bool createProgressBar) { - return RemoveDirectoryRecursive(schemeClient, &tableClient, nullptr, path, ERecursiveRemovePrompt::Never, settings, removeSelf); + return RemoveDirectoryRecursive(schemeClient, &tableClient, nullptr, path, ERecursiveRemovePrompt::Never, settings, removeSelf, createProgressBar); } TStatus RemoveDirectoryRecursive( @@ -170,9 +177,10 @@ TStatus RemoveDirectoryRecursive( const TString& path, ERecursiveRemovePrompt prompt, const TRemoveDirectorySettings& settings, - bool removeSelf) + bool removeSelf, + bool createProgressBar) { - return RemoveDirectoryRecursive(schemeClient, &tableClient, &topicClient, path, prompt, settings, removeSelf); + return RemoveDirectoryRecursive(schemeClient, &tableClient, &topicClient, path, prompt, settings, removeSelf, createProgressBar); } } diff --git a/ydb/public/lib/ydb_cli/common/recursive_remove.h b/ydb/public/lib/ydb_cli/common/recursive_remove.h index 392da273d73..d72007a4c6c 100644 --- a/ydb/public/lib/ydb_cli/common/recursive_remove.h +++ b/ydb/public/lib/ydb_cli/common/recursive_remove.h @@ -19,7 +19,8 @@ TStatus RemoveDirectoryRecursive( NTable::TTableClient& tableClient, const TString& path, const NScheme::TRemoveDirectorySettings& settings = {}, - bool removeSelf = true); + bool removeSelf = true, + bool createProgressBar = true); TStatus RemoveDirectoryRecursive( NScheme::TSchemeClient& schemeClient, @@ -28,6 +29,7 @@ TStatus RemoveDirectoryRecursive( const TString& path, ERecursiveRemovePrompt prompt, const NScheme::TRemoveDirectorySettings& settings = {}, - bool removeSelf = true); + bool removeSelf = true, + bool createProgressBar = true); } diff --git a/ydb/public/lib/ydb_cli/dump/restore_impl.cpp b/ydb/public/lib/ydb_cli/dump/restore_impl.cpp index 6ee86826fc8..4ef2444e16b 100644 --- a/ydb/public/lib/ydb_cli/dump/restore_impl.cpp +++ b/ydb/public/lib/ydb_cli/dump/restore_impl.cpp @@ -161,7 +161,7 @@ TRestoreResult TRestoreClient::Restore(const TString& fsPath, const TString& dbP switch (entry.Type) { case ESchemeEntryType::Directory: { - auto result = NConsoleClient::RemoveDirectoryRecursive(SchemeClient, TableClient, fullPath); + auto result = NConsoleClient::RemoveDirectoryRecursive(SchemeClient, TableClient, fullPath, {}, true, false); if (!result.IsSuccess()) { return restoreResult; } |