]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: 'snap ls --all' now shows a trash snapshot's original name
authorJason Dillaman <dillaman@redhat.com>
Mon, 25 Jun 2018 20:46:20 +0000 (16:46 -0400)
committerJason Dillaman <dillaman@redhat.com>
Tue, 24 Jul 2018 12:52:33 +0000 (08:52 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/tools/rbd/action/Snap.cc

index 74a346b875756709aa871aa04240931a356ed351..3e49e1ef8b212cd6e57f074002fad3d128b353a7 100644 (file)
@@ -88,11 +88,16 @@ int do_list_snaps(librbd::Image& image, Formatter *f, bool all_snaps, librados::
       break;
     }
 
+    int get_trash_res = -ENOENT;
+    std::string trash_original_name;
     int get_group_res = -ENOENT;
     librbd::snap_group_namespace_t group_snap;
     if (snap_namespace == RBD_SNAP_NAMESPACE_TYPE_GROUP) {
       get_group_res = image.snap_get_group_namespace(s->id, &group_snap,
                                                      sizeof(group_snap));
+    } else if (snap_namespace == RBD_SNAP_NAMESPACE_TYPE_TRASH) {
+      get_trash_res = image.snap_get_trash_namespace(
+        s->id, &trash_original_name);
     }
 
     if (f) {
@@ -109,7 +114,9 @@ int do_list_snaps(librbd::Image& image, Formatter *f, bool all_snaps, librados::
          f->dump_string("pool", pool_name);
          f->dump_string("group", group_snap.group_name);
          f->dump_string("group snap", group_snap.group_snap_name);
-       }
+       } else if (get_trash_res == 0) {
+          f->dump_string("original_name", trash_original_name);
+        }
        f->close_section();
       }
       f->close_section();
@@ -125,6 +132,8 @@ int do_list_snaps(librbd::Image& image, Formatter *f, bool all_snaps, librados::
          oss << " (" << pool_name << "/"
                      << group_snap.group_name << "@"
                      << group_snap.group_snap_name << ")";
+        } else if (get_trash_res == 0) {
+          oss << " (" << trash_original_name << ")";
         }
 
        t << oss.str();