From e96b55fd410c18e319e5a256c02313894895bcf7 Mon Sep 17 00:00:00 2001 From: songweibin Date: Thu, 4 Jan 2018 13:23:28 +0800 Subject: [PATCH] rbd: replace positional_path parameter with arg_index in get_path() Signed-off-by: songweibin --- src/tools/rbd/Utils.cc | 11 +++++++---- src/tools/rbd/Utils.h | 2 +- src/tools/rbd/action/Export.cc | 4 ++-- src/tools/rbd/action/Import.cc | 8 ++++---- src/tools/rbd/action/Journal.cc | 6 +++--- src/tools/rbd/action/MergeDiff.cc | 4 ++-- 6 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/tools/rbd/Utils.cc b/src/tools/rbd/Utils.cc index f631900e3c64..3728d9da8075 100644 --- a/src/tools/rbd/Utils.cc +++ b/src/tools/rbd/Utils.cc @@ -805,11 +805,14 @@ int get_image_size(const boost::program_options::variables_map &vm, } int get_path(const boost::program_options::variables_map &vm, - const std::string &positional_path, std::string *path) { - if (!positional_path.empty()) { - *path = positional_path; - } else if (vm.count(at::PATH)) { + size_t *arg_index, std::string *path) { + if (vm.count(at::PATH)) { *path = vm[at::PATH].as(); + } else { + *path = get_positional_argument(vm, *arg_index); + if (!path->empty()) { + ++(*arg_index); + } } if (path->empty()) { diff --git a/src/tools/rbd/Utils.h b/src/tools/rbd/Utils.h index fe7538315cc4..4c46755303fd 100644 --- a/src/tools/rbd/Utils.h +++ b/src/tools/rbd/Utils.h @@ -161,7 +161,7 @@ int get_image_size(const boost::program_options::variables_map &vm, uint64_t *size); int get_path(const boost::program_options::variables_map &vm, - const std::string &positional_path, std::string *path); + size_t *arg_index, std::string *path); int get_formatter(const boost::program_options::variables_map &vm, argument_types::Format::Formatter *formatter); diff --git a/src/tools/rbd/action/Export.cc b/src/tools/rbd/action/Export.cc index 0fa0eb07ac16..de7d4c75f57d 100644 --- a/src/tools/rbd/action/Export.cc +++ b/src/tools/rbd/action/Export.cc @@ -262,7 +262,7 @@ int execute_diff(const po::variables_map &vm) { } std::string path; - r = utils::get_path(vm, utils::get_positional_argument(vm, 1), &path); + r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } @@ -601,7 +601,7 @@ int execute(const po::variables_map &vm) { } std::string path; - r = utils::get_path(vm, utils::get_positional_argument(vm, 1), &path); + r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } diff --git a/src/tools/rbd/action/Import.cc b/src/tools/rbd/action/Import.cc index c25a93344723..e47eb325f6fd 100644 --- a/src/tools/rbd/action/Import.cc +++ b/src/tools/rbd/action/Import.cc @@ -443,12 +443,12 @@ void get_arguments_diff(po::options_description *positional, int execute_diff(const po::variables_map &vm) { std::string path; - int r = utils::get_path(vm, utils::get_positional_argument(vm, 0), &path); + size_t arg_index = 0; + int r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } - size_t arg_index = 1; std::string pool_name; std::string image_name; std::string snap_name; @@ -906,7 +906,8 @@ void get_arguments(po::options_description *positional, int execute(const po::variables_map &vm) { std::string path; - int r = utils::get_path(vm, utils::get_positional_argument(vm, 0), &path); + size_t arg_index = 0; + int r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } @@ -941,7 +942,6 @@ int execute(const po::variables_map &vm) { sparse_size = vm[at::IMAGE_SPARSE_SIZE].as(); } - size_t arg_index = 1; std::string pool_name = deprecated_pool_name; std::string image_name; std::string snap_name = deprecated_snap_name; diff --git a/src/tools/rbd/action/Journal.cc b/src/tools/rbd/action/Journal.cc index 3485dc1f975a..9b047a4cd935 100644 --- a/src/tools/rbd/action/Journal.cc +++ b/src/tools/rbd/action/Journal.cc @@ -1000,7 +1000,7 @@ int execute_export(const po::variables_map &vm) { } std::string path; - r = utils::get_path(vm, utils::get_positional_argument(vm, 1), &path); + r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } @@ -1032,12 +1032,12 @@ void get_import_arguments(po::options_description *positional, int execute_import(const po::variables_map &vm) { std::string path; - int r = utils::get_path(vm, utils::get_positional_argument(vm, 0), &path); + size_t arg_index = 0; + int r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } - size_t arg_index = 1; std::string pool_name; std::string journal_name; r = utils::get_pool_journal_names(vm, at::ARGUMENT_MODIFIER_DEST, diff --git a/src/tools/rbd/action/MergeDiff.cc b/src/tools/rbd/action/MergeDiff.cc index 8d586e756f24..9be899b08199 100644 --- a/src/tools/rbd/action/MergeDiff.cc +++ b/src/tools/rbd/action/MergeDiff.cc @@ -428,8 +428,8 @@ int execute(const po::variables_map &vm) { } std::string path; - int r = utils::get_path(vm, utils::get_positional_argument(vm, 2), - &path); + size_t arg_index = 2; + int r = utils::get_path(vm, &arg_index, &path); if (r < 0) { return r; } -- 2.47.3