if (obj_tags) {
f->dump_object("obj_tags", *obj_tags);
}
+ f->open_object_section("transitions");
+ for(auto& [storage_class, transition] : transitions) {
+ f->dump_object(storage_class.c_str(), transition);
+ }
+ f->close_section();
+
+ f->open_object_section("noncur_transitions");
+ for (auto& [storage_class, transition] : noncur_transitions) {
+ f->dump_object(storage_class.c_str(), transition);
+ }
+ f->close_section();
}
void LCFilter::dump(Formatter *f) const
f->dump_object("noncur_expiration", noncur_expiration);
f->dump_object("mp_expiration", mp_expiration);
f->dump_object("filter", filter);
+ f->open_object_section("transitions");
+ for (auto& [storage_class, transition] : transitions) {
+ f->dump_object(storage_class.c_str(), transition);
+ }
+ f->close_section();
+
+ f->open_object_section("noncur_transitions");
+ for (auto& [storage_class, transition] : noncur_transitions) {
+ f->dump_object(storage_class.c_str(), transition);
+ }
+ f->close_section();
f->dump_bool("dm_expiration", dm_expiration);
}
decode(storage_class, bl);
DECODE_FINISH(bl);
}
- void dump(Formatter *f) const;
+ void dump(Formatter *f) const {
+ f->dump_string("days", days);
+ f->dump_string("date", date);
+ f->dump_string("storage_class", storage_class);
+ }
};
WRITE_CLASS_ENCODER(LCTransition)
boost::optional<ceph::real_time> date;
string storage_class;
transition_action() : days(0) {}
+ void dump(Formatter *f) const {
+ if (!date) {
+ f->dump_int("days", days);
+ } else {
+ utime_t ut(*date);
+ f->dump_stream("date") << ut;
+ }
+ }
};
/* XXX why not LCRule? */