]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cls/rbd: add "migration" trash image source
authorMykola Golub <to.my.trociny@gmail.com>
Wed, 29 Nov 2017 19:05:18 +0000 (21:05 +0200)
committerJason Dillaman <dillaman@redhat.com>
Tue, 14 Aug 2018 22:29:44 +0000 (18:29 -0400)
Signed-off-by: Mykola Golub <mgolub@suse.com>
src/cls/rbd/cls_rbd_types.cc
src/cls/rbd/cls_rbd_types.h

index 00538666ee169b2a9e0b0d6bf0da62a73a5a4f2c..de90bcfcde404e99ac6d1dfaba2d176e6de1bd27 100644 (file)
@@ -670,13 +670,7 @@ void TrashImageSpec::decode(bufferlist::const_iterator &it) {
 }
 
 void TrashImageSpec::dump(Formatter *f) const {
-  switch(source) {
-    case TRASH_IMAGE_SOURCE_USER:
-      f->dump_string("source", "user");
-      break;
-    case TRASH_IMAGE_SOURCE_MIRRORING:
-      f->dump_string("source", "rbd_mirror");
-  }
+  f->dump_stream("source") << source;
   f->dump_string("name", name);
   f->dump_unsigned("deletion_time", deletion_time);
   f->dump_unsigned("deferment_end_time", deferment_end_time);
index 7be7d5171a859e491099fd976f8567a69a26fe04..8b866bac06d62f3756a0983b3234388f1990ef7f 100644 (file)
@@ -513,9 +513,29 @@ struct GroupSnapshot {
 WRITE_CLASS_ENCODER(GroupSnapshot);
 enum TrashImageSource {
   TRASH_IMAGE_SOURCE_USER = 0,
-  TRASH_IMAGE_SOURCE_MIRRORING = 1
+  TRASH_IMAGE_SOURCE_MIRRORING = 1,
+  TRASH_IMAGE_SOURCE_MIGRATION = 2,
 };
 
+inline std::ostream& operator<<(std::ostream& os,
+                                const TrashImageSource& source) {
+  switch (source) {
+  case TRASH_IMAGE_SOURCE_USER:
+    os << "user";
+    break;
+  case TRASH_IMAGE_SOURCE_MIRRORING:
+    os << "mirroring";
+    break;
+  case TRASH_IMAGE_SOURCE_MIGRATION:
+    os << "migration";
+    break;
+  default:
+    os << "unknown (" << static_cast<uint32_t>(source) << ")";
+    break;
+  }
+  return os;
+}
+
 inline void encode(const TrashImageSource &source, bufferlist& bl,
                   uint64_t features=0)
 {