]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: added image_id param to Utils::init_and_open_image
authorRicardo Dias <rdias@suse.com>
Mon, 10 Apr 2017 13:31:54 +0000 (14:31 +0100)
committerRicardo Dias <rdias@suse.com>
Tue, 11 Apr 2017 11:09:41 +0000 (12:09 +0100)
Signed-off-by: Ricardo Dias <rdias@suse.com>
19 files changed:
src/tools/rbd/Utils.cc
src/tools/rbd/Utils.h
src/tools/rbd/action/Bench.cc
src/tools/rbd/action/Children.cc
src/tools/rbd/action/Copy.cc
src/tools/rbd/action/Diff.cc
src/tools/rbd/action/Export.cc
src/tools/rbd/action/Feature.cc
src/tools/rbd/action/Flatten.cc
src/tools/rbd/action/ImageMeta.cc
src/tools/rbd/action/Import.cc
src/tools/rbd/action/Kernel.cc
src/tools/rbd/action/Lock.cc
src/tools/rbd/action/MirrorImage.cc
src/tools/rbd/action/ObjectMap.cc
src/tools/rbd/action/Resize.cc
src/tools/rbd/action/Snap.cc
src/tools/rbd/action/Status.cc
src/tools/rbd/action/Watch.cc

index 82a7bc5189bc3cee46c07bbf55a1c16cbd90dc56..7e122485c2f7db05cd9539bafe76ebe18f58c024 100644 (file)
@@ -525,7 +525,7 @@ int get_pool_journal_names(const po::variables_map &vm,
     librados::Rados rados;
     librados::IoCtx io_ctx;
     librbd::Image image;
-    int r = init_and_open_image(*pool_name, image_name, "", true, &rados,
+    int r = init_and_open_image(*pool_name, image_name, "", "", true, &rados,
                                 &io_ctx, &image);
     if (r < 0) {
       std::cerr << "rbd: failed to open image " << image_name
@@ -861,6 +861,7 @@ int open_image(librados::IoCtx &io_ctx, const std::string &image_name,
 
 int init_and_open_image(const std::string &pool_name,
                         const std::string &image_name,
+                        const std::string &image_id,
                         const std::string &snap_name, bool read_only,
                         librados::Rados *rados, librados::IoCtx *io_ctx,
                         librbd::Image *image) {
@@ -869,7 +870,11 @@ int init_and_open_image(const std::string &pool_name,
     return r;
   }
 
-  r = open_image(*io_ctx, image_name, read_only, image);
+  if (image_id.empty()) {
+    r = open_image(*io_ctx, image_name, read_only, image);
+  } else {
+    r = open_image_by_id(*io_ctx, image_id, read_only, image);
+  }
   if (r < 0) {
     return r;
   }
index ae677e86e033d1b7508b29e9b3f9d936e286af90..e8e8c946cf1b379b8a03115e00fbae25c9c41dc1 100644 (file)
@@ -170,6 +170,7 @@ int open_image(librados::IoCtx &io_ctx, const std::string &image_name,
 
 int init_and_open_image(const std::string &pool_name,
                         const std::string &image_name,
+                        const std::string &image_id,
                         const std::string &snap_name, bool read_only,
                         librados::Rados *rados, librados::IoCtx *io_ctx,
                         librbd::Image *image);
index 757b9f477f210f48ac73abc32a5436d23f0836ce..f40c899fd48957529ea736d620b7432297b83d1a 100644 (file)
@@ -388,7 +388,7 @@ int bench_execute(const po::variables_map &vm, io_type_t bench_io_type) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;
index 8e49eabada05ace1552fcd900e1ddbb79055e347..2008bbec02447b116d626d38192206a737884b91 100644 (file)
@@ -74,7 +74,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 6d4fbceb92447ee3d82326af6bd9282592f4ce55..3b20085dca5d1246b529aba381bb028eb6efb2ed 100644 (file)
@@ -72,7 +72,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 3db9e3047bd230f4321ac2c1dab677589647599f..bbc6c13b2e709fb61c28397c75a458c72bc676b7 100644 (file)
@@ -115,7 +115,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index e41920819b64c8ba0a38ab8b536b99c63cbb879a..1be951028b4aa7c37440018a9ee8e579f04ff228 100644 (file)
@@ -275,7 +275,7 @@ int execute_diff(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -568,7 +568,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index d1b6d1fd50d4d6e352fcd0d748ec0dccb469b834..94a800b76f94e58ae58dd8db21063163294ee48e 100644 (file)
@@ -72,7 +72,7 @@ int execute(const po::variables_map &vm, bool enabled) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 4d231fdacaa67ebb10ab5c9fedee8a034351527d..f592d8685a6a26ccbf2d242d6a525d9eacfdd08e 100644 (file)
@@ -48,7 +48,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 13d9be7ca0d221d111cccc6ec2621da042d9a973..d3147ab0e9ca95b7a622798f11a7133cc73d5363 100644 (file)
@@ -144,7 +144,7 @@ int execute_list(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -186,7 +186,7 @@ int execute_get(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -236,7 +236,7 @@ int execute_set(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -278,7 +278,7 @@ int execute_remove(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 6d0e4bfe06cf042c68c0ff1b22993f70c46f61a1..c76ea1328e2ea58d91c8df223661e54f299cd85b 100644 (file)
@@ -454,7 +454,7 @@ int execute_diff(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 6d7a360685f93f8ff07729327186f326c039354f..3db901d3da75bdc8985e293a6fb04f47f5d175f8 100644 (file)
@@ -227,7 +227,7 @@ static void print_error_description(const char *poolname, const char *imgname,
   if (maperrno == -ENOENT)
     goto done;
 
-  r = utils::init_and_open_image(poolname, imgname, snapname,
+  r = utils::init_and_open_image(poolname, imgname, "", snapname,
                                 true, &rados, &ioctx, &image);
   if (r < 0)
     goto done;
index f083cafb075d1d97960f503bbcbc4e1bec53634e..60d63e8efd21cbc703baee254e86824fad5bdcf6 100644 (file)
@@ -130,7 +130,7 @@ int execute_list(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", true,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", true,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -178,7 +178,7 @@ int execute_add(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -237,7 +237,7 @@ int execute_remove(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index e1b6d40132c00ff883cd5ac1c798188c12036a8a..70cd91f394c7d30867a93c9ecb487966649e949c 100644 (file)
@@ -60,7 +60,7 @@ int execute_enable_disable(const po::variables_map &vm, bool enable,
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -109,7 +109,7 @@ int execute_promote(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -140,7 +140,7 @@ int execute_demote(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -171,7 +171,7 @@ int execute_resync(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -214,7 +214,7 @@ int execute_status(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index dfd387b4d94f598d60ba54d10b1d86403bcb32dc..35e4ca0c5cb95f33a22eb846500aa62db5c95fd1 100644 (file)
@@ -50,7 +50,7 @@ int execute_rebuild(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, false,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -100,7 +100,7 @@ int execute_check(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, false,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, false,
                                 &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index df75d6b29a960e6be4ed7ef27405c8bf2d33e980..4b58a083d14517466d7dc0bb5a50d222fe8d76e2 100644 (file)
@@ -57,7 +57,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, snap_name, false,
+  r = utils::init_and_open_image(pool_name, image_name, "", snap_name, false,
                                  &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
index 9d6d45f64c998f62ac4194d2fc6c52d91f01cc8c..17c7c180db2b8bdf5ad490dc9dc6627056a985bb 100644 (file)
@@ -204,8 +204,8 @@ int execute_list(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", true, &rados,
-                                 &io_ctx, &image);
+  r = utils::init_and_open_image(pool_name, image_name, "", "", true,
+                                 &rados, &io_ctx, &image);
   if (r < 0) {
     return r;
   }
@@ -239,7 +239,7 @@ int execute_create(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -368,7 +368,7 @@ int execute_rollback(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -403,7 +403,7 @@ int execute_protect(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;
@@ -510,7 +510,7 @@ int execute_set_limit(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                 &io_ctx, &image);
   if (r < 0) {
       return r;
@@ -546,7 +546,7 @@ int execute_clear_limit(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                 &io_ctx, &image);
   if (r < 0) {
       return r;
@@ -604,7 +604,7 @@ int execute_rename(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;
index 9d2951e4a29efb5b4cfe2737f275072324063403..7cd438a6ee7a7f96c9e6c5451c9fe3849407f89f 100644 (file)
@@ -106,7 +106,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", true, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", true, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;
index 741dc10ecdc6164574e121c8355e5c942e48a200..4492ee85b07bc671417379b01bd19765ccdef413 100644 (file)
@@ -109,7 +109,7 @@ int execute(const po::variables_map &vm) {
   librados::Rados rados;
   librados::IoCtx io_ctx;
   librbd::Image image;
-  r = utils::init_and_open_image(pool_name, image_name, "", true, &rados,
+  r = utils::init_and_open_image(pool_name, image_name, "", "", true, &rados,
                                  &io_ctx, &image);
   if (r < 0) {
     return r;