From 472ff02a2e572655fc5b450f0288cd26b0640fce Mon Sep 17 00:00:00 2001 From: Yin Congmin Date: Mon, 27 Dec 2021 11:50:18 +0800 Subject: [PATCH] rbd: rename image-cache invalidate command Rename command image-cache to persistent-cache. Refactoring the code of invalidate command. [ idryomov: error message, incorporate doc and help.t hunks, drop do_persistent_cache_invalidate() ] Signed-off-by: Yin Congmin Signed-off-by: Ilya Dryomov (cherry picked from commit 05bfe10ad9fde533aa728f9aa0cc8a8f155c03c5) --- doc/rbd/rbd-persistent-write-back-cache.rst | 14 +++---- src/test/cli/rbd/help.t | 39 ++++++++++--------- src/tools/rbd/CMakeLists.txt | 2 +- .../{ImageCache.cc => PersistentCache.cc} | 34 ++++++++-------- 4 files changed, 45 insertions(+), 44 deletions(-) rename src/tools/rbd/action/{ImageCache.cc => PersistentCache.cc} (57%) diff --git a/doc/rbd/rbd-persistent-write-back-cache.rst b/doc/rbd/rbd-persistent-write-back-cache.rst index 6bf65f1a0f717..5ac70714e709e 100644 --- a/doc/rbd/rbd-persistent-write-back-cache.rst +++ b/doc/rbd/rbd-persistent-write-back-cache.rst @@ -98,20 +98,20 @@ For example:: hit_bytes: 192 MiB / 66% miss_bytes: 97 MiB -Discard Cache -------------- +Invalidate Cache +---------------- -To discard a cache file with ``rbd``, specify the ``image-cache invalidate`` -option, the pool name and the image name. :: +To invalidate (discard) a cache file with ``rbd``, specify the +``persistent-cache invalidate`` command, the pool name and the image name. :: - rbd image-cache invalidate {pool-name}/{image-name} + rbd persistent-cache invalidate {pool-name}/{image-name} -The command removes the cache metadata of the corresponding image, disable +The command removes the cache metadata of the corresponding image, disables the cache feature and deletes the local cache file if it exists. For example:: - $ rbd image-cache invalidate rbd/foo + $ rbd persistent-cache invalidate rbd/foo .. _section: ../../rados/configuration/ceph-conf/#configuration-sections .. _commands: ../../man/8/rbd#commands diff --git a/src/test/cli/rbd/help.t b/src/test/cli/rbd/help.t index 2b4c14eeacecd..563c5571a4aa0 100644 --- a/src/test/cli/rbd/help.t +++ b/src/test/cli/rbd/help.t @@ -55,7 +55,6 @@ group snap remove (... rm) Remove a snapshot from a group. group snap rename Rename group's snapshot. group snap rollback Rollback group to snapshot. - image-cache invalidate Discard existing / dirty image cache image-meta get Image metadata get the value associated with the key. image-meta list (image-meta ls) Image metadata list keys with values. @@ -124,6 +123,8 @@ object-map rebuild Rebuild an invalid object map. perf image iostat Display image IO statistics. perf image iotop Display a top-like IO monitor. + persistent-cache invalidate Invalidate (discard) existing / dirty + persistent cache. pool init Initialize pool for use by RBD. pool stats Display pool statistics. remove (rm) Delete an image. @@ -1106,23 +1107,6 @@ --group arg group name --snap arg snapshot name - rbd help image-cache invalidate - usage: rbd image-cache invalidate [--pool ] [--namespace ] - [--image ] [--image-id ] - - - Discard existing / dirty image cache - - Positional arguments - image specification - (example: [/[/]]) - - Optional arguments - -p [ --pool ] arg pool name - --namespace arg namespace name - --image arg image name - --image-id arg image id - rbd help image-meta get usage: rbd image-meta get [--pool ] [--namespace ] [--image ] @@ -2123,6 +2107,25 @@ -p [ --pool ] arg pool name --namespace arg namespace name + rbd help persistent-cache invalidate + usage: rbd persistent-cache invalidate + [--pool ] + [--namespace ] + [--image ] [--image-id ] + + + Invalidate (discard) existing / dirty persistent cache. + + Positional arguments + image specification + (example: [/[/]]) + + Optional arguments + -p [ --pool ] arg pool name + --namespace arg namespace name + --image arg image name + --image-id arg image id + rbd help pool init usage: rbd pool init [--pool ] [--force] diff --git a/src/tools/rbd/CMakeLists.txt b/src/tools/rbd/CMakeLists.txt index 6fe867af3611c..5a895354d5365 100644 --- a/src/tools/rbd/CMakeLists.txt +++ b/src/tools/rbd/CMakeLists.txt @@ -26,7 +26,6 @@ set(rbd_srcs action/Flatten.cc action/Ggate.cc action/Group.cc - action/ImageCache.cc action/ImageMeta.cc action/Import.cc action/Info.cc @@ -43,6 +42,7 @@ set(rbd_srcs action/Nbd.cc action/ObjectMap.cc action/Perf.cc + action/PersistentCache.cc action/Pool.cc action/Remove.cc action/Rename.cc diff --git a/src/tools/rbd/action/ImageCache.cc b/src/tools/rbd/action/PersistentCache.cc similarity index 57% rename from src/tools/rbd/action/ImageCache.cc rename to src/tools/rbd/action/PersistentCache.cc index 0edd289312585..75ee8ed7d8976 100644 --- a/src/tools/rbd/action/ImageCache.cc +++ b/src/tools/rbd/action/PersistentCache.cc @@ -14,27 +14,27 @@ namespace rbd { namespace action { -namespace image_cache { +namespace persistent_cache { namespace at = argument_types; namespace po = boost::program_options; -void get_arguments(po::options_description *positional, - po::options_description *options) { - at::add_image_spec_options(positional, options, - at::ARGUMENT_MODIFIER_NONE); +void get_arguments_invalidate(po::options_description *positional, + po::options_description *options) { + at::add_image_spec_options(positional, options, at::ARGUMENT_MODIFIER_NONE); at::add_image_id_option(options); } -int execute_discard(const po::variables_map &vm, - const std::vector &ceph_global_init_args) { +int execute_invalidate(const po::variables_map &vm, + const std::vector &ceph_global_init_args) { size_t arg_index = 0; std::string pool_name; std::string namespace_name; std::string image_name; + std::string snap_name; int r = utils::get_pool_image_snapshot_names( vm, at::ARGUMENT_MODIFIER_NONE, &arg_index, &pool_name, &namespace_name, - &image_name, nullptr, true, utils::SNAPSHOT_PRESENCE_NONE, + &image_name, &snap_name, true, utils::SNAPSHOT_PRESENCE_NONE, utils::SPEC_VALIDATION_NONE); if (r < 0) { return r; @@ -43,29 +43,27 @@ int execute_discard(const po::variables_map &vm, librados::Rados rados; librados::IoCtx io_ctx; librbd::Image image; - r = utils::init_and_open_image(pool_name, namespace_name, image_name, "", - "", false, &rados, &io_ctx, &image); + r = utils::init_and_open_image(pool_name, namespace_name, image_name, "", "", + false, &rados, &io_ctx, &image); if (r < 0) { - std::cerr << "rbd: failed to open image " << image_name << ": " - << cpp_strerror(r) << std::endl; return r; } r = image.invalidate_cache(); if (r < 0) { - std::cerr << "rbd: failed to discard the cache of image " << image_name << ": " + std::cerr << "rbd: invalidating persistent cache failed: " << cpp_strerror(r) << std::endl; return r; } - image.close(); return 0; } -Shell::Action action_discard( - {"image-cache", "invalidate"}, {}, "Discard existing / dirty image cache", "", - &get_arguments, &execute_discard); +Shell::Action action_invalidate( + {"persistent-cache", "invalidate"}, {}, + "Invalidate (discard) existing / dirty persistent cache.", "", + &get_arguments_invalidate, &execute_invalidate); -} // namespace image_cache +} // namespace persistent_cache } // namespace action } // namespace rbd -- 2.39.5