]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: PG::Info[::History] dump, test instances
authorSage Weil <sage.weil@dreamhost.com>
Wed, 1 Feb 2012 19:52:08 +0000 (11:52 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Wed, 1 Feb 2012 19:52:08 +0000 (11:52 -0800)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/osd/PG.cc
src/osd/PG.h
src/test/encoding/types.h

index e1dd7539960ba7c926fc925cd43a56039ff1b439..f0b49fca0ca59f5338a1ee361d3e2f29f2b398b5 100644 (file)
@@ -69,6 +69,76 @@ std::string PG::gen_prefix() const
   return out.str();
 }
   
+
+/******* PG::Info *******/
+
+void PG::Info::dump(Formatter *f) const
+{
+  f->dump_stream("pgid") << pgid;
+  f->dump_stream("last_update") << last_update;
+  f->dump_stream("last_complete") << last_complete;
+  f->dump_stream("log_tail") << log_tail;
+  f->dump_stream("last_backfill") << last_backfill;
+  f->dump_stream("purged_snaps") << purged_snaps;
+  f->open_object_section("history");
+  history.dump(f);
+  f->close_section();
+  f->open_object_section("stats");
+  stats.dump(f);
+  f->close_section();
+
+  f->dump_int("empty", is_empty());
+  f->dump_int("dne", dne());
+  f->dump_int("incomplete", is_incomplete());
+}
+
+void PG::Info::generate_test_instances(list<PG::Info*>& o)
+{
+  o.push_back(new Info);
+  o.push_back(new Info);
+  list<History*> h;
+  History::generate_test_instances(h);
+  o.back()->history = *h.back();
+  o.back()->pgid = pg_t(1, 2, -1);
+  o.back()->last_update = eversion_t(3, 4);
+  o.back()->last_complete = eversion_t(5, 6);
+  o.back()->log_tail = eversion_t(7, 8);
+  o.back()->last_backfill = hobject_t(object_t("objname"), "key", 123, 456);
+  list<pg_stat_t*> s;
+  pg_stat_t::generate_test_instances(s);
+  o.back()->stats = *s.back();
+}
+
+/******* PG::Info::History *******/
+
+void PG::Info::History::dump(Formatter *f) const
+{
+  f->dump_int("epoch_created", epoch_created);
+  f->dump_int("last_epoch_started", last_epoch_started);
+  f->dump_int("last_epoch_clean", last_epoch_clean);
+  f->dump_int("last_epoch_split", last_epoch_split);
+  f->dump_int("same_up_since", same_up_since);
+  f->dump_int("same_interval_since", same_interval_since);
+  f->dump_int("same_primary_since", same_primary_since);
+  f->dump_stream("last_scrub") << last_scrub;
+  f->dump_stream("last_scrub_stamp") << last_scrub_stamp;
+}
+
+void PG::Info::History::generate_test_instances(list<PG::Info::History*>& o)
+{
+  o.push_back(new History);
+  o.push_back(new History);
+  o.back()->epoch_created = 1;
+  o.back()->last_epoch_started = 2;
+  o.back()->last_epoch_clean = 3;
+  o.back()->last_epoch_split = 4;
+  o.back()->same_up_since = 5;
+  o.back()->same_interval_since = 6;
+  o.back()->same_primary_since = 7;
+  o.back()->last_scrub = eversion_t(8, 9);
+  o.back()->last_scrub_stamp = utime_t(10, 11);  
+}
+
 /******* PG::Log ********/
 
 void PG::Log::copy_after(const Log &other, eversion_t v) 
index 13f0c642c58752cbfe2797a1c859c1a6ad09860a..20c89607d667e696b5acecaa7d5614e98cb4d31b 100644 (file)
@@ -246,6 +246,8 @@ public:
          ::decode(last_scrub_stamp, bl);
        }
       }
+      void dump(Formatter *f) const;
+      static void generate_test_instances(list<History*>& o);
     } history;
     
     Info()
@@ -303,6 +305,8 @@ public:
        ::decode(snap_trimq, bl);
       }
     }
+    void dump(Formatter *f) const;
+    static void generate_test_instances(list<Info*>& o);
   };
   //WRITE_CLASS_ENCODER(Info::History)
   WRITE_CLASS_ENCODER(Info)
@@ -1857,7 +1861,7 @@ public:
                                    utime_t expire) = 0;
 };
 
-//WRITE_CLASS_ENCODER(PG::Info::History)
+WRITE_CLASS_ENCODER(PG::Info::History)
 WRITE_CLASS_ENCODER(PG::Info)
 WRITE_CLASS_ENCODER(PG::Query)
 WRITE_CLASS_ENCODER(PG::Missing::item)
index 6acc861cb0aa61af1af2c1f02f64e632ae9354cb..b82bf59c7557fa56c3bf38a07d1f955c88795869 100644 (file)
@@ -8,8 +8,8 @@ TYPE(osd_info_t)
 TYPE(OSDMap)
 
 #include "osd/PG.h"
-//TYPE(PG::Info)
-//TYPE(PG::Info::History)
+TYPE(PG::Info)
+TYPE(PG::Info::History)
 //TYPE(PG::Query)
 //TYPE(PG::Missing::item)
 //TYPE(PG::Missing)