From: Mykola Golub Date: Thu, 3 Sep 2015 18:12:12 +0000 (+0300) Subject: journal: output operators for journal types X-Git-Tag: v10.0.1~85^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d4a14e0b4d77a565befcdcb177cf1dc9dd712d6e;p=ceph.git journal: output operators for journal types They are going to be used for diagnostic. Signed-off-by: Mykola Golub --- diff --git a/src/cls/journal/cls_journal_types.cc b/src/cls/journal/cls_journal_types.cc index eea018b7f076..58d1ea75fbaa 100644 --- a/src/cls/journal/cls_journal_types.cc +++ b/src/cls/journal/cls_journal_types.cc @@ -145,5 +145,11 @@ std::ostream &operator<<(std::ostream &os, return os; } +std::ostream &operator<<(std::ostream &os, const Client &client) { + os << "[id=" << client.id << ", description=" << client.description + << ", commit_position=" << client.commit_position << "]"; + return os; +} + } // namespace journal } // namespace cls diff --git a/src/cls/journal/cls_journal_types.h b/src/cls/journal/cls_journal_types.h index 2b50ac61413a..54339b998f7e 100644 --- a/src/cls/journal/cls_journal_types.h +++ b/src/cls/journal/cls_journal_types.h @@ -97,6 +97,8 @@ std::ostream &operator<<(std::ostream &os, const EntryPosition &entry_position); std::ostream &operator<<(std::ostream &os, const ObjectSetPosition &object_set_position); +std::ostream &operator<<(std::ostream &os, + const Client &client); } // namespace journal } // namespace cls diff --git a/src/journal/JournalMetadata.cc b/src/journal/JournalMetadata.cc index d1e26df03fbc..0da06ed6be59 100644 --- a/src/journal/JournalMetadata.cc +++ b/src/journal/JournalMetadata.cc @@ -461,4 +461,32 @@ void JournalMetadata::handle_notified(int r) { ldout(m_cct, 10) << "notified journal header update: r=" << r << dendl; } +std::ostream &operator<<(std::ostream &os, + const JournalMetadata::RegisteredClients &clients) { + os << "["; + for (JournalMetadata::RegisteredClients::const_iterator c = clients.begin(); + c != clients.end(); c++) { + os << (c == clients.begin() ? "" : ", " ) << *c; + } + os << "]"; + return os; +} + +std::ostream &operator<<(std::ostream &os, + const JournalMetadata &jm) { + Mutex::Locker locker(jm.m_lock); + os << "[oid=" << jm.m_oid << ", " + << "initialized=" << jm.m_initialized << ", " + << "order=" << (int)jm.m_order << ", " + << "splay_width=" << (int)jm.m_splay_width << ", " + << "minimum_set=" << jm.m_minimum_set << ", " + << "active_set=" << jm.m_active_set << ", " + << "client_id=" << jm.m_client_id << ", " + << "commit_tid=" << jm.m_commit_tid << ", " + << "commit_interval=" << jm.m_commit_interval << ", " + << "commit_position=" << jm.m_commit_position << ", " + << "registered_clients=" << jm.m_registered_clients << "]"; + return os; +} + } // namespace journal diff --git a/src/journal/JournalMetadata.h b/src/journal/JournalMetadata.h index ea477c73911e..76ab695ab1d7 100644 --- a/src/journal/JournalMetadata.h +++ b/src/journal/JournalMetadata.h @@ -304,8 +304,17 @@ private: void handle_watch_notify(uint64_t notify_id, uint64_t cookie); void handle_watch_error(int err); void handle_notified(int r); + + friend std::ostream &operator<<(std::ostream &os, + const JournalMetadata &journal_metadata); }; +std::ostream &operator<<(std::ostream &os, + const JournalMetadata::RegisteredClients &clients); + +std::ostream &operator<<(std::ostream &os, + const JournalMetadata &journal_metadata); + } // namespace journal #endif // CEPH_JOURNAL_JOURNAL_METADATA_H diff --git a/src/journal/Journaler.cc b/src/journal/Journaler.cc index eaa4ce15d9cf..d758690881aa 100644 --- a/src/journal/Journaler.cc +++ b/src/journal/Journaler.cc @@ -191,4 +191,16 @@ void Journaler::create_player(ReplayHandler *replay_handler) { replay_handler); } +std::ostream &operator<<(std::ostream &os, + const Journaler &journaler) { + os << "[metadata="; + if (journaler.m_metadata != NULL) { + os << *journaler.m_metadata; + } else { + os << "NULL"; + } + os << "]"; + return os; +} + } // namespace journal diff --git a/src/journal/Journaler.h b/src/journal/Journaler.h index 4b4959a87983..676e994a5df7 100644 --- a/src/journal/Journaler.h +++ b/src/journal/Journaler.h @@ -66,8 +66,14 @@ private: JournalTrimmer *m_trimmer; void create_player(ReplayHandler *replay_handler); + + friend std::ostream &operator<<(std::ostream &os, + const Journaler &journaler); }; +std::ostream &operator<<(std::ostream &os, + const Journaler &journaler); + } // namespace journal #endif // CEPH_JOURNAL_JOURNALER_H