]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: make "group snap create" support quiesce options 38408/head
authorMykola Golub <mgolub@suse.com>
Wed, 9 Dec 2020 05:07:42 +0000 (05:07 +0000)
committerMykola Golub <mgolub@suse.com>
Thu, 10 Dec 2020 06:12:59 +0000 (06:12 +0000)
Signed-off-by: Mykola Golub <mgolub@suse.com>
src/test/cli/rbd/help.t
src/tools/rbd/action/Group.cc

index 3d89f0bd5484f5f0bcd9452066a06d74cdbbb6c7..fcc3cd9126b7dc85d03c47b5fe1421d16a3e3238 100644 (file)
   rbd help group snap create
   usage: rbd group snap create [--pool <pool>] [--namespace <namespace>] 
                                [--group <group>] [--snap <snap>] 
+                               [--skip-quiesce] [--ignore-quiesce-error] 
                                <group-snap-spec> 
   
   Make a snapshot of a group.
   
   Positional arguments
-    <group-snap-spec>    group specification
-                         (example:
-                         [<pool-name>/[<namespace>/]]<group-name>@<snap-name>)
+    <group-snap-spec>       group specification
+                            (example:
+                            [<pool-name>/[<namespace>/]]<group-name>@<snap-name>)
   
   Optional arguments
-    -p [ --pool ] arg    pool name
-    --namespace arg      namespace name
-    --group arg          group name
-    --snap arg           snapshot name
+    -p [ --pool ] arg       pool name
+    --namespace arg         namespace name
+    --group arg             group name
+    --snap arg              snapshot name
+    --skip-quiesce          do not run quiesce hooks
+    --ignore-quiesce-error  ignore quiesce hook error
   
   rbd help group snap list
   usage: rbd group snap list [--format <format>] [--pretty-format] 
index 1f48824ad7e6f5e54d7dfeedd0f62e88a7540200..e4d49bdac73c7da01f6773344ad66cf25f69e063 100644 (file)
@@ -47,7 +47,7 @@ void add_group_option(po::options_description *opt,
 }
 
 void add_prefixed_pool_option(po::options_description *opt,
-                            const std::string &prefix) {
+                              const std::string &prefix) {
   std::string name = prefix + "-" + at::POOL_NAME;
   std::string description = prefix + " pool name";
 
@@ -505,6 +505,12 @@ int execute_group_snap_create(const po::variables_map &vm,
     return r;
   }
 
+  uint32_t flags;
+  r = utils::get_snap_create_flags(vm, &flags);
+  if (r < 0) {
+    return r;
+  }
+
   librados::IoCtx io_ctx;
   librados::Rados rados;
 
@@ -514,7 +520,8 @@ int execute_group_snap_create(const po::variables_map &vm,
   }
 
   librbd::RBD rbd;
-  r = rbd.group_snap_create(io_ctx, group_name.c_str(), snap_name.c_str());
+  r = rbd.group_snap_create2(io_ctx, group_name.c_str(), snap_name.c_str(),
+                             flags);
   if (r < 0) {
     return r;
   }
@@ -821,9 +828,10 @@ void get_list_images_arguments(po::options_description *positional,
 }
 
 void get_group_snap_create_arguments(po::options_description *positional,
-                                 po::options_description *options) {
+                                     po::options_description *options) {
   add_group_spec_options(positional, options, at::ARGUMENT_MODIFIER_NONE,
                          true);
+  at::add_snap_create_options(options);
 }
 
 void get_group_snap_remove_arguments(po::options_description *positional,