From 9264d2508a05eafec4c7f8ec7c34457c6f20197c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 13 Jan 2015 08:32:45 -0800 Subject: [PATCH] common/Formatter: new_formatter -> Formatter::create Also make the default formatter selection more explicit. Signed-off-by: Sage Weil --- src/client/Client.cc | 4 +-- src/common/Formatter.cc | 6 ++-- src/common/Formatter.h | 10 +++++-- src/common/admin_socket.cc | 4 +-- src/common/ceph_context.cc | 4 +-- src/mds/MDS.cc | 4 +-- src/mon/AuthMonitor.cc | 4 +-- src/mon/MDSMonitor.cc | 2 +- src/mon/Monitor.cc | 8 ++--- src/mon/MonmapMonitor.cc | 2 +- src/mon/OSDMonitor.cc | 33 +++++---------------- src/mon/PGMonitor.cc | 2 +- src/os/MemStore.cc | 2 +- src/osd/OSD.cc | 8 ++--- src/osd/ReplicatedPG.cc | 7 ++--- src/osdc/Objecter.cc | 4 +-- src/test/bench/small_io_bench_fs.cc | 2 +- src/test/common/get_command_descriptions.cc | 2 +- src/test/common/test_sloppy_crc_map.cc | 2 +- src/test/common/test_tableformatter.cc | 4 +-- src/test/crush/TestCrushWrapper.cc | 6 ++-- src/test/crush/indep.cc | 2 +- src/test/osd/TestOSDMap.cc | 2 +- 23 files changed, 49 insertions(+), 75 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index bee6a4e3388b1..aeb0485e23f93 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -119,9 +119,7 @@ Client::CommandHook::CommandHook(Client *client) : bool Client::CommandHook::call(std::string command, cmdmap_t& cmdmap, std::string format, bufferlist& out) { - Formatter *f = new_formatter(format); - if (!f) - f = new_formatter("json-pretty"); + Formatter *f = Formatter::create(format); f->open_object_section("result"); m_client->client_lock.Lock(); if (command == "mds_requests") diff --git a/src/common/Formatter.cc b/src/common/Formatter.cc index 51c4c4bac1e5c..0bd6520063ca0 100644 --- a/src/common/Formatter.cc +++ b/src/common/Formatter.cc @@ -63,12 +63,12 @@ Formatter::Formatter() { } Formatter::~Formatter() { } -Formatter * -new_formatter(const std::string &type) +Formatter *Formatter::create(const std::string &type, + const std::string& default_type) { std::string mytype = type; if (mytype == "") - mytype = "json-pretty"; + mytype = default_type; if (mytype == "json") return new JSONFormatter(false); diff --git a/src/common/Formatter.h b/src/common/Formatter.h index 0012f001c64f3..4929a2f091c29 100644 --- a/src/common/Formatter.h +++ b/src/common/Formatter.h @@ -1,3 +1,5 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab #ifndef CEPH_FORMATTER_H #define CEPH_FORMATTER_H @@ -25,6 +27,12 @@ namespace ceph { class Formatter { public: + static Formatter *create(const std::string& type, + const std::string& default_type); + static Formatter *create(const std::string& type) { + return create(type, "json-pretty"); + } + Formatter(); virtual ~Formatter(); @@ -72,8 +80,6 @@ namespace ceph { } }; - Formatter *new_formatter(const std::string &type); - class JSONFormatter : public Formatter { public: JSONFormatter(bool p = false); diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index 24d165671c484..248228bd5405a 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -448,9 +448,7 @@ class HelpHook : public AdminSocketHook { public: HelpHook(AdminSocket *as) : m_as(as) {} bool call(string command, cmdmap_t &cmdmap, string format, bufferlist& out) { - Formatter *f = new_formatter(format); - if (!f) - f = new_formatter("json-pretty"); + Formatter *f = Formatter::create(format); f->open_object_section("help"); for (map::iterator p = m_as->m_help.begin(); p != m_as->m_help.end(); diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index 6775fd03af068..db41420a50f83 100644 --- a/src/common/ceph_context.cc +++ b/src/common/ceph_context.cc @@ -225,9 +225,7 @@ public: void CephContext::do_command(std::string command, cmdmap_t& cmdmap, std::string format, bufferlist *out) { - Formatter *f = new_formatter(format); - if (!f) - f = new_formatter("json-pretty"); + Formatter *f = Formatter::create(format); stringstream ss; for (cmdmap_t::iterator it = cmdmap.begin(); it != cmdmap.end(); ++it) { if (it->first != "prefix") { diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index ffd49db358aa1..e4ea693663309 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -221,9 +221,7 @@ bool MDS::asok_command(string command, cmdmap_t& cmdmap, string format, { dout(1) << "asok_command: " << command << " (starting...)" << dendl; - Formatter *f = new_formatter(format); - if (!f) - f = new_formatter("json-pretty"); + Formatter *f = Formatter::create(format); if (command == "status") { const OSDMap *osdmap = objecter->get_osdmap_read(); diff --git a/src/mon/AuthMonitor.cc b/src/mon/AuthMonitor.cc index 2050a447430ea..c259e85ab0a3f 100644 --- a/src/mon/AuthMonitor.cc +++ b/src/mon/AuthMonitor.cc @@ -557,7 +557,7 @@ bool AuthMonitor::preprocess_command(MMonCommand *m) string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); if (prefix == "auth export") { KeyRing keyring; @@ -685,7 +685,7 @@ bool AuthMonitor::prepare_command(MMonCommand *m) string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); MonSession *session = m->get_session(); if (!session) { diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 399dd2e387006..865b71f586eab 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -647,7 +647,7 @@ bool MDSMonitor::preprocess_command(MMonCommand *m) cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); MonSession *session = m->get_session(); if (!session) { diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 78e2061fe6beb..1c26350b74c4c 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -267,7 +267,7 @@ void Monitor::do_admin_command(string command, cmdmap_t& cmdmap, string format, { Mutex::Locker l(lock); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); string args; for (cmdmap_t::iterator p = cmdmap.begin(); @@ -2371,7 +2371,7 @@ void Monitor::handle_command(MMonCommand *m) cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); if (prefix == "get_command_descriptions") { bufferlist rdata; - Formatter *f = new_formatter("json"); + Formatter *f = Formatter::create("json"); format_command_descriptions(leader_supported_mon_commands, leader_supported_mon_commands_size, f, &rdata); delete f; @@ -2386,7 +2386,7 @@ void Monitor::handle_command(MMonCommand *m) string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); get_str_vec(prefix, fullcmd); module = fullcmd[0]; @@ -2587,7 +2587,7 @@ void Monitor::handle_command(MMonCommand *m) // this must be formatted, in its current form if (!f) - f.reset(new_formatter("json-pretty")); + f.reset(Formatter::create("json-pretty")); f->open_object_section("report"); f->dump_stream("cluster_fingerprint") << fingerprint; f->dump_string("version", ceph_version_to_str()); diff --git a/src/mon/MonmapMonitor.cc b/src/mon/MonmapMonitor.cc index d01fb8238176f..c6b21cb47fc7c 100644 --- a/src/mon/MonmapMonitor.cc +++ b/src/mon/MonmapMonitor.cc @@ -216,7 +216,7 @@ bool MonmapMonitor::preprocess_command(MMonCommand *m) string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); stringstream ds; - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); if (f) { f->open_object_section("monmap"); p->dump(f.get()); diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 97ed96e9d2b97..963185c87af37 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2334,7 +2334,7 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); if (prefix == "osd stat") { osdmap.print_summary(f.get(), ds); @@ -2479,10 +2479,7 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) } string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - boost::scoped_ptr f(new_formatter(format)); - if (!f) - f.reset(new_formatter("json-pretty")); - + boost::scoped_ptr f(Formatter::create(format)); f->open_object_section("osd_location"); f->dump_int("osd", osd); f->dump_stream("ip") << osdmap.get_addr(osd); @@ -2508,9 +2505,7 @@ bool OSDMonitor::preprocess_command(MMonCommand *m) } string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - boost::scoped_ptr f(new_formatter(format)); - if (!f) - f.reset(new_formatter("json-pretty")); + boost::scoped_ptr f(Formatter::create(format)); f->open_object_section("osd_metadata"); r = dump_osd_metadata(osd, f.get(), &ss); if (r < 0) @@ -3007,10 +3002,7 @@ stats_out: prefix == "osd crush rule ls") { string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - Formatter *fp = new_formatter(format); - if (!fp) - fp = new_formatter("json-pretty"); - boost::scoped_ptr f(fp); + boost::scoped_ptr f(Formatter::create(format)); f->open_array_section("rules"); osdmap.crush->list_rules(f.get()); f->close_section(); @@ -3023,10 +3015,7 @@ stats_out: cmd_getval(g_ceph_context, cmdmap, "name", name); string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - Formatter *fp = new_formatter(format); - if (!fp) - fp = new_formatter("json-pretty"); - boost::scoped_ptr f(fp); + boost::scoped_ptr f(Formatter::create(format)); if (name == "") { f->open_array_section("rules"); osdmap.crush->dump_rules(f.get()); @@ -3047,10 +3036,7 @@ stats_out: } else if (prefix == "osd crush dump") { string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - Formatter *fp = new_formatter(format); - if (!fp) - fp = new_formatter("json-pretty"); - boost::scoped_ptr f(fp); + boost::scoped_ptr f(Formatter::create(format)); f->open_object_section("crush_map"); osdmap.crush->dump(f.get()); f->close_section(); @@ -3061,10 +3047,7 @@ stats_out: } else if (prefix == "osd crush show-tunables") { string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("json-pretty")); - Formatter *fp = new_formatter(format); - if (!fp) - fp = new_formatter("json-pretty"); - boost::scoped_ptr f(fp); + boost::scoped_ptr f(Formatter::create(format)); f->open_object_section("crush_map_tunables"); osdmap.crush->dump_tunables(f.get()); f->close_section(); @@ -4102,7 +4085,7 @@ bool OSDMonitor::prepare_command_impl(MMonCommand *m, string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); string prefix; cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 5e73a7b9e529f..87f32d69e28ca 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -1482,7 +1482,7 @@ bool PGMonitor::preprocess_command(MMonCommand *m) string format; cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); - boost::scoped_ptr f(new_formatter(format)); + boost::scoped_ptr f(Formatter::create(format)); if (prefix == "pg stat") { if (f) { diff --git a/src/os/MemStore.cc b/src/os/MemStore.cc index 5c75226e06cc9..7682a513e6346 100644 --- a/src/os/MemStore.cc +++ b/src/os/MemStore.cc @@ -101,7 +101,7 @@ int MemStore::_save() void MemStore::dump_all() { - Formatter *f = new_formatter("json-pretty"); + Formatter *f = Formatter::create("json-pretty"); f->open_object_section("store"); dump(f); f->close_section(); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 31187576fba8b..b7dca97f3a375 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1626,9 +1626,7 @@ public: bool OSD::asok_command(string command, cmdmap_t& cmdmap, string format, ostream& ss) { - Formatter *f = new_formatter(format); - if (!f) - f = new_formatter("json-pretty"); + Formatter *f = Formatter::create(format); if (command == "status") { f->open_object_section("status"); f->dump_stream("cluster_fsid") << superblock.cluster_fsid; @@ -4897,7 +4895,7 @@ void OSD::do_command(Connection *con, ceph_tid_t tid, vector& cmd, buffe } cmd_getval(cct, cmdmap, "format", format); - f.reset(new_formatter(format)); + f.reset(Formatter::create(format)); if (prefix == "version") { if (f) { @@ -8220,7 +8218,7 @@ void OSD::ShardedOpWQ::_process(uint32_t thread_index, heartbeat_handle_d *hb ) } lgeneric_subdout(osd->cct, osd, 30) << "dequeue status: "; - Formatter *f = new_formatter("json"); + Formatter *f = Formatter::create("json"); f->open_object_section("q"); dump(f); f->close_section(); diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index bea2a5f032c5d..ea0babe79eacd 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -603,10 +603,7 @@ int ReplicatedPG::do_command(cmdmap_t cmdmap, ostream& ss, string format; cmd_getval(cct, cmdmap, "format", format); - boost::scoped_ptr f(new_formatter(format)); - // demand that we have a formatter - if (!f) - f.reset(new_formatter("json")); + boost::scoped_ptr f(Formatter::create(format, "json")); string command; cmd_getval(cct, cmdmap, "cmd", command); @@ -12271,7 +12268,7 @@ bool ReplicatedPG::agent_maybe_evict(ObjectContextRef& obc) << ", evict_effort " << agent_state->evict_effort << dendl; dout(30) << "agent_state:\n"; - Formatter *f = new_formatter(""); + Formatter *f = Formatter::create(""); f->open_object_section("agent_state"); agent_state->dump(f); f->close_section(); diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 3e0d2caf9577d..ca472a693888c 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -4225,9 +4225,7 @@ Objecter::RequestStateHook::RequestStateHook(Objecter *objecter) : bool Objecter::RequestStateHook::call(std::string command, cmdmap_t& cmdmap, std::string format, bufferlist& out) { - Formatter *f = new_formatter(format); - if (!f) - f = new_formatter("json-pretty"); + Formatter *f = Formatter::create(format); RWLock::RLocker rl(m_objecter->rwlock); m_objecter->dump_requests(f); f->flush(out); diff --git a/src/test/bench/small_io_bench_fs.cc b/src/test/bench/small_io_bench_fs.cc index 23de6d1605231..f5845855a1d5f 100644 --- a/src/test/bench/small_io_bench_fs.cc +++ b/src/test/bench/small_io_bench_fs.cc @@ -32,7 +32,7 @@ struct MorePrinting : public DetailedStatCollector::AdditionalPrinting { MorePrinting(CephContext *cct) : cct(cct) {} void operator()(std::ostream *out) { bufferlist bl; - Formatter *f = new_formatter("json-pretty"); + Formatter *f = Formatter::create("json-pretty"); cct->get_perfcounters_collection()->dump_formatted(f, 0); f->flush(bl); delete f; diff --git a/src/test/common/get_command_descriptions.cc b/src/test/common/get_command_descriptions.cc index c35e47ba6bdb7..56d5359deaa64 100644 --- a/src/test/common/get_command_descriptions.cc +++ b/src/test/common/get_command_descriptions.cc @@ -44,7 +44,7 @@ static void usage(ostream &out) static void json_print(const MonCommand *mon_commands, int size) { bufferlist rdata; - Formatter *f = new_formatter("json"); + Formatter *f = Formatter::create("json"); Monitor::format_command_descriptions(mon_commands, size, f, &rdata); delete f; string data(rdata.c_str(), rdata.length()); diff --git a/src/test/common/test_sloppy_crc_map.cc b/src/test/common/test_sloppy_crc_map.cc index 2650f4f960d3f..1cdb6e459ded0 100644 --- a/src/test/common/test_sloppy_crc_map.cc +++ b/src/test/common/test_sloppy_crc_map.cc @@ -7,7 +7,7 @@ void dump(const SloppyCRCMap& scm) { - Formatter *f = new_formatter("json-pretty"); + Formatter *f = Formatter::create("json-pretty"); f->open_object_section("map"); scm.dump(f); f->close_section(); diff --git a/src/test/common/test_tableformatter.cc b/src/test/common/test_tableformatter.cc index cf00bbc8ed434..88648f01d73b5 100644 --- a/src/test/common/test_tableformatter.cc +++ b/src/test/common/test_tableformatter.cc @@ -195,7 +195,7 @@ TEST(tableformatter, extendingheader) TEST(tableformatter, stream) { std::stringstream sout; - TableFormatter* formatter = (TableFormatter*) new_formatter("table"); + TableFormatter* formatter = (TableFormatter*) Formatter::create("table"); formatter->dump_stream("integer") << 10; formatter->dump_stream("float") << 10.0; formatter->dump_stream("string") << "string"; @@ -215,7 +215,7 @@ TEST(tableformatter, stream) TEST(tableformatter, multiline_keyval) { std::stringstream sout; - TableFormatter* formatter = (TableFormatter*) new_formatter("table-kv"); + TableFormatter* formatter = (TableFormatter*) Formatter::create("table-kv"); formatter->dump_int("integer", 10); formatter->dump_float("float", 10.0); formatter->dump_string("string", "string"); diff --git a/src/test/crush/TestCrushWrapper.cc b/src/test/crush/TestCrushWrapper.cc index 40ead7f5c9b4e..ac6e06c878e34 100644 --- a/src/test/crush/TestCrushWrapper.cc +++ b/src/test/crush/TestCrushWrapper.cc @@ -845,7 +845,7 @@ TEST(CrushWrapper, dump_rules) { // no ruleset by default { - Formatter *f = new_formatter("json-pretty"); + Formatter *f = Formatter::create("json-pretty"); c->dump_rules(f); stringstream ss; f->flush(ss); @@ -859,7 +859,7 @@ TEST(CrushWrapper, dump_rules) { EXPECT_EQ(0, ruleset); { - Formatter *f = new_formatter("xml"); + Formatter *f = Formatter::create("xml"); c->dump_rules(f); stringstream ss; f->flush(ss); @@ -868,7 +868,7 @@ TEST(CrushWrapper, dump_rules) { } { - Formatter *f = new_formatter("xml"); + Formatter *f = Formatter::create("xml"); c->dump_rule(ruleset, f); stringstream ss; f->flush(ss); diff --git a/src/test/crush/indep.cc b/src/test/crush/indep.cc index dd0b54272dbd5..887791472588f 100644 --- a/src/test/crush/indep.cc +++ b/src/test/crush/indep.cc @@ -68,7 +68,7 @@ CrushWrapper *build_indep_map(CephContext *cct, int num_rack, int num_host, c->set_rule_name(ruleno, "data"); if (false) { - Formatter *f = new_formatter("json-pretty"); + Formatter *f = Formatter::create("json-pretty"); f->open_object_section("crush_map"); c->dump(f); f->close_section(); diff --git a/src/test/osd/TestOSDMap.cc b/src/test/osd/TestOSDMap.cc index a4a62dccc956b..3f784fac99905 100644 --- a/src/test/osd/TestOSDMap.cc +++ b/src/test/osd/TestOSDMap.cc @@ -324,7 +324,7 @@ TEST_F(OSDMapTest, PrimaryAffinity) { /* osdmap.print(cout); - Formatter *f = new_formatter("json-pretty"); + Formatter *f = Formatter::create("json-pretty"); f->open_object_section("CRUSH"); osdmap.crush->dump(f); f->close_section(); -- 2.39.5