From aa1f5984c31b5fab173688804af6fc33c3a02823 Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Thu, 30 May 2024 11:34:40 +0200 Subject: [PATCH] rbd: pass ArgumentModifier to add_snap_id_option() Make ARGUMENT_MODIFIER_DEST synonymous to ARGUMENT_MODIFIER_NONE as there is no use case for a destination snap ID for now. Signed-off-by: Ilya Dryomov --- src/tools/rbd/ArgumentTypes.cc | 16 ++++++++++++++-- src/tools/rbd/ArgumentTypes.h | 3 ++- src/tools/rbd/action/Children.cc | 2 +- src/tools/rbd/action/Device.cc | 8 ++++---- src/tools/rbd/action/Snap.cc | 2 +- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/tools/rbd/ArgumentTypes.cc b/src/tools/rbd/ArgumentTypes.cc index 17a06c805f7da..b479f96158845 100644 --- a/src/tools/rbd/ArgumentTypes.cc +++ b/src/tools/rbd/ArgumentTypes.cc @@ -163,9 +163,21 @@ void add_snap_option(po::options_description *opt, (name.c_str(), po::value(), description.c_str()); } -void add_snap_id_option(po::options_description *opt) { +void add_snap_id_option(po::options_description *opt, + ArgumentModifier modifier) { + std::string name = SNAPSHOT_ID; + std::string description = "snapshot id"; + switch (modifier) { + case ARGUMENT_MODIFIER_NONE: + case ARGUMENT_MODIFIER_DEST: + break; + case ARGUMENT_MODIFIER_SOURCE: + description = "source " + description; + break; + } + opt->add_options() - (SNAPSHOT_ID.c_str(), po::value(), "snapshot id"); + (name.c_str(), po::value(), description.c_str()); } void add_pool_options(boost::program_options::options_description *pos, diff --git a/src/tools/rbd/ArgumentTypes.h b/src/tools/rbd/ArgumentTypes.h index db16b4b3cf01b..cc7c481363693 100644 --- a/src/tools/rbd/ArgumentTypes.h +++ b/src/tools/rbd/ArgumentTypes.h @@ -158,7 +158,8 @@ void add_image_id_option(boost::program_options::options_description *opt, void add_snap_option(boost::program_options::options_description *opt, ArgumentModifier modifier); -void add_snap_id_option(boost::program_options::options_description *opt); +void add_snap_id_option(boost::program_options::options_description *opt, + ArgumentModifier modifier); void add_pool_options(boost::program_options::options_description *pos, boost::program_options::options_description *opt, diff --git a/src/tools/rbd/action/Children.cc b/src/tools/rbd/action/Children.cc index 6881989abb25e..93d4c539c2881 100644 --- a/src/tools/rbd/action/Children.cc +++ b/src/tools/rbd/action/Children.cc @@ -85,7 +85,7 @@ void get_arguments(po::options_description *positional, at::add_image_or_snap_spec_options(positional, options, at::ARGUMENT_MODIFIER_NONE); at::add_image_id_option(options); - at::add_snap_id_option(options); + at::add_snap_id_option(options, at::ARGUMENT_MODIFIER_NONE); options->add_options() ("all,a", po::bool_switch(), "list all children (include trash)"); options->add_options() diff --git a/src/tools/rbd/action/Device.cc b/src/tools/rbd/action/Device.cc index d306e2dacf8ec..ca0caa0b265bd 100644 --- a/src/tools/rbd/action/Device.cc +++ b/src/tools/rbd/action/Device.cc @@ -195,7 +195,7 @@ void get_map_arguments(po::options_description *positional, ("exclusive", po::bool_switch(), "disable automatic exclusive lock transitions") ("quiesce", po::bool_switch(), "use quiesce hooks") ("quiesce-hook", po::value(), "quiesce hook path"); - at::add_snap_id_option(options); + at::add_snap_id_option(options, at::ARGUMENT_MODIFIER_NONE); add_device_specific_options(options); } @@ -215,7 +215,7 @@ void get_unmap_arguments(po::options_description *positional, at::add_namespace_option(options, at::ARGUMENT_MODIFIER_NONE); at::add_image_option(options, at::ARGUMENT_MODIFIER_NONE); at::add_snap_option(options, at::ARGUMENT_MODIFIER_NONE); - at::add_snap_id_option(options); + at::add_snap_id_option(options, at::ARGUMENT_MODIFIER_NONE); add_device_specific_options(options); } @@ -238,7 +238,7 @@ void get_attach_arguments(po::options_description *positional, ("exclusive", po::bool_switch(), "disable automatic exclusive lock transitions") ("quiesce", po::bool_switch(), "use quiesce hooks") ("quiesce-hook", po::value(), "quiesce hook path"); - at::add_snap_id_option(options); + at::add_snap_id_option(options, at::ARGUMENT_MODIFIER_NONE); add_device_specific_options(options); } @@ -258,7 +258,7 @@ void get_detach_arguments(po::options_description *positional, at::add_namespace_option(options, at::ARGUMENT_MODIFIER_NONE); at::add_image_option(options, at::ARGUMENT_MODIFIER_NONE); at::add_snap_option(options, at::ARGUMENT_MODIFIER_NONE); - at::add_snap_id_option(options); + at::add_snap_id_option(options, at::ARGUMENT_MODIFIER_NONE); add_device_specific_options(options); } diff --git a/src/tools/rbd/action/Snap.cc b/src/tools/rbd/action/Snap.cc index cb87735f90521..725319d8d9cd6 100644 --- a/src/tools/rbd/action/Snap.cc +++ b/src/tools/rbd/action/Snap.cc @@ -473,7 +473,7 @@ void get_remove_arguments(po::options_description *positional, po::options_description *options) { at::add_snap_spec_options(positional, options, at::ARGUMENT_MODIFIER_NONE); at::add_image_id_option(options); - at::add_snap_id_option(options); + at::add_snap_id_option(options, at::ARGUMENT_MODIFIER_NONE); at::add_no_progress_option(options); options->add_options()