From e2d1bf317c0ddf25ddd305aa8f3c6f09118f799c Mon Sep 17 00:00:00 2001 From: Harisuddin Mohamed Isa Date: Thu, 6 Feb 2020 17:32:38 +0800 Subject: PEL: Print Failing MTMS section into JSON Remove any trailing whitespace for serial number. "Failing MTMS": { "Section Version": "1", "Sub-section type": "0", "Created by": "0x4552", "Machine Type Model": "OPWR-131", "Serial Number": "1318ABA" }, Testing: Manually run peltool and verified output. All unit tests passed. Signed-off-by: Harisuddin Mohamed Isa Change-Id: I7a05790bdf406ef6d7946ffae831a45ee6dd5cda --- extensions/openpower-pels/failing_mtms.cpp | 15 +++++++++++++++ extensions/openpower-pels/failing_mtms.hpp | 6 ++++++ extensions/openpower-pels/json_utils.cpp | 10 ++++++++++ extensions/openpower-pels/json_utils.hpp | 7 +++++++ extensions/openpower-pels/tools/peltool.cpp | 15 --------------- 5 files changed, 38 insertions(+), 15 deletions(-) (limited to 'extensions') diff --git a/extensions/openpower-pels/failing_mtms.cpp b/extensions/openpower-pels/failing_mtms.cpp index d4cdf37..b45c05d 100644 --- a/extensions/openpower-pels/failing_mtms.cpp +++ b/extensions/openpower-pels/failing_mtms.cpp @@ -15,6 +15,7 @@ */ #include "failing_mtms.hpp" +#include "json_utils.hpp" #include "pel_types.hpp" #include @@ -85,5 +86,19 @@ void FailingMTMS::unflatten(Stream& stream) stream >> _header >> _mtms; } +std::optional FailingMTMS::getJSON() const +{ + std::string json; + jsonInsert(json, "Section Version", getNumberString("%d", _header.version), + 1); + jsonInsert(json, "Sub-section type", getNumberString("%d", _header.subType), + 1); + jsonInsert(json, "Created by", getNumberString("0x%X", _header.componentID), + 1); + jsonInsert(json, "Machine Type Model", _mtms.machineTypeAndModel(), 1); + jsonInsert(json, "Serial Number", trimEnd(_mtms.machineSerialNumber()), 1); + json.erase(json.size() - 2); + return json; +} } // namespace pels } // namespace openpower diff --git a/extensions/openpower-pels/failing_mtms.hpp b/extensions/openpower-pels/failing_mtms.hpp index 65186eb..8f5cd44 100644 --- a/extensions/openpower-pels/failing_mtms.hpp +++ b/extensions/openpower-pels/failing_mtms.hpp @@ -81,6 +81,12 @@ class FailingMTMS : public Section return _mtms.machineSerialNumber(); } + /** + * @brief Get section in JSON. + * @return std::optional - Failing MTMS section in JSON + */ + std::optional getJSON() const override; + private: /** * @brief Validates the section contents diff --git a/extensions/openpower-pels/json_utils.cpp b/extensions/openpower-pels/json_utils.cpp index cd41804..871bd32 100644 --- a/extensions/openpower-pels/json_utils.cpp +++ b/extensions/openpower-pels/json_utils.cpp @@ -193,5 +193,15 @@ void jsonInsertArray(std::string& jsonStr, const std::string& fieldName, jsonStr.append("[],\n"); } } + +std::string trimEnd(std::string s) +{ + const char* t = " \t\n\r\f\v"; + if (s.find_last_not_of(t) != std::string::npos) + { + s.erase(s.find_last_not_of(t) + 1); + } + return s; +} } // namespace pels } // namespace openpower diff --git a/extensions/openpower-pels/json_utils.hpp b/extensions/openpower-pels/json_utils.hpp index f3fb767..e122f47 100644 --- a/extensions/openpower-pels/json_utils.hpp +++ b/extensions/openpower-pels/json_utils.hpp @@ -76,5 +76,12 @@ std::string getNumberString(const char* format, T number) return numString; } +/** + * @brief helper function to trim trailing whitespaces + * @return std::string - trimmed string + * @param[in] std::string - string to trim + */ +std::string trimEnd(std::string s); + } // namespace pels } // namespace openpower diff --git a/extensions/openpower-pels/tools/peltool.cpp b/extensions/openpower-pels/tools/peltool.cpp index f1d5f59..ed6daa2 100644 --- a/extensions/openpower-pels/tools/peltool.cpp +++ b/extensions/openpower-pels/tools/peltool.cpp @@ -182,21 +182,6 @@ std::vector getFileData(const std::string& name) } } -/** - * @brief helper function to trim trailing whitespaces - * @return std::string - trimmed string - * @param[in] std::string - string to trim - */ -const char* ws = " \t\n\r\f\v"; -std::string trim(std::string s, const char* t = ws) -{ - if (s.find_last_not_of(t) != std::string::npos) - { - s.erase(s.find_last_not_of(t) + 1); - } - return s; -} - template std::string genPELJSON(T itr, bool hidden, message::Registry& registry) { -- cgit v1.2.1