From: Yehuda Sadeh Date: Fri, 15 Jan 2016 23:05:22 +0000 (-0800) Subject: Revert "common/*Formatters: Split Formatters" X-Git-Tag: v10.0.4~152^2^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c145650884f1b115c460ea1e6d64306b9217652a;p=ceph.git Revert "common/*Formatters: Split Formatters" This reverts commit 2b21e3c595c23f409485b8c391d1bd579b13b8e7. Conflicts: src/common/Formatter.cc src/common/JSONFormatter.h src/common/Makefile.am src/common/TableFormatter.h src/common/XMLFormatter.cc src/common/XMLFormatter.h src/rgw/rgw_rest.cc src/test/formatter.cc --- diff --git a/ceph-object-corpus b/ceph-object-corpus index 67383cc060dd..47fbf8c6ae1f 160000 --- a/ceph-object-corpus +++ b/ceph-object-corpus @@ -1 +1 @@ -Subproject commit 67383cc060dd9f90d398eed5a00e31eb70845dd8 +Subproject commit 47fbf8c6ae1fb4fca171ac86e98821a67fd32031 diff --git a/src/common/Formatter.cc b/src/common/Formatter.cc index 8bbb25b6c4d8..345f95df66dc 100644 --- a/src/common/Formatter.cc +++ b/src/common/Formatter.cc @@ -18,10 +18,6 @@ #include "assert.h" #include "Formatter.h" -#include "JSONFormatter.h" -#include "TableFormatter.h" -#include "XMLFormatter.h" -#include "HTMLFormatter.h" #include "common/escape.h" #include @@ -122,4 +118,751 @@ void Formatter::dump_format_unquoted(const char *name, const char *fmt, ...) va_end(ap); } -} // namespace ceph +// ----------------------- + +JSONFormatter::JSONFormatter(bool p) +: m_pretty(p), m_is_pending_string(false) +{ + reset(); +} + +void JSONFormatter::flush(std::ostream& os) +{ + finish_pending_string(); + os << m_ss.str(); + if (m_pretty) + os << "\n"; + m_ss.clear(); + m_ss.str(""); +} + +void JSONFormatter::reset() +{ + m_stack.clear(); + m_ss.clear(); + m_ss.str(""); + m_pending_string.clear(); + m_pending_string.str(""); +} + +void JSONFormatter::print_comma(json_formatter_stack_entry_d& entry) +{ + if (entry.size) { + if (m_pretty) { + m_ss << ",\n"; + for (unsigned i = 1; i < m_stack.size(); i++) + m_ss << " "; + } else { + m_ss << ","; + } + } else if (m_pretty) { + m_ss << "\n"; + for (unsigned i = 1; i < m_stack.size(); i++) + m_ss << " "; + } + if (m_pretty && entry.is_array) + m_ss << " "; +} + +void JSONFormatter::print_quoted_string(const std::string& s) +{ + int len = escape_json_attr_len(s.c_str(), s.size()); + char escaped[len]; + escape_json_attr(s.c_str(), s.size(), escaped); + m_ss << '\"' << escaped << '\"'; +} + +void JSONFormatter::print_name(const char *name) +{ + finish_pending_string(); + if (m_stack.empty()) + return; + struct json_formatter_stack_entry_d& entry = m_stack.back(); + print_comma(entry); + if (!entry.is_array) { + if (m_pretty) { + m_ss << " "; + } + m_ss << "\"" << name << "\""; + if (m_pretty) + m_ss << ": "; + else + m_ss << ':'; + } + ++entry.size; +} + +void JSONFormatter::open_section(const char *name, bool is_array) +{ + print_name(name); + if (is_array) + m_ss << '['; + else + m_ss << '{'; + + json_formatter_stack_entry_d n; + n.is_array = is_array; + m_stack.push_back(n); +} + +void JSONFormatter::open_array_section(const char *name) +{ + open_section(name, true); +} + +void JSONFormatter::open_array_section_in_ns(const char *name, const char *ns) +{ + std::ostringstream oss; + oss << name << " " << ns; + open_section(oss.str().c_str(), true); +} + +void JSONFormatter::open_object_section(const char *name) +{ + open_section(name, false); +} + +void JSONFormatter::open_object_section_in_ns(const char *name, const char *ns) +{ + std::ostringstream oss; + oss << name << " " << ns; + open_section(oss.str().c_str(), false); +} + +void JSONFormatter::close_section() +{ + assert(!m_stack.empty()); + finish_pending_string(); + + struct json_formatter_stack_entry_d& entry = m_stack.back(); + if (m_pretty && entry.size) { + m_ss << "\n"; + for (unsigned i = 1; i < m_stack.size(); i++) + m_ss << " "; + } + m_ss << (entry.is_array ? ']' : '}'); + m_stack.pop_back(); +} + +void JSONFormatter::finish_pending_string() +{ + if (m_is_pending_string) { + print_quoted_string(m_pending_string.str()); + m_pending_string.str(std::string()); + m_is_pending_string = false; + } +} + +void JSONFormatter::dump_unsigned(const char *name, uint64_t u) +{ + print_name(name); + m_ss << u; +} + +void JSONFormatter::dump_int(const char *name, int64_t s) +{ + print_name(name); + m_ss << s; +} + +void JSONFormatter::dump_float(const char *name, double d) +{ + print_name(name); + char foo[30]; + snprintf(foo, sizeof(foo), "%lf", d); + m_ss << foo; +} + +void JSONFormatter::dump_string(const char *name, const std::string& s) +{ + print_name(name); + print_quoted_string(s); +} + +std::ostream& JSONFormatter::dump_stream(const char *name) +{ + print_name(name); + m_is_pending_string = true; + return m_pending_string; +} + +void JSONFormatter::dump_format_va(const char *name, const char *ns, bool quoted, const char *fmt, va_list ap) +{ + char buf[LARGE_SIZE]; + vsnprintf(buf, LARGE_SIZE, fmt, ap); + + print_name(name); + if (quoted) { + print_quoted_string(std::string(buf)); + } else { + m_ss << std::string(buf); + } +} + +int JSONFormatter::get_len() const +{ + return m_ss.str().size(); +} + +void JSONFormatter::write_raw_data(const char *data) +{ + m_ss << data; +} + +const char *XMLFormatter::XML_1_DTD = + ""; + +XMLFormatter::XMLFormatter(bool pretty) +: m_pretty(pretty) +{ + reset(); +} + +void XMLFormatter::flush(std::ostream& os) +{ + finish_pending_string(); + os << m_ss.str(); + if (m_pretty) + os << "\n"; + m_ss.clear(); + m_ss.str(""); +} + +void XMLFormatter::reset() +{ + m_ss.clear(); + m_ss.str(""); + m_pending_string.clear(); + m_pending_string.str(""); + m_sections.clear(); + m_pending_string_name.clear(); +} + +void XMLFormatter::open_object_section(const char *name) +{ + open_section_in_ns(name, NULL, NULL); +} + +void XMLFormatter::open_object_section_with_attrs(const char *name, const FormatterAttrs& attrs) +{ + open_section_in_ns(name, NULL, &attrs); +} + +void XMLFormatter::open_object_section_in_ns(const char *name, const char *ns) +{ + open_section_in_ns(name, ns, NULL); +} + +void XMLFormatter::open_array_section(const char *name) +{ + open_section_in_ns(name, NULL, NULL); +} + +void XMLFormatter::open_array_section_with_attrs(const char *name, const FormatterAttrs& attrs) +{ + open_section_in_ns(name, NULL, &attrs); +} + +void XMLFormatter::open_array_section_in_ns(const char *name, const char *ns) +{ + open_section_in_ns(name, ns, NULL); +} + +void XMLFormatter::close_section() +{ + assert(!m_sections.empty()); + finish_pending_string(); + + std::string section = m_sections.back(); + m_sections.pop_back(); + print_spaces(); + m_ss << ""; + if (m_pretty) + m_ss << "\n"; +} + +void XMLFormatter::dump_unsigned(const char *name, uint64_t u) +{ + std::string e(name); + print_spaces(); + m_ss << "<" << e << ">" << u << ""; + if (m_pretty) + m_ss << "\n"; +} + +void XMLFormatter::dump_int(const char *name, int64_t u) +{ + std::string e(name); + print_spaces(); + m_ss << "<" << e << ">" << u << ""; + if (m_pretty) + m_ss << "\n"; +} + +void XMLFormatter::dump_float(const char *name, double d) +{ + std::string e(name); + print_spaces(); + m_ss << "<" << e << ">" << d << ""; + if (m_pretty) + m_ss << "\n"; +} + +void XMLFormatter::dump_string(const char *name, const std::string& s) +{ + std::string e(name); + print_spaces(); + m_ss << "<" << e << ">" << escape_xml_str(s.c_str()) << ""; + if (m_pretty) + m_ss << "\n"; +} + +void XMLFormatter::dump_string_with_attrs(const char *name, const std::string& s, const FormatterAttrs& attrs) +{ + std::string e(name); + std::string attrs_str; + get_attrs_str(&attrs, attrs_str); + print_spaces(); + m_ss << "<" << e << attrs_str << ">" << escape_xml_str(s.c_str()) << ""; + if (m_pretty) + m_ss << "\n"; +} + +std::ostream& XMLFormatter::dump_stream(const char *name) +{ + print_spaces(); + m_pending_string_name = name; + m_ss << "<" << m_pending_string_name << ">"; + return m_pending_string; +} + +void XMLFormatter::dump_format_va(const char* name, const char *ns, bool quoted, const char *fmt, va_list ap) +{ + char buf[LARGE_SIZE]; + vsnprintf(buf, LARGE_SIZE, fmt, ap); + + std::string e(name); + print_spaces(); + if (ns) { + m_ss << "<" << e << " xmlns=\"" << ns << "\">" << buf << ""; + } else { + m_ss << "<" << e << ">" << escape_xml_str(buf) << ""; + } + + if (m_pretty) + m_ss << "\n"; +} + +int XMLFormatter::get_len() const +{ + return m_ss.str().size(); +} + +void XMLFormatter::write_raw_data(const char *data) +{ + m_ss << data; +} + +void XMLFormatter::get_attrs_str(const FormatterAttrs *attrs, std::string& attrs_str) +{ + std::stringstream attrs_ss; + + for (std::list >::const_iterator iter = attrs->attrs.begin(); + iter != attrs->attrs.end(); ++iter) { + std::pair p = *iter; + attrs_ss << " " << p.first << "=" << "\"" << p.second << "\""; + } + + attrs_str = attrs_ss.str(); +} + +void XMLFormatter::open_section_in_ns(const char *name, const char *ns, const FormatterAttrs *attrs) +{ + print_spaces(); + std::string attrs_str; + + if (attrs) { + get_attrs_str(attrs, attrs_str); + } + + if (ns) { + m_ss << "<" << name << attrs_str << " xmlns=\"" << ns << "\">"; + } else { + m_ss << "<" << name << attrs_str << ">"; + } + if (m_pretty) + m_ss << "\n"; + m_sections.push_back(name); +} + +void XMLFormatter::finish_pending_string() +{ + if (!m_pending_string_name.empty()) { + m_ss << escape_xml_str(m_pending_string.str().c_str()) + << ""; + m_pending_string_name.clear(); + m_pending_string.str(std::string()); + if (m_pretty) { + m_ss << "\n"; + } + } +} + +void XMLFormatter::print_spaces() +{ + finish_pending_string(); + if (m_pretty) { + std::string spaces(m_sections.size(), ' '); + m_ss << spaces; + } +} + +std::string XMLFormatter::escape_xml_str(const char *str) +{ + int len = escape_xml_attr_len(str); + std::vector escaped(len, '\0'); + escape_xml_attr(str, &escaped[0]); + return std::string(&escaped[0]); +} + +TableFormatter::TableFormatter(bool keyval) : m_keyval(keyval) +{ + reset(); +} + +void TableFormatter::flush(std::ostream& os) +{ + finish_pending_string(); + std::vector column_size = m_column_size; + std::vector column_name = m_column_name; + + std::set need_header_set; + + // auto-sizing columns + for (size_t i = 0; i < m_vec.size(); i++) { + for (size_t j = 0; j < m_vec[i].size(); j++) { + column_size.resize(m_vec[i].size()); + column_name.resize(m_vec[i].size()); + if (i > 0) { + if (m_vec[i - 1][j] != m_vec[i][j]) { + // changing row labels require to show the header + need_header_set.insert(i); + column_name[i] = m_vec[i][j].first; + } + } else { + column_name[i] = m_vec[i][j].first; + } + + if (m_vec[i][j].second.length() > column_size[j]) + column_size[j] = m_vec[i][j].second.length(); + if (m_vec[i][j].first.length() > column_size[j]) + column_size[j] = m_vec[i][j].first.length(); + } + } + + bool need_header = false; + if ((column_size.size() == m_column_size.size())) { + for (size_t i = 0; i < column_size.size(); i++) { + if (column_size[i] != m_column_size[i]) { + need_header = true; + break; + } + } + } else { + need_header = true; + } + + if (need_header) { + // first row always needs a header if there wasn't one before + need_header_set.insert(0); + } + + m_column_size = column_size; + for (size_t i = 0; i < m_vec.size(); i++) { + if (i == 0) { + if (need_header_set.count(i)) { + // print the header + if (!m_keyval) { + os << "+"; + for (size_t j = 0; j < m_vec[i].size(); j++) { + for (size_t v = 0; v < m_column_size[j] + 3; v++) + os << "-"; + os << "+"; + } + os << "\n"; + os << "|"; + + for (size_t j = 0; j < m_vec[i].size(); j++) { + os << " "; + std::stringstream fs; + fs << boost::format("%%-%is") % (m_column_size[j] + 2); + os << boost::format(fs.str()) % m_vec[i][j].first; + os << "|"; + } + os << "\n"; + os << "+"; + for (size_t j = 0; j < m_vec[i].size(); j++) { + for (size_t v = 0; v < m_column_size[j] + 3; v++) + os << "-"; + os << "+"; + } + os << "\n"; + } + } + } + // print body + if (!m_keyval) + os << "|"; + for (size_t j = 0; j < m_vec[i].size(); j++) { + if (!m_keyval) + os << " "; + std::stringstream fs; + + if (m_keyval) { + os << "key::"; + os << m_vec[i][j].first; + os << "="; + os << "\""; + os << m_vec[i][j].second; + os << "\" "; + } else { + fs << boost::format("%%-%is") % (m_column_size[j] + 2); + os << boost::format(fs.str()) % m_vec[i][j].second; + os << "|"; + } + } + + os << "\n"; + if (!m_keyval) { + if (i == (m_vec.size() - 1)) { + // print trailer + os << "+"; + for (size_t j = 0; j < m_vec[i].size(); j++) { + for (size_t v = 0; v < m_column_size[j] + 3; v++) + os << "-"; + os << "+"; + } + os << "\n"; + } + } + m_vec[i].clear(); + } + m_vec.clear(); +} + +void TableFormatter::reset() +{ + m_ss.clear(); + m_ss.str(""); + m_section_cnt.clear(); + m_column_size.clear(); + m_section_open = 0; +} + +void TableFormatter::open_object_section(const char *name) +{ + open_section_in_ns(name, NULL, NULL); +} + +void TableFormatter::open_object_section_with_attrs(const char *name, const FormatterAttrs& attrs) +{ + open_section_in_ns(name, NULL, NULL); +} + +void TableFormatter::open_object_section_in_ns(const char *name, const char *ns) +{ + open_section_in_ns(name, NULL, NULL); +} + +void TableFormatter::open_array_section(const char *name) +{ + open_section_in_ns(name, NULL, NULL); +} + +void TableFormatter::open_array_section_with_attrs(const char *name, const FormatterAttrs& attrs) +{ + open_section_in_ns(name, NULL, NULL); +} + +void TableFormatter::open_array_section_in_ns(const char *name, const char *ns) +{ + open_section_in_ns(name, NULL, NULL); +} + +void TableFormatter::open_section_in_ns(const char *name, const char *ns, const FormatterAttrs *attrs) +{ + m_section.push_back(name); + m_section_open++; +} + +void TableFormatter::close_section() +{ + // + m_section_open--; + if (m_section.size()) { + m_section_cnt[m_section.back()] = 0; + m_section.pop_back(); + } +} + +size_t TableFormatter::m_vec_index(const char *name) +{ + std::string key(name); + + size_t i = m_vec.size(); + if (i) + i--; + + // make sure there are vectors to push back key/val pairs + if (!m_vec.size()) + m_vec.resize(1); + + if (m_vec.size()) { + if (m_vec[i].size()) { + if (m_vec[i][0].first == key) { + // start a new column if a key is repeated + m_vec.resize(m_vec.size() + 1); + i++; + } + } + } + + return i; +} + +std::string TableFormatter::get_section_name(const char* name) +{ + std::string t_name = name; + for (size_t i = 0; i < m_section.size(); i++) { + t_name.insert(0, ":"); + t_name.insert(0, m_section[i]); + } + if (m_section_open) { + std::stringstream lss; + lss << t_name; + lss << "["; + lss << m_section_cnt[t_name]++; + lss << "]"; + return lss.str(); + } else { + return t_name; + } +} + +void TableFormatter::dump_unsigned(const char *name, uint64_t u) +{ + finish_pending_string(); + size_t i = m_vec_index(name); + m_ss << u; + m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); + m_ss.clear(); + m_ss.str(""); +} + +void TableFormatter::dump_int(const char *name, int64_t u) +{ + finish_pending_string(); + size_t i = m_vec_index(name); + m_ss << u; + m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); + m_ss.clear(); + m_ss.str(""); +} + +void TableFormatter::dump_float(const char *name, double d) +{ + finish_pending_string(); + size_t i = m_vec_index(name); + m_ss << d; + + m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); + m_ss.clear(); + m_ss.str(""); +} + +void TableFormatter::dump_string(const char *name, const std::string& s) +{ + finish_pending_string(); + size_t i = m_vec_index(name); + m_ss << s; + + m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); + m_ss.clear(); + m_ss.str(""); +} + +void TableFormatter::dump_string_with_attrs(const char *name, const std::string& s, const FormatterAttrs& attrs) +{ + finish_pending_string(); + size_t i = m_vec_index(name); + + std::string attrs_str; + get_attrs_str(&attrs, attrs_str); + m_ss << attrs_str << s; + + m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); + m_ss.clear(); + m_ss.str(""); +} + +void TableFormatter::dump_format_va(const char* name, const char *ns, bool quoted, const char *fmt, va_list ap) +{ + finish_pending_string(); + char buf[LARGE_SIZE]; + vsnprintf(buf, LARGE_SIZE, fmt, ap); + + size_t i = m_vec_index(name); + if (ns) { + m_ss << ns << "." << buf; + } else + m_ss << buf; + + m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); + m_ss.clear(); + m_ss.str(""); +} + +std::ostream& TableFormatter::dump_stream(const char *name) +{ + finish_pending_string(); + // we don't support this + m_pending_name = name; + return m_ss; +} + +int TableFormatter::get_len() const +{ + // we don't know the size until flush is called + return 0; +} + +void TableFormatter::write_raw_data(const char *data) { + // not supported +} + +void TableFormatter::get_attrs_str(const FormatterAttrs *attrs, std::string& attrs_str) +{ + std::stringstream attrs_ss; + + for (std::list >::const_iterator iter = attrs->attrs.begin(); + iter != attrs->attrs.end(); ++iter) { + std::pair p = *iter; + attrs_ss << " " << p.first << "=" << "\"" << p.second << "\""; + } + + attrs_str = attrs_ss.str(); +} + +void TableFormatter::finish_pending_string() +{ + if (m_pending_name.length()) { + std::string ss = m_ss.str(); + m_ss.clear(); + m_ss.str(""); + std::string pending_name = m_pending_name; + m_pending_name = ""; + dump_string(pending_name.c_str(), ss); + } +} +} + diff --git a/src/common/Formatter.h b/src/common/Formatter.h index 11aea283663a..b251aa6f4684 100644 --- a/src/common/Formatter.h +++ b/src/common/Formatter.h @@ -94,5 +94,128 @@ namespace ceph { } }; + class JSONFormatter : public Formatter { + public: + JSONFormatter(bool p = false); + + void flush(std::ostream& os); + void reset(); + virtual void open_array_section(const char *name); + void open_array_section_in_ns(const char *name, const char *ns); + void open_object_section(const char *name); + void open_object_section_in_ns(const char *name, const char *ns); + void close_section(); + void dump_unsigned(const char *name, uint64_t u); + void dump_int(const char *name, int64_t u); + void dump_float(const char *name, double d); + void dump_string(const char *name, const std::string& s); + std::ostream& dump_stream(const char *name); + void dump_format_va(const char *name, const char *ns, bool quoted, const char *fmt, va_list ap); + int get_len() const; + void write_raw_data(const char *data); + + private: + + struct json_formatter_stack_entry_d { + int size; + bool is_array; + json_formatter_stack_entry_d() : size(0), is_array(false) { } + }; + + bool m_pretty; + void open_section(const char *name, bool is_array); + void print_quoted_string(const std::string& s); + void print_name(const char *name); + void print_comma(json_formatter_stack_entry_d& entry); + void finish_pending_string(); + + std::stringstream m_ss, m_pending_string; + std::list m_stack; + bool m_is_pending_string; + }; + + class XMLFormatter : public Formatter { + public: + static const char *XML_1_DTD; + XMLFormatter(bool pretty = false); + + void flush(std::ostream& os); + void reset(); + void open_array_section(const char *name); + void open_array_section_in_ns(const char *name, const char *ns); + void open_object_section(const char *name); + void open_object_section_in_ns(const char *name, const char *ns); + void close_section(); + void dump_unsigned(const char *name, uint64_t u); + void dump_int(const char *name, int64_t u); + void dump_float(const char *name, double d); + void dump_string(const char *name, const std::string& s); + std::ostream& dump_stream(const char *name); + void dump_format_va(const char *name, const char *ns, bool quoted, const char *fmt, va_list ap); + int get_len() const; + void write_raw_data(const char *data); + + /* with attrs */ + void open_array_section_with_attrs(const char *name, const FormatterAttrs& attrs); + void open_object_section_with_attrs(const char *name, const FormatterAttrs& attrs); + void dump_string_with_attrs(const char *name, const std::string& s, const FormatterAttrs& attrs); + private: + void open_section_in_ns(const char *name, const char *ns, const FormatterAttrs *attrs); + void finish_pending_string(); + void print_spaces(); + static std::string escape_xml_str(const char *str); + void get_attrs_str(const FormatterAttrs *attrs, std::string& attrs_str); + + std::stringstream m_ss, m_pending_string; + std::deque m_sections; + bool m_pretty; + std::string m_pending_string_name; + }; + + class TableFormatter : public Formatter { + public: + TableFormatter(bool keyval = false); + + void flush(std::ostream& os); + void reset(); + virtual void open_array_section(const char *name); + void open_array_section_in_ns(const char *name, const char *ns); + void open_object_section(const char *name); + void open_object_section_in_ns(const char *name, const char *ns); + + void open_array_section_with_attrs(const char *name, const FormatterAttrs& attrs); + void open_object_section_with_attrs(const char *name, const FormatterAttrs& attrs); + + void close_section(); + void dump_unsigned(const char *name, uint64_t u); + void dump_int(const char *name, int64_t u); + void dump_float(const char *name, double d); + void dump_string(const char *name, const std::string& s); + void dump_format_va(const char *name, const char *ns, bool quoted, const char *fmt, va_list ap); + void dump_string_with_attrs(const char *name, const std::string& s, const FormatterAttrs& attrs); + std::ostream& dump_stream(const char *name); + + int get_len() const; + void write_raw_data(const char *data); + void get_attrs_str(const FormatterAttrs *attrs, std::string& attrs_str); + + private: + void open_section_in_ns(const char *name, const char *ns, const FormatterAttrs *attrs); + std::vector< std::vector > > m_vec; + std::stringstream m_ss; + size_t m_vec_index(const char* name); + std::string get_section_name(const char* name); + void finish_pending_string(); + std::string m_pending_name; + bool m_keyval; + + int m_section_open; + std::vector< std::string > m_section; + std::map m_section_cnt; + std::vector m_column_size; + std::vector< std::string > m_column_name; + }; + + } #endif diff --git a/src/common/JSONFormatter.cc b/src/common/JSONFormatter.cc deleted file mode 100644 index 8bf5007ba7fb..000000000000 --- a/src/common/JSONFormatter.cc +++ /dev/null @@ -1,226 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2011 New Dream Network - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#define LARGE_SIZE 1024 - -#include "include/int_types.h" - -#include "assert.h" -#include "Formatter.h" -#include "JSONFormatter.h" -#include "common/escape.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// ----------------------- -namespace ceph { - -JSONFormatter::JSONFormatter(bool p) -: m_pretty(p), m_is_pending_string(false) -{ - reset(); -} - -void JSONFormatter::flush(std::ostream& os) -{ - finish_pending_string(); - os << m_ss.str(); - if (m_pretty) - os << "\n"; - m_ss.clear(); - m_ss.str(""); -} - -void JSONFormatter::reset() -{ - m_stack.clear(); - m_ss.clear(); - m_ss.str(""); - m_pending_string.clear(); - m_pending_string.str(""); -} - -void JSONFormatter::print_comma(json_formatter_stack_entry_d& entry) -{ - if (entry.size) { - if (m_pretty) { - m_ss << ",\n"; - for (unsigned i = 1; i < m_stack.size(); i++) - m_ss << " "; - } else { - m_ss << ","; - } - } else if (m_pretty) { - m_ss << "\n"; - for (unsigned i = 1; i < m_stack.size(); i++) - m_ss << " "; - } - if (m_pretty && entry.is_array) - m_ss << " "; -} - -void JSONFormatter::print_quoted_string(const std::string& s) -{ - int len = escape_json_attr_len(s.c_str(), s.size()); - char escaped[len]; - escape_json_attr(s.c_str(), s.size(), escaped); - m_ss << '\"' << escaped << '\"'; -} - -void JSONFormatter::print_name(const char *name) -{ - finish_pending_string(); - if (m_stack.empty()) - return; - struct json_formatter_stack_entry_d& entry = m_stack.back(); - print_comma(entry); - if (!entry.is_array) { - if (m_pretty) { - m_ss << " "; - } - m_ss << "\"" << name << "\""; - if (m_pretty) - m_ss << ": "; - else - m_ss << ':'; - } - ++entry.size; -} - -void JSONFormatter::open_section(const char *name, bool is_array) -{ - print_name(name); - if (is_array) - m_ss << '['; - else - m_ss << '{'; - - json_formatter_stack_entry_d n; - n.is_array = is_array; - m_stack.push_back(n); -} - -void JSONFormatter::open_array_section(const char *name) -{ - open_section(name, true); -} - -void JSONFormatter::open_array_section_in_ns(const char *name, const char *ns) -{ - std::ostringstream oss; - oss << name << " " << ns; - open_section(oss.str().c_str(), true); -} - -void JSONFormatter::open_object_section(const char *name) -{ - open_section(name, false); -} - -void JSONFormatter::open_object_section_in_ns(const char *name, const char *ns) -{ - std::ostringstream oss; - oss << name << " " << ns; - open_section(oss.str().c_str(), false); -} - -void JSONFormatter::close_section() -{ - assert(!m_stack.empty()); - finish_pending_string(); - - struct json_formatter_stack_entry_d& entry = m_stack.back(); - if (m_pretty && entry.size) { - m_ss << "\n"; - for (unsigned i = 1; i < m_stack.size(); i++) - m_ss << " "; - } - m_ss << (entry.is_array ? ']' : '}'); - m_stack.pop_back(); -} - -void JSONFormatter::finish_pending_string() -{ - if (m_is_pending_string) { - print_quoted_string(m_pending_string.str()); - m_pending_string.str(std::string()); - m_is_pending_string = false; - } -} - -void JSONFormatter::dump_unsigned(const char *name, uint64_t u) -{ - print_name(name); - m_ss << u; -} - -void JSONFormatter::dump_int(const char *name, int64_t s) -{ - print_name(name); - m_ss << s; -} - -void JSONFormatter::dump_float(const char *name, double d) -{ - print_name(name); - char foo[30]; - snprintf(foo, sizeof(foo), "%lf", d); - m_ss << foo; -} - -void JSONFormatter::dump_string(const char *name, const std::string& s) -{ - print_name(name); - print_quoted_string(s); -} - -std::ostream& JSONFormatter::dump_stream(const char *name) -{ - print_name(name); - m_is_pending_string = true; - return m_pending_string; -} - -void JSONFormatter::dump_format_va(const char *name, const char *ns, bool quoted, const char *fmt, va_list ap) -{ - char buf[LARGE_SIZE]; - vsnprintf(buf, LARGE_SIZE, fmt, ap); - - print_name(name); - if (quoted) { - print_quoted_string(std::string(buf)); - } else { - m_ss << std::string(buf); - } -} - -int JSONFormatter::get_len() const -{ - return m_ss.str().size(); -} - -void JSONFormatter::write_raw_data(const char *data) -{ - m_ss << data; -} - -} // namespace ceph diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 5f3c6e1f0586..6b93ecbd9e8a 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -45,10 +45,7 @@ libcommon_internal_la_SOURCES = \ common/simple_spin.cc \ common/Thread.cc \ common/Formatter.cc \ - common/XMLFormatter.cc \ common/HTMLFormatter.cc \ - common/JSONFormatter.cc \ - common/TableFormatter.cc \ common/HeartbeatMap.cc \ common/config.cc \ common/utf8.c \ @@ -182,9 +179,6 @@ noinst_HEADERS += \ common/DecayCounter.h \ common/Finisher.h \ common/Formatter.h \ - common/JSONFormatter.h \ - common/TableFormatter.h \ - common/XMLFormatter.h \ common/HTMLFormatter.h \ common/perf_counters.h \ common/OutputDataSocket.h \ diff --git a/src/common/TableFormatter.cc b/src/common/TableFormatter.cc deleted file mode 100644 index 4be4e39077b7..000000000000 --- a/src/common/TableFormatter.cc +++ /dev/null @@ -1,376 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2011 New Dream Network - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#define LARGE_SIZE 1024 - -#include "include/int_types.h" - -#include "assert.h" -#include "Formatter.h" -#include "TableFormatter.h" -#include "common/escape.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// ----------------------- -namespace ceph { -TableFormatter::TableFormatter(bool keyval) : m_keyval(keyval) -{ - reset(); -} - -void TableFormatter::flush(std::ostream& os) -{ - finish_pending_string(); - std::vector column_size = m_column_size; - std::vector column_name = m_column_name; - - std::set need_header_set; - - // auto-sizing columns - for (size_t i = 0; i < m_vec.size(); i++) { - for (size_t j = 0; j < m_vec[i].size(); j++) { - column_size.resize(m_vec[i].size()); - column_name.resize(m_vec[i].size()); - if (i > 0) { - if (m_vec[i - 1][j] != m_vec[i][j]) { - // changing row labels require to show the header - need_header_set.insert(i); - column_name[i] = m_vec[i][j].first; - } - } else { - column_name[i] = m_vec[i][j].first; - } - - if (m_vec[i][j].second.length() > column_size[j]) - column_size[j] = m_vec[i][j].second.length(); - if (m_vec[i][j].first.length() > column_size[j]) - column_size[j] = m_vec[i][j].first.length(); - } - } - - bool need_header = false; - if ((column_size.size() == m_column_size.size())) { - for (size_t i = 0; i < column_size.size(); i++) { - if (column_size[i] != m_column_size[i]) { - need_header = true; - break; - } - } - } else { - need_header = true; - } - - if (need_header) { - // first row always needs a header if there wasn't one before - need_header_set.insert(0); - } - - m_column_size = column_size; - for (size_t i = 0; i < m_vec.size(); i++) { - if (i == 0) { - if (need_header_set.count(i)) { - // print the header - if (!m_keyval) { - os << "+"; - for (size_t j = 0; j < m_vec[i].size(); j++) { - for (size_t v = 0; v < m_column_size[j] + 3; v++) - os << "-"; - os << "+"; - } - os << "\n"; - os << "|"; - - for (size_t j = 0; j < m_vec[i].size(); j++) { - os << " "; - std::stringstream fs; - fs << boost::format("%%-%is") % (m_column_size[j] + 2); - os << boost::format(fs.str()) % m_vec[i][j].first; - os << "|"; - } - os << "\n"; - os << "+"; - for (size_t j = 0; j < m_vec[i].size(); j++) { - for (size_t v = 0; v < m_column_size[j] + 3; v++) - os << "-"; - os << "+"; - } - os << "\n"; - } - } - } - // print body - if (!m_keyval) - os << "|"; - for (size_t j = 0; j < m_vec[i].size(); j++) { - if (!m_keyval) - os << " "; - std::stringstream fs; - - if (m_keyval) { - os << "key::"; - os << m_vec[i][j].first; - os << "="; - os << "\""; - os << m_vec[i][j].second; - os << "\" "; - } else { - fs << boost::format("%%-%is") % (m_column_size[j] + 2); - os << boost::format(fs.str()) % m_vec[i][j].second; - os << "|"; - } - } - - os << "\n"; - if (!m_keyval) { - if (i == (m_vec.size() - 1)) { - // print trailer - os << "+"; - for (size_t j = 0; j < m_vec[i].size(); j++) { - for (size_t v = 0; v < m_column_size[j] + 3; v++) - os << "-"; - os << "+"; - } - os << "\n"; - } - } - m_vec[i].clear(); - } - m_vec.clear(); -} - -void TableFormatter::reset() -{ - m_ss.clear(); - m_ss.str(""); - m_section_cnt.clear(); - m_column_size.clear(); - m_section_open = 0; -} - -void TableFormatter::open_object_section(const char *name) -{ - open_section_in_ns(name, NULL, NULL); -} - -void TableFormatter::open_object_section_with_attrs(const char *name, const FormatterAttrs& attrs) -{ - open_section_in_ns(name, NULL, NULL); -} - -void TableFormatter::open_object_section_in_ns(const char *name, const char *ns) -{ - open_section_in_ns(name, NULL, NULL); -} - -void TableFormatter::open_array_section(const char *name) -{ - open_section_in_ns(name, NULL, NULL); -} - -void TableFormatter::open_array_section_with_attrs(const char *name, const FormatterAttrs& attrs) -{ - open_section_in_ns(name, NULL, NULL); -} - -void TableFormatter::open_array_section_in_ns(const char *name, const char *ns) -{ - open_section_in_ns(name, NULL, NULL); -} - -void TableFormatter::open_section_in_ns(const char *name, const char *ns, const FormatterAttrs *attrs) -{ - m_section.push_back(name); - m_section_open++; -} - -void TableFormatter::close_section() -{ - // - m_section_open--; - if (m_section.size()) { - m_section_cnt[m_section.back()] = 0; - m_section.pop_back(); - } -} - -size_t TableFormatter::m_vec_index(const char *name) -{ - std::string key(name); - - size_t i = m_vec.size(); - if (i) - i--; - - // make sure there are vectors to push back key/val pairs - if (!m_vec.size()) - m_vec.resize(1); - - if (m_vec.size()) { - if (m_vec[i].size()) { - if (m_vec[i][0].first == key) { - // start a new column if a key is repeated - m_vec.resize(m_vec.size() + 1); - i++; - } - } - } - - return i; -} - -std::string TableFormatter::get_section_name(const char* name) -{ - std::string t_name = name; - for (size_t i = 0; i < m_section.size(); i++) { - t_name.insert(0, ":"); - t_name.insert(0, m_section[i]); - } - if (m_section_open) { - std::stringstream lss; - lss << t_name; - lss << "["; - lss << m_section_cnt[t_name]++; - lss << "]"; - return lss.str(); - } else { - return t_name; - } -} - -void TableFormatter::dump_unsigned(const char *name, uint64_t u) -{ - finish_pending_string(); - size_t i = m_vec_index(name); - m_ss << u; - m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); - m_ss.clear(); - m_ss.str(""); -} - -void TableFormatter::dump_int(const char *name, int64_t u) -{ - finish_pending_string(); - size_t i = m_vec_index(name); - m_ss << u; - m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); - m_ss.clear(); - m_ss.str(""); -} - -void TableFormatter::dump_float(const char *name, double d) -{ - finish_pending_string(); - size_t i = m_vec_index(name); - m_ss << d; - - m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); - m_ss.clear(); - m_ss.str(""); -} - -void TableFormatter::dump_string(const char *name, const std::string& s) -{ - finish_pending_string(); - size_t i = m_vec_index(name); - m_ss << s; - - m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); - m_ss.clear(); - m_ss.str(""); -} - -void TableFormatter::dump_string_with_attrs(const char *name, const std::string& s, const FormatterAttrs& attrs) -{ - finish_pending_string(); - size_t i = m_vec_index(name); - - std::string attrs_str; - get_attrs_str(&attrs, attrs_str); - m_ss << attrs_str << s; - - m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); - m_ss.clear(); - m_ss.str(""); -} - -void TableFormatter::dump_format_va(const char* name, const char *ns, bool quoted, const char *fmt, va_list ap) -{ - finish_pending_string(); - char buf[LARGE_SIZE]; - vsnprintf(buf, LARGE_SIZE, fmt, ap); - - size_t i = m_vec_index(name); - if (ns) { - m_ss << ns << "." << buf; - } else - m_ss << buf; - - m_vec[i].push_back(std::make_pair(get_section_name(name), m_ss.str())); - m_ss.clear(); - m_ss.str(""); -} - -std::ostream& TableFormatter::dump_stream(const char *name) -{ - finish_pending_string(); - // we don't support this - m_pending_name = name; - return m_ss; -} - -int TableFormatter::get_len() const -{ - // we don't know the size until flush is called - return 0; -} - -void TableFormatter::write_raw_data(const char *data) { - // not supported -} - -void TableFormatter::get_attrs_str(const FormatterAttrs *attrs, std::string& attrs_str) -{ - std::stringstream attrs_ss; - - for (std::list >::const_iterator iter = attrs->attrs.begin(); - iter != attrs->attrs.end(); ++iter) { - std::pair p = *iter; - attrs_ss << " " << p.first << "=" << "\"" << p.second << "\""; - } - - attrs_str = attrs_ss.str(); -} - -void TableFormatter::finish_pending_string() -{ - if (m_pending_name.length()) { - std::string ss = m_ss.str(); - m_ss.clear(); - m_ss.str(""); - std::string pending_name = m_pending_name; - m_pending_name = ""; - dump_string(pending_name.c_str(), ss); - } -} - -} // namespace ceph diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index 17c8664ce7a9..07a2246e9e55 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -26,7 +26,6 @@ #include "common/safe_io.h" #include "common/version.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include #include diff --git a/src/mds/MDSDaemon.cc b/src/mds/MDSDaemon.cc index 53121811d411..1893dd4da5b1 100644 --- a/src/mds/MDSDaemon.cc +++ b/src/mds/MDSDaemon.cc @@ -23,7 +23,6 @@ #include "common/signal.h" #include "common/ceph_argparse.h" #include "common/errno.h" -#include "common/JSONFormatter.h" #include "msg/Messenger.h" #include "mon/MonClient.h" diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 3889caccd822..ae9aef3c0f93 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -14,8 +14,6 @@ #include "common/debug.h" #include "common/errno.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "messages/MClientRequestForward.h" #include "messages/MMDSMap.h" diff --git a/src/mon/ConfigKeyService.cc b/src/mon/ConfigKeyService.cc index 16fe7dae8e3a..64ed42ffc883 100644 --- a/src/mon/ConfigKeyService.cc +++ b/src/mon/ConfigKeyService.cc @@ -24,7 +24,6 @@ #include "common/config.h" #include "common/cmdparse.h" #include "common/errno.h" -#include "common/JSONFormatter.h" #define dout_subsys ceph_subsys_mon #undef dout_prefix diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index bbe11265b56e..dcfd5121e85d 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -61,8 +61,6 @@ #include "common/errno.h" #include "common/perf_counters.h" #include "common/admin_socket.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "include/color.h" #include "include/ceph_fs.h" diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index 16484d724cec..e0c8039257f5 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -23,7 +23,6 @@ #include "include/assert.h" #include "include/stringify.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #define dout_subsys ceph_subsys_paxos #undef dout_prefix diff --git a/src/mon/Paxos.h b/src/mon/Paxos.h index 0302ccec2485..9b9a732dbbcb 100644 --- a/src/mon/Paxos.h +++ b/src/mon/Paxos.h @@ -121,9 +121,6 @@ e 12v #include "common/perf_counters.h" #include -#include "common/Formatter.h" -#include "common/JSONFormatter.h" - #include "MonitorDBStore.h" #include "mon/MonOpRequest.h" diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index 5345a6c728a8..fb05152e8a41 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -34,8 +34,6 @@ #include "common/blkdev.h" #include "common/linux_version.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #if defined(__FreeBSD__) #define O_DSYNC O_SYNC diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 7675c106892c..2483bd93a656 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -67,8 +67,6 @@ #include "common/perf_counters.h" #include "common/sync_filesystem.h" #include "common/fd.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "HashIndex.h" #include "DBObjectMap.h" #include "KeyValueDB.h" diff --git a/src/os/FileStore.h b/src/os/FileStore.h index 30186aeae4a5..2de2440d6fae 100644 --- a/src/os/FileStore.h +++ b/src/os/FileStore.h @@ -33,8 +33,6 @@ using namespace std; #include "common/Timer.h" #include "common/WorkQueue.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "common/Mutex.h" #include "HashIndex.h" diff --git a/src/os/KeyValueStore.cc b/src/os/KeyValueStore.cc index f34f8ebb63aa..1a633c6af777 100644 --- a/src/os/KeyValueStore.cc +++ b/src/os/KeyValueStore.cc @@ -48,8 +48,6 @@ #include "common/safe_io.h" #include "common/perf_counters.h" #include "common/sync_filesystem.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #ifdef HAVE_KINETIC #include "KineticStore.h" diff --git a/src/os/KeyValueStore.h b/src/os/KeyValueStore.h index 52f63bbebe0e..90e41ee85a17 100644 --- a/src/os/KeyValueStore.h +++ b/src/os/KeyValueStore.h @@ -33,7 +33,6 @@ using namespace std; #include "common/WorkQueue.h" #include "common/Finisher.h" #include "common/fd.h" -#include "common/JSONFormatter.h" #include "common/Mutex.h" #include "GenericObjectMap.h" diff --git a/src/os/MemStore.cc b/src/os/MemStore.cc index 8f59f30d5c50..b0aa2069d32b 100644 --- a/src/os/MemStore.cc +++ b/src/os/MemStore.cc @@ -26,8 +26,6 @@ #include "include/unordered_map.h" #include "include/memory.h" #include "common/errno.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "MemStore.h" #include "include/compat.h" diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index c0b3b254cec1..e2ab4a40152b 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -42,8 +42,6 @@ #include "common/ceph_argparse.h" #include "common/version.h" #include "common/io_priority.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "os/ObjectStore.h" diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 0d031d4873e7..d308186871de 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -19,7 +19,6 @@ #include "common/config.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "common/TextTable.h" #include "include/ceph_features.h" #include "include/str_map.h" diff --git a/src/rbd.cc b/src/rbd.cc index bdf184cf19e6..ff9cf4006453 100755 --- a/src/rbd.cc +++ b/src/rbd.cc @@ -52,8 +52,6 @@ #include "include/util.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" -#include "common/XMLFormatter.h" #include "common/Throttle.h" #if defined(__linux__) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 190e7041902a..af82ecbbf770 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -15,8 +15,6 @@ using namespace std; #include "common/config.h" #include "common/ceph_argparse.h" #include "common/Formatter.h" -#include "common/XMLFormatter.h" -#include "common/JSONFormatter.h" #include "common/errno.h" #include "global/global_init.h" diff --git a/src/rgw/rgw_cors_s3.h b/src/rgw/rgw_cors_s3.h index 406e0b26b3da..3a9616006959 100644 --- a/src/rgw/rgw_cors_s3.h +++ b/src/rgw/rgw_cors_s3.h @@ -22,7 +22,6 @@ #include #include -#include #include "rgw_xml.h" #include "rgw_cors.h" diff --git a/src/rgw/rgw_jsonparser.cc b/src/rgw/rgw_jsonparser.cc index 8531d866e791..b4b709ce8c71 100644 --- a/src/rgw/rgw_jsonparser.cc +++ b/src/rgw/rgw_jsonparser.cc @@ -10,7 +10,6 @@ #include "include/types.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "common/ceph_json.h" #include "rgw_common.h" diff --git a/src/rgw/rgw_log.cc b/src/rgw/rgw_log.cc index 4d362e26d505..795d78787327 100644 --- a/src/rgw/rgw_log.cc +++ b/src/rgw/rgw_log.cc @@ -6,7 +6,6 @@ #include "common/utf8.h" #include "common/OutputDataSocket.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "rgw_log.h" #include "rgw_acl.h" diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 31b8ca7531ea..d5ccb155fbf0 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -5,8 +5,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" -#include "common/XMLFormatter.h" #include "common/HTMLFormatter.h" #include "common/utf8.h" #include "include/str_list.h" diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index fc2538d73dd3..e58122efe15e 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -6,7 +6,6 @@ #include "common/ceph_crypto.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "common/utf8.h" #include "common/ceph_json.h" diff --git a/src/rgw/rgw_swift.cc b/src/rgw/rgw_swift.cc index ec4ae4b80e1f..0a8d373ca9d5 100644 --- a/src/rgw/rgw_swift.cc +++ b/src/rgw/rgw_swift.cc @@ -6,7 +6,6 @@ #include #include "common/ceph_json.h" -#include "common/JSONFormatter.h" #include "rgw_common.h" #include "rgw_swift.h" #include "rgw_swift_auth.h" diff --git a/src/rgw/rgw_swift_auth.cc b/src/rgw/rgw_swift_auth.cc index 5311002ff858..3e94e63a162b 100644 --- a/src/rgw/rgw_swift_auth.cc +++ b/src/rgw/rgw_swift_auth.cc @@ -6,7 +6,6 @@ #include "common/ceph_crypto.h" #include "common/Clock.h" -#include "common/JSONFormatter.h" #include "auth/Crypto.h" diff --git a/src/rocksdb b/src/rocksdb index dcdb0dd29232..fa98456ccbd8 160000 --- a/src/rocksdb +++ b/src/rocksdb @@ -1 +1 @@ -Subproject commit dcdb0dd29232ece43f093c99220b0eea7ead51ff +Subproject commit fa98456ccbd860120127ac2e91a2088fb222606e diff --git a/src/test/bench/small_io_bench.cc b/src/test/bench/small_io_bench.cc index 657d6d0624a1..2b200279c7a4 100644 --- a/src/test/bench/small_io_bench.cc +++ b/src/test/bench/small_io_bench.cc @@ -14,7 +14,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "bencher.h" #include "rados_backend.h" diff --git a/src/test/bench/small_io_bench_dumb.cc b/src/test/bench/small_io_bench_dumb.cc index 913e8c0a1a33..c9d9f51a9db5 100644 --- a/src/test/bench/small_io_bench_dumb.cc +++ b/src/test/bench/small_io_bench_dumb.cc @@ -16,7 +16,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "bencher.h" #include "rados_backend.h" diff --git a/src/test/bench/small_io_bench_fs.cc b/src/test/bench/small_io_bench_fs.cc index bbc5e1e85961..4b273e410a89 100644 --- a/src/test/bench/small_io_bench_fs.cc +++ b/src/test/bench/small_io_bench_fs.cc @@ -14,7 +14,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "bencher.h" #include "rados_backend.h" diff --git a/src/test/bench/small_io_bench_rbd.cc b/src/test/bench/small_io_bench_rbd.cc index 95193adf9b61..ba7071ed3833 100644 --- a/src/test/bench/small_io_bench_rbd.cc +++ b/src/test/bench/small_io_bench_rbd.cc @@ -13,7 +13,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "bencher.h" #include "rbd_backend.h" diff --git a/src/test/bench/tp_bench.cc b/src/test/bench/tp_bench.cc index 55ffdb8e048b..23185a769777 100644 --- a/src/test/bench/tp_bench.cc +++ b/src/test/bench/tp_bench.cc @@ -14,7 +14,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "bencher.h" #include "rados_backend.h" diff --git a/src/test/common/test_tableformatter.cc b/src/test/common/test_tableformatter.cc index c53b69f53652..88648f01d73b 100644 --- a/src/test/common/test_tableformatter.cc +++ b/src/test/common/test_tableformatter.cc @@ -1,6 +1,6 @@ #include "gtest/gtest.h" -#include "common/TableFormatter.h" +#include "common/Formatter.h" #include #include #include diff --git a/src/test/crush/crush.cc b/src/test/crush/crush.cc index 1fafbd337072..c46fa87ab540 100644 --- a/src/test/crush/crush.cc +++ b/src/test/crush/crush.cc @@ -13,7 +13,6 @@ #include "include/stringify.h" #include "common/ceph_argparse.h" -#include "common/JSONFormatter.h" #include "global/global_init.h" #include "global/global_context.h" diff --git a/src/test/encoding/ceph_dencoder.cc b/src/test/encoding/ceph_dencoder.cc index b4ea5ceb566f..7a30ebdb15aa 100644 --- a/src/test/encoding/ceph_dencoder.cc +++ b/src/test/encoding/ceph_dencoder.cc @@ -20,7 +20,6 @@ #include "include/ceph_features.h" #include "common/ceph_argparse.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "common/errno.h" #include "msg/Message.h" #include "include/assert.h" diff --git a/src/test/formatter.cc b/src/test/formatter.cc index cf1e412758a2..3913cc6f1542 100644 --- a/src/test/formatter.cc +++ b/src/test/formatter.cc @@ -13,8 +13,7 @@ */ #include "test/unit.h" -#include "common/JSONFormatter.h" -#include "common/XMLFormatter.h" +#include "common/Formatter.h" #include "common/HTMLFormatter.h" #include diff --git a/src/test/kv_store_bench.h b/src/test/kv_store_bench.h index 9be1e31386b9..d12c5e850c0b 100644 --- a/src/test/kv_store_bench.h +++ b/src/test/kv_store_bench.h @@ -20,7 +20,6 @@ #include "global/global_context.h" #include "common/Mutex.h" #include "common/Cond.h" -#include "common/JSONFormatter.h" #include #include diff --git a/src/test/mon/test_mon_workloadgen.cc b/src/test/mon/test_mon_workloadgen.cc index 36e36ba6c95d..e18906d19314 100644 --- a/src/test/mon/test_mon_workloadgen.cc +++ b/src/test/mon/test_mon_workloadgen.cc @@ -51,7 +51,6 @@ #include "auth/AuthAuthorizeHandler.h" #include "include/uuid.h" #include "include/assert.h" -#include "common/JSONFormatter.h" #include "messages/MOSDBoot.h" #include "messages/MOSDAlive.h" diff --git a/src/test/test_rgw_admin_meta.cc b/src/test/test_rgw_admin_meta.cc index a18f1d689ba2..5b0d6a66bdfb 100644 --- a/src/test/test_rgw_admin_meta.cc +++ b/src/test/test_rgw_admin_meta.cc @@ -30,8 +30,6 @@ extern "C"{ #include "common/code_environment.h" #include "common/ceph_argparse.h" #include "common/Finisher.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "global/global_init.h" #include "rgw/rgw_common.h" #include "rgw/rgw_rados.h" diff --git a/src/tools/ceph-client-debug.cc b/src/tools/ceph-client-debug.cc index e03888ac256a..a84cadcf69db 100644 --- a/src/tools/ceph-client-debug.cc +++ b/src/tools/ceph-client-debug.cc @@ -15,7 +15,7 @@ #include "common/ceph_argparse.h" #include "global/global_init.h" -#include "common/JSONFormatter.h" +#include "common/Formatter.h" #include "common/debug.h" #include "common/errno.h" #include "client/Inode.h" diff --git a/src/tools/ceph_monstore_tool.cc b/src/tools/ceph_monstore_tool.cc index f74f72c75701..c979bcdabe38 100644 --- a/src/tools/ceph_monstore_tool.cc +++ b/src/tools/ceph_monstore_tool.cc @@ -17,7 +17,7 @@ #include #include -#include "common/JSONFormatter.h" +#include "common/Formatter.h" #include "common/errno.h" #include "global/global_init.h" diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index a827a42545d2..11de3bc32b48 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -19,7 +19,6 @@ #include #include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "common/errno.h" #include "common/ceph_argparse.h" diff --git a/src/tools/cephfs/EventOutput.cc b/src/tools/cephfs/EventOutput.cc index a273c511b550..a93c099a918d 100644 --- a/src/tools/cephfs/EventOutput.cc +++ b/src/tools/cephfs/EventOutput.cc @@ -16,7 +16,6 @@ #include #include "common/errno.h" -#include "common/JSONFormatter.h" #include "mds/mdstypes.h" #include "mds/events/EUpdate.h" #include "mds/LogEvent.h" diff --git a/src/tools/cephfs/JournalTool.cc b/src/tools/cephfs/JournalTool.cc index 5a1eae109363..d07d48743e2d 100644 --- a/src/tools/cephfs/JournalTool.cc +++ b/src/tools/cephfs/JournalTool.cc @@ -16,7 +16,6 @@ #include "common/ceph_argparse.h" #include "common/errno.h" -#include "common/JSONFormatter.h" #include "osdc/Journaler.h" #include "mds/mdstypes.h" #include "mds/LogEvent.h" diff --git a/src/tools/cephfs/TableTool.cc b/src/tools/cephfs/TableTool.cc index 7eab1b43cf6f..99a0856d7f82 100644 --- a/src/tools/cephfs/TableTool.cc +++ b/src/tools/cephfs/TableTool.cc @@ -14,8 +14,6 @@ #include "common/ceph_argparse.h" #include "common/errno.h" -#include "common/Formatter.h" -#include "common/JSONFormatter.h" #include "mds/SessionMap.h" #include "mds/InoTable.h" diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index d686c93ec54d..a1a31a647e62 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -26,8 +26,6 @@ using namespace libradosstriper; #include "common/debug.h" #include "common/errno.h" #include "common/Formatter.h" -#include "common/JSONFormatter.h" -#include "common/XMLFormatter.h" #include "common/obj_bencher.h" #include "mds/inode_backtrace.h" #include "auth/Crypto.h"