Fix a bunch of warnings
using the list of warnings from here:
https://github.com/lefticus/cppbestpractices/blob/e73393f25a85f83fed7399d8b65cb117d00b2231/02-Use_the_Tools_Available.md#L100
Seems like a good place to start, and would improve things a bit
type-wise. This patchset attempts to correct all the issues in one
shot.
Tested:
It builds. Will test various subsystems that have been touched
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
Change-Id: I588c26440e5a97f718a0f0ea74cc84107d53aa1e
diff --git a/.clang-tidy b/.clang-tidy
deleted file mode 100644
index 9a314f1..0000000
--- a/.clang-tidy
+++ /dev/null
@@ -1,15 +0,0 @@
----
-Checks: '-*,readability-identifier-naming'
-WarningsAsErrors: ''
-HeaderFilterRegex: '.*'
-AnalyzeTemporaryDtors: false
-CheckOptions:
- - { key: readability-identifier-naming.NamespaceCase, value: lower_case}
- - { key: readability-identifier-naming.ClassCase, value: CamelCase }
- - { key: readability-identifier-naming.StructCase, value: CamelCase }
- - { key: readability-identifier-naming.FunctionCase, value: camelBack }
- - { key: readability-identifier-naming.VariableCase, value: camelBack }
- - { key: readability-identifier-naming.GlobalConstantCase, value: camelBack }
- - { key: readability-identifier-naming.MemberCase, value: camelBack }
-...
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 943d956..0268ed8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,7 @@
cmake_minimum_required (VERSION 3.5 FATAL_ERROR)
+project (bmc-webserver CXX)
+
cmake_policy (SET CMP0054 NEW)
set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
@@ -58,8 +60,6 @@
firmware update transactions through Redfish
UpdateService.SimpleUpdate." OFF)
-project (bmc-webserver CXX)
-
include (CTest)
set (CMAKE_CXX_STANDARD 17)
@@ -69,7 +69,43 @@
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -Wall")
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
+ -fno-rtti \
+")
+
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
+-Wall \
+-Wextra \
+-Wnon-virtual-dtor \
+-Wold-style-cast \
+-Wcast-align \
+-Wunused \
+-Woverloaded-virtual \
+-Wpedantic \
+-Wconversion \
+-Wsign-conversion \
+-Wnull-dereference \
+-Wdouble-promotion \
+-Wformat=2 \
+-Wno-unused-parameter \
+")
+
+# only set -Werror if we're on a compiler that we know passes
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
+ -Werror \
+ -Wduplicated-cond \
+ -Wduplicated-branches \
+ -Wlogical-op \
+ -Wnull-dereference \
+ -Wdouble-promotion \
+ -Wformat=2 \
+ -Wno-unused-parameter \
+ ")
+ endif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
+endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti")
# general
@@ -127,30 +163,32 @@
set (CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/prefix ${CMAKE_PREFIX_PATH})
endif ()
+find_package (Boost 1.66 REQUIRED)
+include_directories (SYSTEM ${BOOST_SRC_DIR})
+
# add_definitions(-DBOOST_ASIO_ENABLE_HANDLER_TRACKING)
add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
add_definitions (-DBOOST_BEAST_USE_STD_STRING_VIEW)
add_definitions (-DBOOST_ERROR_CODE_HEADER_ONLY)
add_definitions (-DBOOST_SYSTEM_NO_DEPRECATED)
-# Uncomment once Yocto moves to boost 1.70
-# add_definitions (-DBOOST_ASIO_NO_DEPRECATED)
+message(BOOST_VERSION = ${Boost_VERSION})
+if ("${Boost_VERSION}" STREQUAL "107100")
+ add_definitions (-DBOOST_ASIO_NO_DEPRECATED)
+endif()
add_definitions (-DBOOST_ALL_NO_LIB)
add_definitions (-DBOOST_NO_RTTI)
add_definitions (-DBOOST_NO_TYPEID)
add_definitions (-DBOOST_COROUTINES_NO_DEPRECATION_WARNING)
-find_package (Boost 1.66 REQUIRED)
-include_directories (${BOOST_SRC_DIR})
-
# sdbusplus
if (NOT ${YOCTO_DEPENDENCIES})
- include_directories (${CMAKE_BINARY_DIR}/sdbusplus-src)
+ include_directories (SYSTEM ${CMAKE_BINARY_DIR}/sdbusplus-src)
link_directories (${CMAKE_BINARY_DIR}/sdbusplus-src/.libs)
endif ()
# Openssl
find_package (OpenSSL REQUIRED)
-include_directories (${OPENSSL_INCLUDE_DIR})
+include_directories (SYSTEM ${OPENSSL_INCLUDE_DIR})
message ("OPENSSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}")
# bmcweb
@@ -168,7 +206,7 @@
# Zlib
find_package (ZLIB REQUIRED)
-include_directories (${ZLIB_INCLUDE_DIRS})
+include_directories (SYSTEM ${ZLIB_INCLUDE_DIRS})
# PAM
option (WEBSERVER_ENABLE_PAM "enable pam authentication" ON)
diff --git a/CMakeLists.txt.in b/CMakeLists.txt.in
index ce96647..4e6f6b6 100644
--- a/CMakeLists.txt.in
+++ b/CMakeLists.txt.in
@@ -36,8 +36,8 @@
externalproject_add (
Boost URL
- https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.gz
- URL_MD5 b50944c0c13f81ce2c006802a1186f5a SOURCE_DIR
+ https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz
+ URL_MD5 5f521b41b79bf8616582c4a8a2c10177 SOURCE_DIR
"${CMAKE_BINARY_DIR}/boost-src" BINARY_DIR "${CMAKE_BINARY_DIR}/boost-build"
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND mkdir -p
"${CMAKE_BINARY_DIR}/prefix/include/" && cp -R
diff --git a/crow/include/crow/app.h b/crow/include/crow/app.h
index 4bdf9ff..7885c02 100644
--- a/crow/include/crow/app.h
+++ b/crow/include/crow/app.h
@@ -38,9 +38,9 @@
using server_t = Server<Crow, socket_t, Middlewares...>;
#endif
- explicit Crow(std::shared_ptr<boost::asio::io_context> io =
+ explicit Crow(std::shared_ptr<boost::asio::io_context> ioIn =
std::make_shared<boost::asio::io_context>()) :
- io(std::move(io))
+ io(std::move(ioIn))
{
}
~Crow()
diff --git a/crow/include/crow/http_connection.h b/crow/include/crow/http_connection.h
index 78ee70b..5c9be09 100644
--- a/crow/include/crow/http_connection.h
+++ b/crow/include/crow/http_connection.h
@@ -164,7 +164,7 @@
mw.afterHandle(req, res, ctx.template get<MW>());
}
-template <int N, typename Context, typename Container, typename CurrentMW,
+template <size_t N, typename Context, typename Container, typename CurrentMW,
typename... Middlewares>
bool middlewareCallHelper(Container& middlewares, Request& req, Response& res,
Context& ctx)
@@ -194,21 +194,21 @@
return false;
}
-template <int N, typename Context, typename Container>
+template <size_t N, typename Context, typename Container>
bool middlewareCallHelper(Container& /*middlewares*/, Request& /*req*/,
Response& /*res*/, Context& /*ctx*/)
{
return false;
}
-template <int N, typename Context, typename Container>
+template <size_t N, typename Context, typename Container>
typename std::enable_if<(N < 0)>::type
afterHandlersCallHelper(Container& /*middlewares*/, Context& /*Context*/,
Request& /*req*/, Response& /*res*/)
{
}
-template <int N, typename Context, typename Container>
+template <size_t N, typename Context, typename Container>
typename std::enable_if<(N == 0)>::type
afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req,
Response& res)
@@ -221,7 +221,7 @@
static_cast<parent_context_t&>(ctx));
}
-template <int N, typename Context, typename Container>
+template <size_t N, typename Context, typename Container>
typename std::enable_if<(N > 0)>::type
afterHandlersCallHelper(Container& middlewares, Context& ctx, Request& req,
Response& res)
@@ -248,14 +248,15 @@
class Connection
{
public:
- Connection(boost::asio::io_context& ioService, Handler* handler,
- const std::string& server_name,
- std::tuple<Middlewares...>* middlewares,
+ Connection(boost::asio::io_context& ioService, Handler* handlerIn,
+ const std::string& ServerNameIn,
+ std::tuple<Middlewares...>* middlewaresIn,
std::function<std::string()>& get_cached_date_str_f,
- detail::TimerQueue& timerQueue, Adaptor adaptorIn) :
+ detail::TimerQueue& timerQueueIn, Adaptor adaptorIn) :
adaptor(std::move(adaptorIn)),
- handler(handler), serverName(server_name), middlewares(middlewares),
- getCachedDateStr(get_cached_date_str_f), timerQueue(timerQueue)
+ handler(handlerIn), serverName(ServerNameIn),
+ middlewares(middlewaresIn), getCachedDateStr(get_cached_date_str_f),
+ timerQueue(timerQueueIn)
{
parser.emplace(std::piecewise_construct, std::make_tuple());
// Temporarily changed to 30MB; Need to modify uploading/authentication
@@ -344,7 +345,7 @@
req->ioService = static_cast<decltype(req->ioService)>(
&adaptor.get_executor().context());
detail::middlewareCallHelper<
- 0, decltype(ctx), decltype(*middlewares), Middlewares...>(
+ 0U, decltype(ctx), decltype(*middlewares), Middlewares...>(
*middlewares, *req, res, ctx);
if (!res.completed)
@@ -413,7 +414,7 @@
needToCallAfterHandlers = false;
// call all afterHandler of middlewares
- detail::afterHandlersCallHelper<((int)sizeof...(Middlewares) - 1),
+ detail::afterHandlersCallHelper<sizeof...(Middlewares) - 1,
decltype(ctx),
decltype(*middlewares)>(
*middlewares, ctx, *req, res);
@@ -654,7 +655,7 @@
const std::string& serverName;
- int timerCancelKey{-1};
+ size_t timerCancelKey = 0;
bool isReading{};
bool isWriting{};
diff --git a/crow/include/crow/http_request.h b/crow/include/crow/http_request.h
index ef0bb28..c8551cd 100644
--- a/crow/include/crow/http_request.h
+++ b/crow/include/crow/http_request.h
@@ -26,12 +26,14 @@
std::shared_ptr<crow::persistent_data::UserSession> session;
- Request(boost::beast::http::request<boost::beast::http::string_body>& req) :
- req(req), body(req.body())
+ Request(
+ boost::beast::http::request<boost::beast::http::string_body>& reqIn) :
+ req(reqIn),
+ body(reqIn.body())
{
}
- const boost::beast::http::verb method() const
+ boost::beast::http::verb method() const
{
return req.method();
}
diff --git a/crow/include/crow/http_server.h b/crow/include/crow/http_server.h
index 304f562..2e43056 100644
--- a/crow/include/crow/http_server.h
+++ b/crow/include/crow/http_server.h
@@ -1,11 +1,11 @@
#pragma once
#include <atomic>
-#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/ip/address.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/signal_set.hpp>
#include <boost/asio/ssl/context.hpp>
+#include <boost/asio/steady_timer.hpp>
#if BOOST_VERSION >= 107000
#include <boost/beast/ssl/ssl_stream.hpp>
#else
@@ -44,7 +44,7 @@
ioService(std::move(io)),
acceptor(std::move(acceptor)),
signals(*ioService, SIGINT, SIGTERM, SIGHUP), tickTimer(*ioService),
- handler(handler), adaptorCtx(adaptor_ctx), middlewares(middlewares)
+ handler(handler), middlewares(middlewares), adaptorCtx(adaptor_ctx)
{
}
@@ -82,8 +82,8 @@
void onTick()
{
tickFunction();
- tickTimer.expires_from_now(
- boost::posix_time::milliseconds(tickInterval.count()));
+ tickTimer.expires_after(
+ std::chrono::milliseconds(tickInterval.count()));
tickTimer.async_wait([this](const boost::system::error_code& ec) {
if (ec)
{
@@ -95,14 +95,11 @@
void updateDateStr()
{
- auto lastTimeT = time(0);
+ time_t lastTimeT = time(0);
tm myTm{};
-#ifdef _MSC_VER
- gmtime_s(&my_tm, &last_time_t);
-#else
gmtime_r(&lastTimeT, &myTm);
-#endif
+
dateStr.resize(100);
size_t dateStrSz =
strftime(&dateStr[0], 99, "%a, %d %b %Y %H:%M:%S GMT", &myTm);
@@ -126,8 +123,8 @@
return this->dateStr;
};
- boost::asio::deadline_timer timer(*ioService);
- timer.expires_from_now(boost::posix_time::seconds(1));
+ boost::asio::steady_timer timer(*ioService);
+ timer.expires_after(std::chrono::seconds(1));
std::function<void(const boost::system::error_code& ec)> timerHandler;
timerHandler = [&](const boost::system::error_code& ec) {
@@ -136,15 +133,15 @@
return;
}
timerQueue.process();
- timer.expires_from_now(boost::posix_time::seconds(1));
+ timer.expires_after(std::chrono::seconds(1));
timer.async_wait(timerHandler);
};
timer.async_wait(timerHandler);
if (tickFunction && tickInterval.count() > 0)
{
- tickTimer.expires_from_now(
- boost::posix_time::milliseconds(tickInterval.count()));
+ tickTimer.expires_after(
+ std::chrono::milliseconds(tickInterval.count()));
tickTimer.async_wait([this](const boost::system::error_code& ec) {
if (ec)
{
@@ -278,7 +275,7 @@
std::function<std::string()> getCachedDateStr;
std::unique_ptr<tcp::acceptor> acceptor;
boost::asio::signal_set signals;
- boost::asio::deadline_timer tickTimer;
+ boost::asio::steady_timer tickTimer;
std::string dateStr;
diff --git a/crow/include/crow/logging.h b/crow/include/crow/logging.h
index 1d4de57..a608f1f 100644
--- a/crow/include/crow/logging.h
+++ b/crow/include/crow/logging.h
@@ -12,14 +12,6 @@
{
enum class LogLevel
{
-#ifndef ERROR
- DEBUG = 0,
- INFO,
- WARNING,
- ERROR,
- CRITICAL,
-#endif
-
Debug = 0,
Info,
Warning,
@@ -27,46 +19,30 @@
Critical,
};
-class ILogHandler
-{
- public:
- virtual void log(std::string message, LogLevel level) = 0;
-};
-
-class CerrLogHandler : public ILogHandler
-{
- public:
- void log(std::string message, LogLevel /*level*/) override
- {
- std::cerr << message;
- }
-};
-
class logger
{
private:
//
static std::string timestamp()
{
- char date[32];
+ std::string date;
+ date.resize(32, '\0');
time_t t = time(0);
tm myTm{};
-#ifdef _MSC_VER
- gmtime_s(&my_tm, &t);
-#else
gmtime_r(&t, &myTm);
-#endif
- size_t sz = strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", &myTm);
- return std::string(date, date + sz);
+ size_t sz =
+ strftime(date.data(), date.size(), "%Y-%m-%d %H:%M:%S", &myTm);
+ date.resize(sz);
+ return date;
}
public:
logger(const std::string& prefix, const std::string& filename,
- const size_t line, LogLevel level) :
- level(level)
+ const size_t line, LogLevel levelIn) :
+ level(levelIn)
{
#ifdef BMCWEB_ENABLE_LOGGING
stringstream << "(" << timestamp() << ") [" << prefix << " "
@@ -80,7 +56,7 @@
{
#ifdef BMCWEB_ENABLE_LOGGING
stringstream << std::endl;
- getHandlerRef()->log(stringstream.str(), level);
+ std::cerr << stringstream.str();
#endif
}
}
@@ -103,11 +79,6 @@
getLogLevelRef() = level;
}
- static void setHandler(ILogHandler* handler)
- {
- getHandlerRef() = handler;
- }
-
static LogLevel get_current_log_level()
{
return getLogLevelRef();
@@ -120,12 +91,6 @@
static auto currentLevel = static_cast<LogLevel>(1);
return currentLevel;
}
- static ILogHandler*& getHandlerRef()
- {
- static CerrLogHandler defaultHandler;
- static ILogHandler* currentHandler = &defaultHandler;
- return currentHandler;
- }
//
std::ostringstream stringstream;
diff --git a/crow/include/crow/middleware_context.h b/crow/include/crow/middleware_context.h
index f109a44..2247ca6 100644
--- a/crow/include/crow/middleware_context.h
+++ b/crow/include/crow/middleware_context.h
@@ -16,7 +16,7 @@
{
using parent_context = typename black_magic::PopBack<
Middlewares...>::template rebind<::crow::detail::PartialContext>;
- template <int N>
+ template <size_t N>
using partial = typename std::conditional<
N == sizeof...(Middlewares) - 1, PartialContext,
typename parent_context::template partial<N>>::type;
@@ -29,10 +29,10 @@
template <> struct PartialContext<>
{
- template <int> using partial = PartialContext;
+ template <size_t> using partial = PartialContext;
};
-template <int N, typename Context, typename Container, typename CurrentMW,
+template <size_t N, typename Context, typename Container, typename CurrentMW,
typename... Middlewares>
bool middlewareCallHelper(Container& middlewares, Request& req, Response& res,
Context& ctx);
@@ -41,17 +41,17 @@
struct Context : private PartialContext<Middlewares...>
// struct Context : private Middlewares::context... // simple but less type-safe
{
- template <int N, typename Context, typename Container>
+ template <size_t N, typename Context, typename Container>
friend typename std::enable_if<(N == 0)>::type
afterHandlersCallHelper(Container& middlewares, Context& ctx,
Request& req, Response& res);
- template <int N, typename Context, typename Container>
+ template <size_t N, typename Context, typename Container>
friend typename std::enable_if<(N > 0)>::type
afterHandlersCallHelper(Container& middlewares, Context& ctx,
Request& req, Response& res);
- template <int N, typename Context, typename Container, typename CurrentMW,
- typename... Middlewares2>
+ template <size_t N, typename Context, typename Container,
+ typename CurrentMW, typename... Middlewares2>
friend bool middlewareCallHelper(Container& middlewares, Request& req,
Response& res, Context& ctx);
@@ -60,7 +60,7 @@
return static_cast<typename T::Context&>(*this);
}
- template <int N>
+ template <size_t N>
using partial =
typename PartialContext<Middlewares...>::template partial<N>;
};
diff --git a/crow/include/crow/query_string.h b/crow/include/crow/query_string.h
index 553960e..0cd21e4 100644
--- a/crow/include/crow/query_string.h
+++ b/crow/include/crow/query_string.h
@@ -19,7 +19,7 @@
* Also decodes the value portion of the k/v pair *in-place*. In a future
* enhancement it will also have a compile-time option of sorting qs_kv
* alphabetically by key. */
-int qsParse(char* qs, char* qs_kv[], int qs_kv_size);
+size_t qsParse(char* qs, char* qs_kv[], size_t qs_kv_size);
/* Used by qs_parse to decode the value portion of a k/v pair */
int qsDecode(char* qs);
@@ -55,12 +55,13 @@
inline int qsStrncmp(const char* s, const char* qs, size_t n)
{
int i = 0;
- unsigned char u1, u2, unyb, lnyb;
+ char u1, u2;
+ char unyb, lnyb;
while (n-- > 0)
{
- u1 = static_cast<unsigned char>(*s++);
- u2 = static_cast<unsigned char>(*qs++);
+ u1 = *s++;
+ u2 = *qs++;
if (!BMCWEB_QS_ISQSCHR(u1))
{
@@ -77,11 +78,12 @@
}
if (u1 == '%') // easier/safer than scanf
{
- unyb = static_cast<unsigned char>(*s++);
- lnyb = static_cast<unsigned char>(*s++);
+ unyb = static_cast<char>(*s++);
+ lnyb = static_cast<char>(*s++);
if (BMCWEB_QS_ISHEX(unyb) && BMCWEB_QS_ISHEX(lnyb))
{
- u1 = (BMCWEB_QS_HEX2DEC(unyb) * 16) + BMCWEB_QS_HEX2DEC(lnyb);
+ u1 = static_cast<char>((BMCWEB_QS_HEX2DEC(unyb) * 16) +
+ BMCWEB_QS_HEX2DEC(lnyb));
}
else
{
@@ -95,11 +97,12 @@
}
if (u2 == '%') // easier/safer than scanf
{
- unyb = static_cast<unsigned char>(*qs++);
- lnyb = static_cast<unsigned char>(*qs++);
+ unyb = static_cast<char>(*qs++);
+ lnyb = static_cast<char>(*qs++);
if (BMCWEB_QS_ISHEX(unyb) && BMCWEB_QS_ISHEX(lnyb))
{
- u2 = (BMCWEB_QS_HEX2DEC(unyb) * 16) + BMCWEB_QS_HEX2DEC(lnyb);
+ u2 = static_cast<char>((BMCWEB_QS_HEX2DEC(unyb) * 16) +
+ BMCWEB_QS_HEX2DEC(lnyb));
}
else
{
@@ -127,9 +130,10 @@
}
}
-inline int qsParse(char* qs, char* qs_kv[], int qs_kv_size)
+inline size_t qsParse(char* qs, char* qs_kv[], size_t qs_kv_size)
{
- int i, j;
+ size_t i;
+ size_t j;
char* substrPtr;
for (i = 0; i < qs_kv_size; i++)
@@ -201,8 +205,8 @@
qs[i] = '\0';
return i;
}
- qs[i] = (BMCWEB_QS_HEX2DEC(qs[j + 1]) * 16) +
- BMCWEB_QS_HEX2DEC(qs[j + 2]);
+ qs[i] = static_cast<char>(BMCWEB_QS_HEX2DEC(qs[j + 1] * 16) +
+ BMCWEB_QS_HEX2DEC(qs[j + 2]));
j += 2;
}
else
@@ -307,7 +311,7 @@
class QueryString
{
public:
- static const int maxKeyValuePairsCount = 256;
+ static const size_t maxKeyValuePairsCount = 256;
QueryString() = default;
@@ -353,7 +357,8 @@
keyValuePairs.resize(maxKeyValuePairsCount);
- int count = qsParse(&url[0], &keyValuePairs[0], maxKeyValuePairsCount);
+ size_t count =
+ qsParse(&url[0], &keyValuePairs[0], maxKeyValuePairsCount);
keyValuePairs.resize(count);
}
@@ -380,8 +385,8 @@
char* get(const std::string& name) const
{
- char* ret =
- qsK2v(name.c_str(), keyValuePairs.data(), keyValuePairs.size());
+ char* ret = qsK2v(name.c_str(), keyValuePairs.data(),
+ static_cast<int>(keyValuePairs.size()));
return ret;
}
@@ -395,7 +400,7 @@
while (1)
{
element = qsK2v(plus.c_str(), keyValuePairs.data(),
- keyValuePairs.size(), count++);
+ static_cast<int>(keyValuePairs.size()), count++);
if (element == nullptr)
{
break;
diff --git a/crow/include/crow/routing.h b/crow/include/crow/routing.h
index 0be5dbd..6297448 100644
--- a/crow/include/crow/routing.h
+++ b/crow/include/crow/routing.h
@@ -64,7 +64,7 @@
}
#endif
- uint32_t getMethods()
+ size_t getMethods()
{
return methodsBitfield;
}
@@ -88,7 +88,8 @@
return false;
}
- uint32_t methodsBitfield{1 << (int)boost::beast::http::verb::get};
+ size_t methodsBitfield{
+ 1 << static_cast<size_t>(boost::beast::http::verb::get)};
std::vector<redfish::Privileges> privilegesSet;
@@ -384,46 +385,52 @@
using self_t = T;
WebSocketRule& websocket()
{
- WebSocketRule* p = new WebSocketRule(((self_t*)this)->rule);
- ((self_t*)this)->ruleToUpgrade.reset(p);
+ self_t* self = static_cast<self_t*>(this);
+ WebSocketRule* p = new WebSocketRule(self->rule);
+ self->ruleToUpgrade.reset(p);
return *p;
}
self_t& name(std::string name) noexcept
{
- ((self_t*)this)->nameStr = std::move(name);
- return (self_t&)*this;
+ self_t* self = static_cast<self_t*>(this);
+ self->nameStr = std::move(name);
+ return *self;
}
self_t& methods(boost::beast::http::verb method)
{
- ((self_t*)this)->methodsBitfield = 1 << (int)method;
- return (self_t&)*this;
+ self_t* self = static_cast<self_t*>(this);
+ self->methodsBitfield = 1U << static_cast<size_t>(method);
+ return *self;
}
template <typename... MethodArgs>
self_t& methods(boost::beast::http::verb method, MethodArgs... args_method)
{
+ self_t* self = static_cast<self_t*>(this);
methods(args_method...);
- ((self_t*)this)->methodsBitfield |= 1 << (int)method;
- return (self_t&)*this;
+ self->methodsBitfield |= 1U << static_cast<size_t>(method);
+ return *self;
}
template <typename... MethodArgs>
self_t& requires(std::initializer_list<const char*> l)
{
- ((self_t*)this)->privilegesSet.emplace_back(l);
- return (self_t&)*this;
+ self_t* self = static_cast<self_t*>(this);
+ self->privilegesSet.emplace_back(l);
+ return *self;
}
template <typename... MethodArgs>
self_t& requires(const std::vector<redfish::Privileges>& p)
{
+ self_t* self = static_cast<self_t*>(this);
for (const redfish::Privileges& privilege : p)
{
- ((self_t*)this)->privilegesSet.emplace_back(privilege);
+ self->privilegesSet.emplace_back(privilege);
}
- return (self_t&)*this;
+ return *self;
}
};
@@ -502,7 +509,7 @@
public:
using self_t = TaggedRule<Args...>;
- TaggedRule(std::string rule) : BaseRule(std::move(rule))
+ TaggedRule(std::string ruleIn) : BaseRule(std::move(ruleIn))
{
}
@@ -621,14 +628,15 @@
struct Node
{
unsigned ruleIndex{};
- std::array<unsigned, (int)ParamType::MAX> paramChildrens{};
+ std::array<size_t, static_cast<size_t>(ParamType::MAX)>
+ paramChildrens{};
boost::container::flat_map<std::string, unsigned> children;
bool isSimpleNode() const
{
return !ruleIndex && std::all_of(std::begin(paramChildrens),
std::end(paramChildrens),
- [](unsigned x) { return !x; });
+ [](size_t x) { return !x; });
}
};
@@ -639,7 +647,7 @@
private:
void optimizeNode(Node* node)
{
- for (unsigned int x : node->paramChildrens)
+ for (size_t x : node->paramChildrens)
{
if (!x)
continue;
@@ -716,14 +724,15 @@
route_indexes.push_back(child->ruleIndex);
}
findRouteIndexes(req_url, route_indexes, child,
- pos + fragment.size());
+ static_cast<unsigned>(pos + fragment.size()));
}
else
{
if (req_url.compare(pos, fragment.size(), fragment) == 0)
{
- findRouteIndexes(req_url, route_indexes, child,
- pos + fragment.size());
+ findRouteIndexes(
+ req_url, route_indexes, child,
+ static_cast<unsigned>(pos + fragment.size()));
}
}
}
@@ -731,7 +740,7 @@
std::pair<unsigned, RoutingParams>
find(const std::string_view req_url, const Node* node = nullptr,
- unsigned pos = 0, RoutingParams* params = nullptr) const
+ size_t pos = 0, RoutingParams* params = nullptr) const
{
RoutingParams empty;
if (params == nullptr)
@@ -754,7 +763,7 @@
}
};
- if (node->paramChildrens[(int)ParamType::INT])
+ if (node->paramChildrens[static_cast<size_t>(ParamType::INT)])
{
char c = req_url[pos];
if ((c >= '0' && c <= '9') || c == '+' || c == '-')
@@ -766,17 +775,18 @@
if (errno != ERANGE && eptr != req_url.data() + pos)
{
params->intParams.push_back(value);
- std::pair<unsigned, RoutingParams> ret =
- find(req_url,
- &nodes[node->paramChildrens[(int)ParamType::INT]],
- eptr - req_url.data(), params);
+ std::pair<unsigned, RoutingParams> ret = find(
+ req_url,
+ &nodes[node->paramChildrens[static_cast<size_t>(
+ ParamType::INT)]],
+ static_cast<size_t>(eptr - req_url.data()), params);
updateFound(ret);
params->intParams.pop_back();
}
}
}
- if (node->paramChildrens[(int)ParamType::UINT])
+ if (node->paramChildrens[static_cast<size_t>(ParamType::UINT)])
{
char c = req_url[pos];
if ((c >= '0' && c <= '9') || c == '+')
@@ -788,17 +798,18 @@
if (errno != ERANGE && eptr != req_url.data() + pos)
{
params->uintParams.push_back(value);
- std::pair<unsigned, RoutingParams> ret =
- find(req_url,
- &nodes[node->paramChildrens[(int)ParamType::UINT]],
- eptr - req_url.data(), params);
+ std::pair<unsigned, RoutingParams> ret = find(
+ req_url,
+ &nodes[node->paramChildrens[static_cast<size_t>(
+ ParamType::UINT)]],
+ static_cast<size_t>(eptr - req_url.data()), params);
updateFound(ret);
params->uintParams.pop_back();
}
}
}
- if (node->paramChildrens[(int)ParamType::DOUBLE])
+ if (node->paramChildrens[static_cast<size_t>(ParamType::DOUBLE)])
{
char c = req_url[pos];
if ((c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.')
@@ -811,15 +822,16 @@
params->doubleParams.push_back(value);
std::pair<unsigned, RoutingParams> ret = find(
req_url,
- &nodes[node->paramChildrens[(int)ParamType::DOUBLE]],
- eptr - req_url.data(), params);
+ &nodes[node->paramChildrens[static_cast<size_t>(
+ ParamType::DOUBLE)]],
+ static_cast<size_t>(eptr - req_url.data()), params);
updateFound(ret);
params->doubleParams.pop_back();
}
}
}
- if (node->paramChildrens[(int)ParamType::STRING])
+ if (node->paramChildrens[static_cast<size_t>(ParamType::STRING)])
{
size_t epos = pos;
for (; epos < req_url.size(); epos++)
@@ -834,14 +846,15 @@
req_url.substr(pos, epos - pos));
std::pair<unsigned, RoutingParams> ret =
find(req_url,
- &nodes[node->paramChildrens[(int)ParamType::STRING]],
+ &nodes[node->paramChildrens[static_cast<size_t>(
+ ParamType::STRING)]],
epos, params);
updateFound(ret);
params->stringParams.pop_back();
}
}
- if (node->paramChildrens[(int)ParamType::PATH])
+ if (node->paramChildrens[static_cast<size_t>(ParamType::PATH)])
{
size_t epos = req_url.size();
@@ -849,9 +862,11 @@
{
params->stringParams.emplace_back(
req_url.substr(pos, epos - pos));
- std::pair<unsigned, RoutingParams> ret = find(
- req_url, &nodes[node->paramChildrens[(int)ParamType::PATH]],
- epos, params);
+ std::pair<unsigned, RoutingParams> ret =
+ find(req_url,
+ &nodes[node->paramChildrens[static_cast<size_t>(
+ ParamType::PATH)]],
+ epos, params);
updateFound(ret);
params->stringParams.pop_back();
}
@@ -875,7 +890,7 @@
void add(const std::string& url, unsigned ruleIndex)
{
- unsigned idx{0};
+ size_t idx = 0;
for (unsigned i = 0; i < url.size(); i++)
{
@@ -897,14 +912,14 @@
{
if (url.compare(i, x.second.size(), x.second) == 0)
{
- if (!nodes[idx].paramChildrens[(int)x.first])
+ size_t index = static_cast<size_t>(x.first);
+ if (!nodes[idx].paramChildrens[index])
{
unsigned newNodeIdx = newNode();
- nodes[idx].paramChildrens[(int)x.first] =
- newNodeIdx;
+ nodes[idx].paramChildrens[index] = newNodeIdx;
}
- idx = nodes[idx].paramChildrens[(int)x.first];
- i += x.second.size();
+ idx = nodes[idx].paramChildrens[index];
+ i += static_cast<unsigned>(x.second.size());
break;
}
}
@@ -928,15 +943,15 @@
}
private:
- void debugNodePrint(Node* n, int level)
+ void debugNodePrint(Node* n, size_t level)
{
- for (int i = 0; i < (int)ParamType::MAX; i++)
+ for (size_t i = 0; i < static_cast<size_t>(ParamType::MAX); i++)
{
if (n->paramChildrens[i])
{
BMCWEB_LOG_DEBUG << std::string(
- 2 * level, ' ') /*<< "("<<n->paramChildrens[i]<<") "*/;
- switch ((ParamType)i)
+ 2U * level, ' ') /*<< "("<<n->paramChildrens[i]<<") "*/;
+ switch (static_cast<ParamType>(i))
{
case ParamType::INT:
BMCWEB_LOG_DEBUG << "<int>";
@@ -964,7 +979,7 @@
for (const std::pair<std::string, unsigned>& kv : n->children)
{
BMCWEB_LOG_DEBUG
- << std::string(2 * level, ' ') /*<< "(" << kv.second << ") "*/
+ << std::string(2U * level, ' ') /*<< "(" << kv.second << ") "*/
<< kv.first;
debugNodePrint(&nodes[kv.second], level + 1);
}
@@ -973,7 +988,7 @@
public:
void debugPrint()
{
- debugNodePrint(head(), 0);
+ debugNodePrint(head(), 0U);
}
private:
@@ -990,7 +1005,7 @@
unsigned newNode()
{
nodes.resize(nodes.size() + 1);
- return nodes.size() - 1;
+ return static_cast<unsigned>(nodes.size() - 1);
}
std::vector<Node> nodes;
@@ -1039,14 +1054,16 @@
{
perMethods[method].rules.emplace_back(ruleObject);
perMethods[method].trie.add(
- rule, perMethods[method].rules.size() - 1);
+ rule, static_cast<unsigned>(
+ perMethods[method].rules.size() - 1U));
// directory case:
// request to `/about' url matches `/about/' rule
if (rule.size() > 2 && rule.back() == '/')
{
perMethods[method].trie.add(
rule.substr(0, rule.size() - 1),
- perMethods[method].rules.size() - 1);
+ static_cast<unsigned>(perMethods[method].rules.size() -
+ 1));
}
}
}
@@ -1074,10 +1091,10 @@
template <typename Adaptor>
void handleUpgrade(const Request& req, Response& res, Adaptor&& adaptor)
{
- if (static_cast<int>(req.method()) >= perMethods.size())
+ if (static_cast<size_t>(req.method()) >= perMethods.size())
return;
- PerMethod& perMethod = perMethods[(int)req.method()];
+ PerMethod& perMethod = perMethods[static_cast<size_t>(req.method())];
Trie& trie = perMethod.trie;
std::vector<BaseRule*>& rules = perMethod.rules;
@@ -1118,12 +1135,12 @@
return;
}
- if ((rules[ruleIndex]->getMethods() & (1 << (uint32_t)req.method())) ==
- 0)
+ if ((rules[ruleIndex]->getMethods() &
+ (1U << static_cast<size_t>(req.method()))) == 0)
{
BMCWEB_LOG_DEBUG << "Rule found but method mismatch: " << req.url
<< " with " << req.methodString() << "("
- << (uint32_t)req.method() << ") / "
+ << static_cast<uint32_t>(req.method()) << ") / "
<< rules[ruleIndex]->getMethods();
res.result(boost::beast::http::status::not_found);
res.end();
@@ -1131,7 +1148,7 @@
}
BMCWEB_LOG_DEBUG << "Matched rule (upgrade) '" << rules[ruleIndex]->rule
- << "' " << (uint32_t)req.method() << " / "
+ << "' " << static_cast<uint32_t>(req.method()) << " / "
<< rules[ruleIndex]->getMethods();
// any uncaught exceptions become 500s
@@ -1159,9 +1176,9 @@
void handle(const Request& req, Response& res)
{
- if ((int)req.method() >= perMethods.size())
+ if (static_cast<size_t>(req.method()) >= perMethods.size())
return;
- PerMethod& perMethod = perMethods[(int)req.method()];
+ PerMethod& perMethod = perMethods[static_cast<size_t>(req.method())];
Trie& trie = perMethod.trie;
std::vector<BaseRule*>& rules = perMethod.rules;
@@ -1214,12 +1231,12 @@
return;
}
- if ((rules[ruleIndex]->getMethods() & (1 << (uint32_t)req.method())) ==
- 0)
+ if ((rules[ruleIndex]->getMethods() &
+ (1U << static_cast<uint32_t>(req.method()))) == 0)
{
BMCWEB_LOG_DEBUG << "Rule found but method mismatch: " << req.url
<< " with " << req.methodString() << "("
- << (uint32_t)req.method() << ") / "
+ << static_cast<uint32_t>(req.method()) << ") / "
<< rules[ruleIndex]->getMethods();
res.result(boost::beast::http::status::method_not_allowed);
res.end();
@@ -1227,7 +1244,7 @@
}
BMCWEB_LOG_DEBUG << "Matched rule '" << rules[ruleIndex]->rule << "' "
- << (uint32_t)req.method() << " / "
+ << static_cast<uint32_t>(req.method()) << " / "
<< rules[ruleIndex]->getMethods();
redfish::Privileges userPrivileges;
@@ -1276,9 +1293,10 @@
void debugPrint()
{
- for (int i = 0; i < perMethods.size(); i++)
+ for (size_t i = 0; i < perMethods.size(); i++)
{
- BMCWEB_LOG_DEBUG << methodName((boost::beast::http::verb)i);
+ BMCWEB_LOG_DEBUG
+ << methodName(static_cast<boost::beast::http::verb>(i));
perMethods[i].trie.debugPrint();
}
}
diff --git a/crow/include/crow/settings.h b/crow/include/crow/settings.h
index 8cb1219..959eb95 100644
--- a/crow/include/crow/settings.h
+++ b/crow/include/crow/settings.h
@@ -2,15 +2,6 @@
// settings for crow
// TODO - replace with runtime config. libucl?
-/* #ifdef - enables debug mode */
-//#define BMCWEB_ENABLE_DEBUG
-
-/* #ifdef - enables logging */
-//#define BMCWEB_ENABLE_LOGGING
-
-/* #ifdef - enables ssl */
-//#define BMCWEB_ENABLE_SSL
-
/* #define - specifies log level */
/*
Debug = 0
@@ -23,13 +14,6 @@
*/
#define BMCWEB_LOG_LEVEL 1
-// compiler flags
-#if __cplusplus >= 201402L
-#define BMCWEB_CAN_USE_CPP14
-#endif
-
#if defined(_MSC_VER)
-#if _MSC_VER < 1900
-#error "MSVC versions betfore VS2015 are not supported"
-#endif
+#error "MSVC is not supported"
#endif
diff --git a/crow/include/crow/timer_queue.h b/crow/include/crow/timer_queue.h
index bf1e084..35e4048 100644
--- a/crow/include/crow/timer_queue.h
+++ b/crow/include/crow/timer_queue.h
@@ -20,20 +20,20 @@
dq.set_capacity(100);
}
- void cancel(int k)
+ void cancel(size_t k)
{
- unsigned int index = static_cast<unsigned int>(k - step);
+ size_t index = k - step;
if (index < dq.size())
{
dq[index].second = nullptr;
}
}
- int add(std::function<void()> f)
+ size_t add(std::function<void()> f)
{
dq.push_back(
std::make_pair(std::chrono::steady_clock::now(), std::move(f)));
- int ret = step + dq.size() - 1;
+ size_t ret = step + dq.size() - 1;
BMCWEB_LOG_DEBUG << "timer add inside: " << this << ' ' << ret;
return ret;
@@ -72,7 +72,7 @@
// boost::circular_buffer<storage_type> dq{20};
// std::deque<storage_type> dq{};
- int step{};
+ size_t step{};
};
} // namespace detail
} // namespace crow
diff --git a/crow/include/crow/utility.h b/crow/include/crow/utility.h
index b402b79..d08d548 100644
--- a/crow/include/crow/utility.h
+++ b/crow/include/crow/utility.h
@@ -173,8 +173,8 @@
{
return a == 0;
}
- int sa = a % 6;
- int sb = a % 6;
+ uint64_t sa = a % 6;
+ uint64_t sb = a % 6;
if (sa == 5)
{
sa = 4;
@@ -291,7 +291,7 @@
static constexpr bool value = sizeof(__test<F, Args...>(0)) == sizeof(char);
};
-template <int N> struct SingleTagToType
+template <uint64_t N> struct SingleTagToType
{
};
@@ -360,10 +360,10 @@
template <class S1, class S2> using Concat = Invoke<concat<S1, S2>>;
-template <unsigned N> struct gen_seq;
-template <unsigned N> using GenSeq = Invoke<gen_seq<N>>;
+template <size_t N> struct gen_seq;
+template <size_t N> using GenSeq = Invoke<gen_seq<N>>;
-template <unsigned N> struct gen_seq : Concat<GenSeq<N / 2>, GenSeq<N - N / 2>>
+template <size_t N> struct gen_seq : Concat<GenSeq<N / 2>, GenSeq<N - N / 2>>
{
};
@@ -388,7 +388,7 @@
{
template <template <typename... Args> class U>
using rebind =
- typename PopBackHelper<typename gen_seq<sizeof...(T) - 1>::type,
+ typename PopBackHelper<typename gen_seq<sizeof...(T) - 1UL>::type,
std::tuple<T...>>::template rebind<U>;
};
@@ -452,19 +452,19 @@
template <class T, std::size_t N, class... Args>
struct GetIndexOfElementFromTupleByTypeImpl
{
- static constexpr auto value = N;
+ static constexpr std::size_t value = N;
};
template <class T, std::size_t N, class... Args>
struct GetIndexOfElementFromTupleByTypeImpl<T, N, T, Args...>
{
- static constexpr auto value = N;
+ static constexpr std::size_t value = N;
};
template <class T, std::size_t N, class U, class... Args>
struct GetIndexOfElementFromTupleByTypeImpl<T, N, U, Args...>
{
- static constexpr auto value =
+ static constexpr std::size_t value =
GetIndexOfElementFromTupleByTypeImpl<T, N + 1, Args...>::value;
};
@@ -532,29 +532,34 @@
auto it = ret.begin();
while (size >= 3)
{
- *it++ = key[(((unsigned char)*data) & 0xFC) >> 2];
- unsigned char h = (((unsigned char)*data++) & 0x03) << 4;
- *it++ = key[h | ((((unsigned char)*data) & 0xF0) >> 4)];
- h = (((unsigned char)*data++) & 0x0F) << 2;
- *it++ = key[h | ((((unsigned char)*data) & 0xC0) >> 6)];
- *it++ = key[((unsigned char)*data++) & 0x3F];
+ *it++ = key[(static_cast<unsigned char>(*data) & 0xFC) >> 2];
+ unsigned char h = static_cast<unsigned char>(
+ (static_cast<unsigned char>(*data++) & 0x03u) << 4u);
+ *it++ = key[h | ((static_cast<unsigned char>(*data) & 0xF0) >> 4)];
+ h = static_cast<unsigned char>(
+ (static_cast<unsigned char>(*data++) & 0x0F) << 2u);
+ *it++ = key[h | ((static_cast<unsigned char>(*data) & 0xC0) >> 6)];
+ *it++ = key[static_cast<unsigned char>(*data++) & 0x3F];
size -= 3;
}
if (size == 1)
{
- *it++ = key[(((unsigned char)*data) & 0xFC) >> 2];
- unsigned char h = (((unsigned char)*data++) & 0x03) << 4;
+ *it++ = key[(static_cast<unsigned char>(*data) & 0xFC) >> 2];
+ unsigned char h = static_cast<unsigned char>(
+ (static_cast<unsigned char>(*data++) & 0x03) << 4u);
*it++ = key[h];
*it++ = '=';
*it++ = '=';
}
else if (size == 2)
{
- *it++ = key[(((unsigned char)*data) & 0xFC) >> 2];
- unsigned char h = (((unsigned char)*data++) & 0x03) << 4;
- *it++ = key[h | ((((unsigned char)*data) & 0xF0) >> 4)];
- h = (((unsigned char)*data++) & 0x0F) << 2;
+ *it++ = key[(static_cast<unsigned char>(*data) & 0xFC) >> 2];
+ unsigned char h = static_cast<unsigned char>(
+ (static_cast<unsigned char>(*data++) & 0x03) << 4u);
+ *it++ = key[h | ((static_cast<unsigned char>(*data) & 0xF0) >> 4)];
+ h = static_cast<unsigned char>(
+ (static_cast<unsigned char>(*data++) & 0x0F) << 2u);
*it++ = key[h];
*it++ = '=';
}
@@ -572,7 +577,7 @@
// crow
inline bool base64Decode(const std::string_view input, std::string& output)
{
- static const char nop = -1;
+ static const char nop = static_cast<char>(-1);
// See note on encoding_data[] in above function
static const char decodingData[] = {
nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop, nop,
@@ -671,7 +676,7 @@
std::string buffer;
// less than 5% of characters should be larger, so reserve a buffer of the
// right size
- buffer.reserve(data.size() * 1.05);
+ buffer.reserve(data.size() * 11 / 10);
for (size_t pos = 0; pos != data.size(); ++pos)
{
switch (data[pos])
diff --git a/crow/include/crow/websocket.h b/crow/include/crow/websocket.h
index 301f394..7166c82 100644
--- a/crow/include/crow/websocket.h
+++ b/crow/include/crow/websocket.h
@@ -18,8 +18,8 @@
struct Connection : std::enable_shared_from_this<Connection>
{
public:
- explicit Connection(const crow::Request& req) :
- req(req), userdataPtr(nullptr){};
+ explicit Connection(const crow::Request& reqIn) :
+ req(reqIn), userdataPtr(nullptr){};
virtual void sendBinary(const std::string_view msg) = 0;
virtual void sendBinary(std::string&& msg) = 0;
@@ -48,13 +48,13 @@
{
public:
ConnectionImpl(
- const crow::Request& req, Adaptor adaptorIn,
+ const crow::Request& reqIn, Adaptor adaptorIn,
std::function<void(Connection&)> open_handler,
std::function<void(Connection&, const std::string&, bool)>
message_handler,
std::function<void(Connection&, const std::string&)> close_handler,
std::function<void(Connection&)> error_handler) :
- Connection(req),
+ Connection(reqIn),
ws(std::move(adaptorIn)), inString(), inBuffer(inString, 131088),
openHandler(std::move(open_handler)),
messageHandler(std::move(message_handler)),
@@ -66,7 +66,8 @@
boost::asio::io_context& get_io_context() override
{
- return (boost::asio::io_context&)ws.get_executor().context();
+ return static_cast<boost::asio::io_context&>(
+ ws.get_executor().context());
}
void start()
diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index 1b82697..8c46cf4 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -109,7 +109,7 @@
connection->sendText(j.dump());
return 0;
-};
+}
template <typename... Middlewares> void requestRoutes(Crow<Middlewares...>& app)
{
@@ -150,7 +150,7 @@
nlohmann::json::iterator paths = j.find("paths");
if (paths != j.end())
{
- int interfaceCount = thisSession.interfaces.size();
+ size_t interfaceCount = thisSession.interfaces.size();
if (interfaceCount == 0)
{
interfaceCount = 1;
@@ -160,7 +160,7 @@
// PropertiesChanged
thisSession.matches.reserve(thisSession.matches.size() +
paths->size() *
- (1 + interfaceCount));
+ (1U + interfaceCount));
}
std::string object_manager_match_string;
std::string properties_match_string;
diff --git a/include/dbus_utility.hpp b/include/dbus_utility.hpp
index 2dd3d97..ac5970d 100644
--- a/include/dbus_utility.hpp
+++ b/include/dbus_utility.hpp
@@ -53,9 +53,9 @@
std::string& result)
{
int count = 0;
- auto first = path.begin();
- auto last = path.end();
- for (auto it = path.begin(); it < path.end(); it++)
+ std::string::const_iterator first = path.begin();
+ std::string::const_iterator last = path.end();
+ for (std::string::const_iterator it = path.begin(); it < path.end(); it++)
{
// skip first character as it's either a leading slash or the first
// character in the word
@@ -85,7 +85,8 @@
{
first++;
}
- result = path.substr(first - path.begin(), last - first);
+ result = path.substr(static_cast<size_t>(first - path.begin()),
+ static_cast<size_t>(last - first));
return true;
}
diff --git a/include/image_upload.hpp b/include/image_upload.hpp
index 867d1bc..529e056 100644
--- a/include/image_upload.hpp
+++ b/include/image_upload.hpp
@@ -29,10 +29,10 @@
return;
}
// Make this const static so it survives outside this method
- static boost::asio::deadline_timer timeout(*req.ioService,
- boost::posix_time::seconds(5));
+ static boost::asio::steady_timer timeout(*req.ioService,
+ std::chrono::seconds(5));
- timeout.expires_from_now(boost::posix_time::seconds(15));
+ timeout.expires_after(std::chrono::seconds(15));
auto timeoutHandler = [&res](const boost::system::error_code& ec) {
fwUpdateMatcher = nullptr;
@@ -76,12 +76,7 @@
"xyz.openbmc_project.Software.Version";
}) != interfaces.end())
{
- boost::system::error_code ec;
- timeout.cancel(ec);
- if (ec)
- {
- BMCWEB_LOG_ERROR << "error canceling timer " << ec;
- }
+ timeout.cancel();
std::size_t index = path.str.rfind('/');
if (index != std::string::npos)
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index db42ab8..9fc3926 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -17,7 +17,7 @@
{
public:
explicit KvmSession(crow::websocket::Connection& conn) :
- conn(conn), doingWrite(false), hostSocket(conn.get_io_context())
+ conn(conn), hostSocket(conn.get_io_context()), doingWrite(false)
{
boost::asio::ip::tcp::endpoint endpoint(
boost::asio::ip::make_address("::1"), 5900);
diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp
index ca723d3..25f3b39 100644
--- a/include/obmc_console.hpp
+++ b/include/obmc_console.hpp
@@ -44,7 +44,7 @@
if (ec == boost::asio::error::eof)
{
- for (auto session : sessions)
+ for (crow::websocket::Connection* session : sessions)
{
session->close("Error in reading to host port");
}
@@ -70,14 +70,14 @@
{
BMCWEB_LOG_ERROR << "Couldn't read from host serial port: "
<< ec;
- for (auto session : sessions)
+ for (crow::websocket::Connection* session : sessions)
{
session->close("Error in connecting to host port");
}
return;
}
std::string_view payload(outputBuffer.data(), bytesRead);
- for (auto session : sessions)
+ for (crow::websocket::Connection* session : sessions)
{
session->sendBinary(payload);
}
@@ -90,7 +90,7 @@
if (ec)
{
BMCWEB_LOG_ERROR << "Couldn't connect to host serial port: " << ec;
- for (auto session : sessions)
+ for (crow::websocket::Connection* session : sessions)
{
session->close("Error in connecting to host port");
}
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index 7839e65..775e6e1 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -564,8 +564,8 @@
{
return -1;
}
- r = sd_bus_message_append_basic(m, argCode[0],
- (void *)stringValue->c_str());
+ r = sd_bus_message_append_basic(
+ m, argCode[0], static_cast<const void *>(stringValue->data()));
if (r < 0)
{
return r;
@@ -1640,8 +1640,8 @@
},
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
- "xyz.openbmc_project.ObjectMapper", "GetSubTree", objectPath,
- static_cast<int32_t>(0), std::array<const char *, 0>());
+ "xyz.openbmc_project.ObjectMapper", "GetSubTree", objectPath, 0,
+ std::array<const char *, 0>());
}
void handleGet(crow::Response &res, std::string &objectPath,
@@ -2500,14 +2500,15 @@
propertiesObj[name];
crow::connections::systemBus->async_send(
m, [&propertyItem, asyncResp](
- boost::system::error_code &ec,
- sdbusplus::message::message &m) {
- if (ec)
+ boost::system::error_code &e,
+ sdbusplus::message::message &msg) {
+ if (e)
{
return;
}
- convertDBusToJSON("v", m, propertyItem);
+ convertDBusToJSON("v", msg,
+ propertyItem);
});
}
property = property->NextSiblingElement("property");
diff --git a/include/pam_authenticate.hpp b/include/pam_authenticate.hpp
index f211a29..1469aef 100644
--- a/include/pam_authenticate.hpp
+++ b/include/pam_authenticate.hpp
@@ -25,7 +25,7 @@
std::strcpy(pass, appPass);
*resp = reinterpret_cast<pam_response*>(
- calloc(numMsg, sizeof(struct pam_response)));
+ calloc(static_cast<size_t>(numMsg), sizeof(struct pam_response)));
if (resp == nullptr)
{
diff --git a/include/persistent_data_middleware.hpp b/include/persistent_data_middleware.hpp
index 1162fc5..5d7e97c 100644
--- a/include/persistent_data_middleware.hpp
+++ b/include/persistent_data_middleware.hpp
@@ -25,7 +25,7 @@
class Middleware
{
- int jsonRevision = 1;
+ uint64_t jsonRevision = 1;
public:
// todo(ed) should read this from a fixed location somewhere, not CWD
@@ -62,7 +62,7 @@
void readData()
{
std::ifstream persistentFile(filename);
- int fileRevision = 0;
+ uint64_t fileRevision = 0;
if (persistentFile.is_open())
{
// call with exceptions disabled
diff --git a/include/sessions.hpp b/include/sessions.hpp
index 2900cd5..b183a0e 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -362,22 +362,22 @@
// https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Session_ID_Entropy
std::string sessionToken;
sessionToken.resize(20, '0');
- std::uniform_int_distribution<int> dist(0, alphanum.size() - 1);
- for (int i = 0; i < sessionToken.size(); ++i)
+ std::uniform_int_distribution<size_t> dist(0, alphanum.size() - 1);
+ for (size_t i = 0; i < sessionToken.size(); ++i)
{
sessionToken[i] = alphanum[dist(rd)];
}
// Only need csrf tokens for cookie based auth, token doesn't matter
std::string csrfToken;
csrfToken.resize(20, '0');
- for (int i = 0; i < csrfToken.size(); ++i)
+ for (size_t i = 0; i < csrfToken.size(); ++i)
{
csrfToken[i] = alphanum[dist(rd)];
}
std::string uniqueId;
uniqueId.resize(10, '0');
- for (int i = 0; i < uniqueId.size(); ++i)
+ for (size_t i = 0; i < uniqueId.size(); ++i)
{
uniqueId[i] = alphanum[dist(rd)];
}
@@ -449,7 +449,7 @@
{
return needWrite;
}
- int getTimeoutInSeconds() const
+ int64_t getTimeoutInSeconds() const
{
return std::chrono::seconds(timeoutInMinutes).count();
};
diff --git a/include/ssl_key_handler.hpp b/include/ssl_key_handler.hpp
index ce6d9fa..d634d63 100644
--- a/include/ssl_key_handler.hpp
+++ b/include/ssl_key_handler.hpp
@@ -17,10 +17,7 @@
namespace ensuressl
{
static void initOpenssl();
-static void cleanupOpenssl();
-static EVP_PKEY *createRsaKey();
static EVP_PKEY *createEcKey();
-static void handleOpensslError();
// Trust chain related errors.`
inline bool isTrustChainError(int errnum)
@@ -112,7 +109,6 @@
if (file != NULL)
{
EVP_PKEY *pkey = PEM_read_PrivateKey(file, NULL, NULL, NULL);
- int rc;
if (pkey != nullptr)
{
RSA *rsa = EVP_PKEY_get1_RSA(pkey);
@@ -200,7 +196,7 @@
// number If this is not random, regenerating certs throws broswer
// errors
std::random_device rd;
- int serial = rd();
+ int serial = static_cast<int>(rd());
ASN1_INTEGER_set(X509_get_serialNumber(x509), serial);
@@ -254,45 +250,6 @@
// cleanup_openssl();
}
-EVP_PKEY *createRsaKey()
-{
- RSA *pRSA = NULL;
-#if OPENSSL_VERSION_NUMBER < 0x00908000L
- pRSA = RSA_generate_key(2048, RSA_3, NULL, NULL);
-#else
- RSA_generate_key_ex(pRSA, 2048, NULL, NULL);
-#endif
-
- EVP_PKEY *pKey = EVP_PKEY_new();
- if ((pRSA != nullptr) && (pKey != nullptr) &&
- EVP_PKEY_assign_RSA(pKey, pRSA))
- {
- /* pKey owns pRSA from now */
- if (RSA_check_key(pRSA) <= 0)
- {
- fprintf(stderr, "RSA_check_key failed.\n");
- handleOpensslError();
- EVP_PKEY_free(pKey);
- pKey = NULL;
- }
- }
- else
- {
- handleOpensslError();
- if (pRSA != nullptr)
- {
- RSA_free(pRSA);
- pRSA = NULL;
- }
- if (pKey != nullptr)
- {
- EVP_PKEY_free(pKey);
- pKey = NULL;
- }
- }
- return pKey;
-}
-
EVP_PKEY *createEcKey()
{
EVP_PKEY *pKey = NULL;
@@ -329,20 +286,6 @@
#endif
}
-void cleanupOpenssl()
-{
- CRYPTO_cleanup_all_ex_data();
- ERR_free_strings();
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
- ERR_remove_thread_state(0);
-#endif
- EVP_cleanup();
-}
-
-void handleOpensslError()
-{
- ERR_print_errors_fp(stderr);
-}
inline void ensureOpensslKeyPresentAndValid(const std::string &filepath)
{
bool pemFileValid = false;
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index 3f229e6..6485920 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -23,8 +23,8 @@
class Handler : public std::enable_shared_from_this<Handler>
{
public:
- Handler(const std::string& media, boost::asio::io_service& ios) :
- pipeOut(ios), pipeIn(ios), media(media), doingWrite(false),
+ Handler(const std::string& mediaIn, boost::asio::io_context& ios) :
+ pipeOut(ios), pipeIn(ios), media(mediaIn), doingWrite(false),
outputBuffer(new boost::beast::flat_static_buffer<nbdBufferSize>),
inputBuffer(new boost::beast::flat_static_buffer<nbdBufferSize>)
{
diff --git a/redfish-core/include/node.hpp b/redfish-core/include/node.hpp
index 5819527..4c78eef 100644
--- a/redfish-core/include/node.hpp
+++ b/redfish-core/include/node.hpp
@@ -55,7 +55,7 @@
{
public:
template <typename... Params>
- Node(CrowApp& app, std::string&& entityUrl, Params... params)
+ Node(CrowApp& app, std::string&& entityUrl, Params... paramsIn)
{
crow::DynamicRule& get = app.routeDynamic(entityUrl.c_str());
getRule = &get;
diff --git a/redfish-core/include/privileges.hpp b/redfish-core/include/privileges.hpp
index ec6e6a5..09fa05a 100644
--- a/redfish-core/include/privileges.hpp
+++ b/redfish-core/include/privileges.hpp
@@ -38,10 +38,10 @@
"Login", "ConfigureManager", "ConfigureComponents", "ConfigureSelf",
"ConfigureUsers"};
-constexpr const int basePrivilegeCount = basePrivileges.size();
+constexpr const size_t basePrivilegeCount = basePrivileges.size();
/** @brief Max number of privileges per type */
-constexpr const int maxPrivilegeCount = 32;
+constexpr const size_t maxPrivilegeCount = 32;
/** @brief A vector of all privilege names and their indexes */
static const std::vector<std::string> privilegeNames{basePrivileges.begin(),
@@ -100,7 +100,7 @@
*/
bool setSinglePrivilege(const char* privilege)
{
- for (int searchIndex = 0; searchIndex < privilegeNames.size();
+ for (size_t searchIndex = 0; searchIndex < privilegeNames.size();
searchIndex++)
{
if (privilege == privilegeNames[searchIndex])
@@ -140,8 +140,8 @@
{
std::vector<const std::string*> activePrivileges;
- int searchIndex = 0;
- int endIndex = basePrivilegeCount;
+ size_t searchIndex = 0;
+ size_t endIndex = basePrivilegeCount;
if (type == PrivilegeType::OEM)
{
searchIndex = basePrivilegeCount - 1;
diff --git a/redfish-core/include/registries.hpp b/redfish-core/include/registries.hpp
index 6b30be9..411e9a0 100644
--- a/redfish-core/include/registries.hpp
+++ b/redfish-core/include/registries.hpp
@@ -34,7 +34,7 @@
const char* description;
const char* message;
const char* severity;
- const int numberOfArgs;
+ const size_t numberOfArgs;
std::array<const char*, 5> paramTypes;
const char* resolution;
};
diff --git a/redfish-core/include/registries/base_message_registry.hpp b/redfish-core/include/registries/base_message_registry.hpp
index 472f51e..1c429c5 100644
--- a/redfish-core/include/registries/base_message_registry.hpp
+++ b/redfish-core/include/registries/base_message_registry.hpp
@@ -23,945 +23,820 @@
namespace redfish::message_registries::base
{
const Header header = {
- .copyright = "Copyright 2014-2018 DMTF. All rights reserved.",
- .type = "#MessageRegistry.v1_0_0.MessageRegistry",
- .id = "Base.1.4.0",
- .name = "Base Message Registry",
- .language = "en",
- .description = "This registry defines the base messages for Redfish",
- .registryPrefix = "Base",
- .registryVersion = "1.4.0",
- .owningEntity = "DMTF",
+ "Copyright 2014-2018 DMTF. All rights reserved.",
+ "#MessageRegistry.v1_0_0.MessageRegistry",
+ "Base.1.4.0",
+ "Base Message Registry",
+ "en",
+ "This registry defines the base messages for Redfish",
+ "Base",
+ "1.4.0",
+ "DMTF",
};
-const std::array registry = {
+const std::array<MessageEntry, 58> registry = {
MessageEntry{
"AccessDenied",
{
- .description =
- "Indicates that while attempting to access, connect to or "
- "transfer to/from another resource, the service denied access.",
- .message = "While attempting to establish a connection to %1, the "
- "service denied access.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Attempt to ensure that the URI is correct and that "
- "the service has the appropriate credentials.",
+ "Indicates that while attempting to access, connect to or transfer "
+ "to/from another resource, the service denied access.",
+ "While attempting to establish a connection to %1, the service "
+ "denied access.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Attempt to ensure that the URI is correct and that the service "
+ "has the appropriate credentials.",
}},
- MessageEntry{
- "AccountForSessionNoLongerExists",
- {
- .description =
- "Indicates that the account for the session has been removed, "
- "thus the session has been removed as well.",
- .message = "The account for the current session has been removed, "
- "thus the current session has been removed as well.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Attempt to connect with a valid account.",
- }},
- MessageEntry{
- "AccountModified",
- {
- .description =
- "Indicates that the account was successfully modified.",
- .message = "The account was successfully modified.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "No resolution is required.",
- }},
- MessageEntry{
- "AccountNotModified",
- {
- .description = "Indicates that the modification requested for the "
- "account was not successful.",
- .message = "The account modification request failed.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "The modification may have failed due to permission "
- "issues or issues with the request body.",
- }},
+ MessageEntry{"AccountForSessionNoLongerExists",
+ {
+ "Indicates that the account for the session has been "
+ "removed, thus the session has been removed as well.",
+ "The account for the current session has been removed, "
+ "thus the current session has been removed as well.",
+ "OK",
+ 0,
+ {},
+ "Attempt to connect with a valid account.",
+ }},
+ MessageEntry{"AccountModified",
+ {
+ "Indicates that the account was successfully modified.",
+ "The account was successfully modified.",
+ "OK",
+ 0,
+ {},
+ "No resolution is required.",
+ }},
+ MessageEntry{"AccountNotModified",
+ {
+ "Indicates that the modification requested for the "
+ "account was not successful.",
+ "The account modification request failed.",
+ "Warning",
+ 0,
+ {},
+ "The modification may have failed due to permission "
+ "issues or issues with the request body.",
+ }},
MessageEntry{"AccountRemoved",
{
- .description =
- "Indicates that the account was successfully removed.",
- .message = "The account was successfully removed.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "No resolution is required.",
+ "Indicates that the account was successfully removed.",
+ "The account was successfully removed.",
+ "OK",
+ 0,
+ {},
+ "No resolution is required.",
}},
MessageEntry{
"ActionNotSupported",
{
- .description = "Indicates that the action supplied with the POST "
- "operation is not supported by the resource.",
- .message = "The action %1 is not supported by the resource.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "The action supplied cannot be resubmitted to the "
- "implementation. Perhaps the action was invalid, "
- "the wrong resource was the target or the "
- "implementation documentation may be of assistance.",
+ "Indicates that the action supplied with the POST operation is not "
+ "supported by the resource.",
+ "The action %1 is not supported by the resource.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "The action supplied cannot be resubmitted to the implementation. "
+ "Perhaps the action was invalid, the wrong resource was the target "
+ "or the implementation documentation may be of assistance.",
}},
- MessageEntry{
- "ActionParameterDuplicate",
- {
- .description = "Indicates that the action was supplied with a "
- "duplicated parameter in the request body.",
- .message = "The action %1 was submitted with more than one value "
- "for the parameter %2.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution =
- "Resubmit the action with only one instance of the parameter "
- "in the request body if the operation failed.",
- }},
- MessageEntry{
- "ActionParameterMissing",
- {
- .description = "Indicates that the action requested was missing a "
- "parameter that is required to process the action.",
- .message = "The action %1 requires the parameter %2 to be present "
- "in the request body.",
- .severity = "Critical",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Supply the action with the required parameter in "
- "the request body when the request is resubmitted.",
- }},
- MessageEntry{
- "ActionParameterNotSupported",
- {
- .description = "Indicates that the parameter supplied for the "
- "action is not supported on the resource.",
- .message = "The parameter %1 for the action %2 is not supported on "
- "the target resource.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Remove the parameter supplied and resubmit the "
- "request if the operation failed.",
- }},
+ MessageEntry{"ActionParameterDuplicate",
+ {
+ "Indicates that the action was supplied with a duplicated "
+ "parameter in the request body.",
+ "The action %1 was submitted with more than one value for "
+ "the parameter %2.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Resubmit the action with only one instance of the "
+ "parameter in the request body if the operation failed.",
+ }},
+ MessageEntry{"ActionParameterMissing",
+ {
+ "Indicates that the action requested was missing a "
+ "parameter that is required to process the action.",
+ "The action %1 requires the parameter %2 to be present in "
+ "the request body.",
+ "Critical",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Supply the action with the required parameter in the "
+ "request body when the request is resubmitted.",
+ }},
+ MessageEntry{"ActionParameterNotSupported",
+ {
+ "Indicates that the parameter supplied for the action is "
+ "not supported on the resource.",
+ "The parameter %1 for the action %2 is not supported on "
+ "the target resource.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Remove the parameter supplied and resubmit the request "
+ "if the operation failed.",
+ }},
MessageEntry{
"ActionParameterUnknown",
{
- .description =
- "Indicates that an action was submitted but a parameter "
- "supplied did not match any of the known parameters.",
- .message =
- "The action %1 was submitted with the invalid parameter %2.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Correct the invalid parameter and resubmit the "
- "request if the operation failed.",
+ "Indicates that an action was submitted but a parameter supplied "
+ "did not match any of the known parameters.",
+ "The action %1 was submitted with the invalid parameter %2.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Correct the invalid parameter and resubmit the request if the "
+ "operation failed.",
}},
- MessageEntry{
- "ActionParameterValueFormatError",
- {
- .description =
- "Indicates that a parameter was given the correct value type "
- "but the value of that parameter was not supported. This "
- "includes value size/length exceeded.",
- .message = "The value %1 for the parameter %2 in the action %3 is "
- "of a different format than the parameter can accept.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "string",
- "string",
- "string",
- },
- .resolution =
- "Correct the value for the parameter in the request body and "
- "resubmit the request if the operation failed.",
- }},
- MessageEntry{
- "ActionParameterValueTypeError",
- {
- .description = "Indicates that a parameter was given the wrong "
- "value type, such as when a number is supplied for "
- "a parameter that requires a string.",
- .message = "The value %1 for the parameter %2 in the action %3 is "
- "of a different type than the parameter can accept.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "string",
- "string",
- "string",
- },
- .resolution =
- "Correct the value for the parameter in the request body and "
- "resubmit the request if the operation failed.",
- }},
+ MessageEntry{"ActionParameterValueFormatError",
+ {
+ "Indicates that a parameter was given the correct value "
+ "type but the value of that parameter was not supported. "
+ "This includes value size/length exceeded.",
+ "The value %1 for the parameter %2 in the action %3 is of "
+ "a different format than the parameter can accept.",
+ "Warning",
+ 3,
+ {
+ "string",
+ "string",
+ "string",
+ },
+ "Correct the value for the parameter in the request body "
+ "and resubmit the request if the operation failed.",
+ }},
+ MessageEntry{"ActionParameterValueTypeError",
+ {
+ "Indicates that a parameter was given the wrong value "
+ "type, such as when a number is supplied for a parameter "
+ "that requires a string.",
+ "The value %1 for the parameter %2 in the action %3 is of "
+ "a different type than the parameter can accept.",
+ "Warning",
+ 3,
+ {
+ "string",
+ "string",
+ "string",
+ },
+ "Correct the value for the parameter in the request body "
+ "and resubmit the request if the operation failed.",
+ }},
MessageEntry{
"CouldNotEstablishConnection",
{
- .description = "Indicates that the attempt to access the "
- "resource/file/image at the URI was unsuccessful "
- "because a session could not be established.",
- .message =
- "The service failed to establish a connection with the URI %1.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution =
- "Ensure that the URI contains a valid and reachable node name, "
- "protocol information and other URI components.",
+ "Indicates that the attempt to access the resource/file/image at "
+ "the URI was unsuccessful because a session could not be "
+ "established.",
+ "The service failed to establish a connection with the URI %1.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Ensure that the URI contains a valid and reachable node name, "
+ "protocol information and other URI components.",
}},
MessageEntry{
"CreateFailedMissingReqProperties",
{
- .description =
- "Indicates that a create was attempted on a resource but that "
- "properties that are required for the create operation were "
- "missing from the request.",
- .message = "The create operation failed because the required "
- "property %1 was missing from the request.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution =
- "Correct the body to include the required property with a "
- "valid value and resubmit the request if the operation failed.",
+ "Indicates that a create was attempted on a resource but that "
+ "properties that are required for the create operation were "
+ "missing from the request.",
+ "The create operation failed because the required property %1 was "
+ "missing from the request.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Correct the body to include the required property with a valid "
+ "value and resubmit the request if the operation failed.",
}},
- MessageEntry{
- "CreateLimitReachedForResource",
- {
- .description = "Indicates that no more resources can be created on "
- "the resource as it has reached its create limit.",
- .message = "The create operation failed because the resource has "
- "reached the limit of possible resources.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution =
- "Either delete resources and resubmit the request if the "
- "operation failed or do not resubmit the request.",
- }},
+ MessageEntry{"CreateLimitReachedForResource",
+ {
+ "Indicates that no more resources can be created on the "
+ "resource as it has reached its create limit.",
+ "The create operation failed because the resource has "
+ "reached the limit of possible resources.",
+ "Critical",
+ 0,
+ {},
+ "Either delete resources and resubmit the request if the "
+ "operation failed or do not resubmit the request.",
+ }},
MessageEntry{"Created",
{
- .description =
- "Indicates that all conditions of a successful "
- "creation operation have been met.",
- .message = "The resource has been created successfully",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None",
+ "Indicates that all conditions of a successful creation "
+ "operation have been met.",
+ "The resource has been created successfully",
+ "OK",
+ 0,
+ {},
+ "None",
}},
MessageEntry{
"EmptyJSON",
{
- .description =
- "Indicates that the request body contained an empty JSON "
- "object when one or more properties are expected in the body.",
- .message = "The request body submitted contained an empty JSON "
- "object and the service is unable to process it.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution =
- "Add properties in the JSON object and resubmit the request.",
+ "Indicates that the request body contained an empty JSON object "
+ "when one or more properties are expected in the body.",
+ "The request body submitted contained an empty JSON object and the "
+ "service is unable to process it.",
+ "Warning",
+ 0,
+ {},
+ "Add properties in the JSON object and resubmit the request.",
}},
MessageEntry{
"EventSubscriptionLimitExceeded",
{
- .description = "Indicates that a event subscription establishment "
- "has been requested but the operation failed due to "
- "the number of simultaneous connection exceeding "
- "the limit of the implementation.",
- .message = "The event subscription failed due to the number of "
- "simultaneous subscriptions exceeding the limit of the "
- "implementation.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution =
- "Reduce the number of other subscriptions before trying to "
- "establish the event subscription or increase the limit of "
- "simultaneous subscriptions (if supported).",
+ "Indicates that a event subscription establishment has been "
+ "requested but the operation failed due to the number of "
+ "simultaneous connection exceeding the limit of the "
+ "implementation.",
+ "The event subscription failed due to the number of simultaneous "
+ "subscriptions exceeding the limit of the implementation.",
+ "Critical",
+ 0,
+ {},
+ "Reduce the number of other subscriptions before trying to "
+ "establish the event subscription or increase the limit of "
+ "simultaneous subscriptions (if supported).",
}},
MessageEntry{
"GeneralError",
{
- .description =
- "Indicates that a general error has occurred. Use in "
- "ExtendedInfo is discouraged. When used in ExtendedInfo, "
- "implementations are expected to include a Resolution property "
- "with this error to indicate how to resolve the problem.",
- .message = "A general error has occurred. See Resolution for "
- "information on how to resolve the error.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that a general error has occurred. Use in ExtendedInfo "
+ "is discouraged. When used in ExtendedInfo, implementations are "
+ "expected to include a Resolution property with this error to "
+ "indicate how to resolve the problem.",
+ "A general error has occurred. See Resolution for information on "
+ "how to resolve the error.",
+ "Critical",
+ 0,
+ {},
+ "None.",
}},
MessageEntry{
"InsufficientPrivilege",
{
- .description = "Indicates that the credentials associated with the "
- "established session do not have sufficient "
- "privileges for the requested operation",
- .message = "There are insufficient privileges for the account or "
- "credentials associated with the current session to "
- "perform the requested operation.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution =
- "Either abandon the operation or change the associated access "
- "rights and resubmit the request if the operation failed.",
+ "Indicates that the credentials associated with the established "
+ "session do not have sufficient privileges for the requested "
+ "operation",
+ "There are insufficient privileges for the account or credentials "
+ "associated with the current session to perform the requested "
+ "operation.",
+ "Critical",
+ 0,
+ {},
+ "Either abandon the operation or change the associated access "
+ "rights and resubmit the request if the operation failed.",
}},
MessageEntry{
"InternalError",
{
- .description =
- "Indicates that the request failed for an unknown internal "
- "error but that the service is still operational.",
- .message = "The request failed due to an internal service error. "
- "The service is still operational.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Resubmit the request. If the problem persists, "
- "consider resetting the service.",
+ "Indicates that the request failed for an unknown internal error "
+ "but that the service is still operational.",
+ "The request failed due to an internal service error. The service "
+ "is still operational.",
+ "Critical",
+ 0,
+ {},
+ "Resubmit the request. If the problem persists, consider "
+ "resetting the service.",
}},
- MessageEntry{
- "InvalidIndex",
- {
- .description = "The Index is not valid.",
- .message = "The Index %1 is not a valid offset into the array.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "number",
- },
- .resolution = "Verify the index value provided is within the "
- "bounds of the array.",
- }},
+ MessageEntry{"InvalidIndex",
+ {
+ "The Index is not valid.",
+ "The Index %1 is not a valid offset into the array.",
+ "Warning",
+ 1,
+ {
+ "number",
+ },
+ "Verify the index value provided is within the bounds of "
+ "the array.",
+ }},
MessageEntry{
"InvalidObject",
{
- .description = "Indicates that the object in question is invalid "
- "according to the implementation. Examples include "
- "a firmware update malformed URI.",
- .message = "The object at %1 is invalid.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution =
- "Either the object is malformed or the URI is not correct. "
- "Correct the condition and resubmit the request if it failed.",
+ "Indicates that the object in question is invalid according to the "
+ "implementation. Examples include a firmware update malformed "
+ "URI.",
+ "The object at %1 is invalid.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Either the object is malformed or the URI is not correct. "
+ "Correct the condition and resubmit the request if it failed.",
}},
- MessageEntry{
- "MalformedJSON",
- {
- .description = "Indicates that the request body was malformed "
- "JSON. Could be duplicate, syntax error,etc.",
- .message = "The request body submitted was malformed JSON and "
- "could not be parsed by the receiving service.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Ensure that the request body is valid JSON and "
- "resubmit the request.",
- }},
+ MessageEntry{"MalformedJSON",
+ {
+ "Indicates that the request body was malformed JSON. "
+ "Could be duplicate, syntax error,etc.",
+ "The request body submitted was malformed JSON and could "
+ "not be parsed by the receiving service.",
+ "Critical",
+ 0,
+ {},
+ "Ensure that the request body is valid JSON and resubmit "
+ "the request.",
+ }},
MessageEntry{
"NoOperation",
{
- .description = "Indicates that the requested operation will not "
- "perform any changes on the service.",
- .message = "The request body submitted contain no data to act upon "
- "and no changes to the resource took place.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution =
- "Add properties in the JSON object and resubmit the request.",
+ "Indicates that the requested operation will not perform any "
+ "changes on the service.",
+ "The request body submitted contain no data to act upon and no "
+ "changes to the resource took place.",
+ "Warning",
+ 0,
+ {},
+ "Add properties in the JSON object and resubmit the request.",
}},
MessageEntry{
"NoValidSession",
{
- .description =
- "Indicates that the operation failed because a valid session "
- "is required in order to access any resources.",
- .message = "There is no valid session established with the "
- "implementation.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution =
- "Establish as session before attempting any operations.",
+ "Indicates that the operation failed because a valid session is "
+ "required in order to access any resources.",
+ "There is no valid session established with the implementation.",
+ "Critical",
+ 0,
+ {},
+ "Establish as session before attempting any operations.",
}},
- MessageEntry{
- "PropertyDuplicate",
- {
- .description = "Indicates that a duplicate property was included "
- "in the request body.",
- .message = "The property %1 was duplicated in the request.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Remove the duplicate property from the request body "
- "and resubmit the request if the operation failed.",
- }},
+ MessageEntry{"PropertyDuplicate",
+ {
+ "Indicates that a duplicate property was included in the "
+ "request body.",
+ "The property %1 was duplicated in the request.",
+ "Warning",
+ 1,
+ {
+ "string",
+ },
+ "Remove the duplicate property from the request body and "
+ "resubmit the request if the operation failed.",
+ }},
MessageEntry{
"PropertyMissing",
{
- .description = "Indicates that a required property was not "
- "supplied as part of the request.",
- .message = "The property %1 is a required property and must be "
- "included in the request.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution =
- "Ensure that the property is in the request body and has a "
- "valid value and resubmit the request if the operation failed.",
+ "Indicates that a required property was not supplied as part of "
+ "the request.",
+ "The property %1 is a required property and must be included in "
+ "the request.",
+ "Warning",
+ 1,
+ {
+ "string",
+ },
+ "Ensure that the property is in the request body and has a valid "
+ "value and resubmit the request if the operation failed.",
}},
- MessageEntry{
- "PropertyNotWritable",
- {
- .description =
- "Indicates that a property was given a value in the request "
- "body, but the property is a readonly property.",
- .message = "The property %1 is a read only property and cannot be "
- "assigned a value.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Remove the property from the request body and "
- "resubmit the request if the operation failed.",
- }},
- MessageEntry{
- "PropertyUnknown",
- {
- .description = "Indicates that an unknown property was included in "
- "the request body.",
- .message = "The property %1 is not in the list of valid properties "
- "for the resource.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Remove the unknown property from the request body "
- "and resubmit the request if the operation failed.",
- }},
- MessageEntry{
- "PropertyValueFormatError",
- {
- .description =
- "Indicates that a property was given the correct value type "
- "but the value of that property was not supported.",
- .message = "The value %1 for the property %2 is of a different "
- "format than the property can accept.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution =
- "Correct the value for the property in the request body and "
- "resubmit the request if the operation failed.",
- }},
+ MessageEntry{"PropertyNotWritable",
+ {
+ "Indicates that a property was given a value in the "
+ "request body, but the property is a readonly property.",
+ "The property %1 is a read only property and cannot be "
+ "assigned a value.",
+ "Warning",
+ 1,
+ {
+ "string",
+ },
+ "Remove the property from the request body and resubmit "
+ "the request if the operation failed.",
+ }},
+ MessageEntry{"PropertyUnknown",
+ {
+ "Indicates that an unknown property was included in the "
+ "request body.",
+ "The property %1 is not in the list of valid properties "
+ "for the resource.",
+ "Warning",
+ 1,
+ {
+ "string",
+ },
+ "Remove the unknown property from the request body and "
+ "resubmit the request if the operation failed.",
+ }},
+ MessageEntry{"PropertyValueFormatError",
+ {
+ "Indicates that a property was given the correct value "
+ "type but the value of that property was not supported.",
+ "The value %1 for the property %2 is of a different "
+ "format than the property can accept.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Correct the value for the property in the request body "
+ "and resubmit the request if the operation failed.",
+ }},
MessageEntry{"PropertyValueModified",
{
- .description =
- "Indicates that a property was given the correct "
- "value type but the value of that property was "
- "modified. Examples are truncated or rounded values.",
- .message = "The property %1 was assigned the value %2 due "
- "to modification by the service.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "No resolution is required.",
+ "Indicates that a property was given the correct value "
+ "type but the value of that property was modified. "
+ "Examples are truncated or rounded values.",
+ "The property %1 was assigned the value %2 due to "
+ "modification by the service.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "No resolution is required.",
}},
MessageEntry{
"PropertyValueNotInList",
{
- .description = "Indicates that a property was given the correct "
- "value type but the value of that property was not "
- "supported. This values not in an enumeration",
- .message = "The value %1 for the property %2 is not in the list of "
- "acceptable values.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Choose a value from the enumeration list that the "
- "implementation can support and resubmit the request "
- "if the operation failed.",
+ "Indicates that a property was given the correct value type but "
+ "the value of that property was not supported. This values not in "
+ "an enumeration",
+ "The value %1 for the property %2 is not in the list of acceptable "
+ "values.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Choose a value from the enumeration list that the implementation "
+ "can support and resubmit the request if the operation failed.",
}},
MessageEntry{
"PropertyValueTypeError",
{
- .description = "Indicates that a property was given the wrong "
- "value type, such as when a number is supplied for "
- "a property that requires a string.",
- .message = "The value %1 for the property %2 is of a different "
- "type than the property can accept.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution =
- "Correct the value for the property in the request body and "
- "resubmit the request if the operation failed.",
+ "Indicates that a property was given the wrong value type, such as "
+ "when a number is supplied for a property that requires a string.",
+ "The value %1 for the property %2 is of a different type than the "
+ "property can accept.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Correct the value for the property in the request body and "
+ "resubmit the request if the operation failed.",
}},
MessageEntry{
"QueryNotSupported",
{
- .description =
- "Indicates that query is not supported on the implementation.",
- .message = "Querying is not supported by the implementation.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Remove the query parameters and resubmit the "
- "request if the operation failed.",
+ "Indicates that query is not supported on the implementation.",
+ "Querying is not supported by the implementation.",
+ "Warning",
+ 0,
+ {},
+ "Remove the query parameters and resubmit the request if the "
+ "operation failed.",
}},
- MessageEntry{
- "QueryNotSupportedOnResource",
- {
- .description = "Indicates that query is not supported on the given "
- "resource, such as when a start/count query is "
- "attempted on a resource that is not a collection.",
- .message = "Querying is not supported on the requested resource.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Remove the query parameters and resubmit the "
- "request if the operation failed.",
- }},
+ MessageEntry{"QueryNotSupportedOnResource",
+ {
+ "Indicates that query is not supported on the given "
+ "resource, such as when a start/count query is attempted "
+ "on a resource that is not a collection.",
+ "Querying is not supported on the requested resource.",
+ "Warning",
+ 0,
+ {},
+ "Remove the query parameters and resubmit the request if "
+ "the operation failed.",
+ }},
MessageEntry{
"QueryParameterOutOfRange",
{
- .description = "Indicates that a query parameter was supplied that "
- "is out of range for the given resource. This can "
- "happen with values that are too low or beyond that "
- "possible for the supplied resource, such as when a "
- "page is requested that is beyond the last page.",
- .message =
- "The value %1 for the query parameter %2 is out of range %3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "string",
- "string",
- "string",
- },
- .resolution =
- "Reduce the value for the query parameter to a value that is "
- "within range, such as a start or count value that is within "
- "bounds of the number of resources in a collection or a page "
- "that is within the range of valid pages.",
+ "Indicates that a query parameter was supplied that is out of "
+ "range for the given resource. This can happen with values that "
+ "are too low or beyond that possible for the supplied resource, "
+ "such as when a page is requested that is beyond the last page.",
+ "The value %1 for the query parameter %2 is out of range %3.",
+ "Warning",
+ 3,
+ {
+ "string",
+ "string",
+ "string",
+ },
+ "Reduce the value for the query parameter to a value that is "
+ "within range, such as a start or count value that is within "
+ "bounds of the number of resources in a collection or a page that "
+ "is within the range of valid pages.",
}},
- MessageEntry{
- "QueryParameterValueFormatError",
- {
- .description =
- "Indicates that a query parameter was given the correct value "
- "type but the value of that parameter was not supported. This "
- "includes value size/length exceeded.",
- .message = "The value %1 for the parameter %2 is of a different "
- "format than the parameter can accept.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution =
- "Correct the value for the query parameter in the request and "
- "resubmit the request if the operation failed.",
- }},
- MessageEntry{
- "QueryParameterValueTypeError",
- {
- .description =
- "Indicates that a query parameter was given the wrong value "
- "type, such as when a number is supplied for a query parameter "
- "that requires a string.",
- .message = "The value %1 for the query parameter %2 is of a "
- "different type than the parameter can accept.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution =
- "Correct the value for the query parameter in the request and "
- "resubmit the request if the operation failed.",
- }},
- MessageEntry{
- "ResourceAlreadyExists",
- {
- .description = "Indicates that a resource change or creation was "
- "attempted but that the operation cannot proceed "
- "because the resource already exists.",
- .message = "The requested resource of type %1 with the property %2 "
- "with the value %3 already exists.",
- .severity = "Critical",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "string",
- "string",
- "string",
- },
- .resolution = "Do not repeat the create operation as the resource "
- "has already been created.",
- }},
+ MessageEntry{"QueryParameterValueFormatError",
+ {
+ "Indicates that a query parameter was given the correct "
+ "value type but the value of that parameter was not "
+ "supported. This includes value size/length exceeded.",
+ "The value %1 for the parameter %2 is of a different "
+ "format than the parameter can accept.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Correct the value for the query parameter in the request "
+ "and resubmit the request if the operation failed.",
+ }},
+ MessageEntry{"QueryParameterValueTypeError",
+ {
+ "Indicates that a query parameter was given the wrong "
+ "value type, such as when a number is supplied for a "
+ "query parameter that requires a string.",
+ "The value %1 for the query parameter %2 is of a "
+ "different type than the parameter can accept.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Correct the value for the query parameter in the request "
+ "and resubmit the request if the operation failed.",
+ }},
+ MessageEntry{"ResourceAlreadyExists",
+ {
+ "Indicates that a resource change or creation was "
+ "attempted but that the operation cannot proceed because "
+ "the resource already exists.",
+ "The requested resource of type %1 with the property %2 "
+ "with the value %3 already exists.",
+ "Critical",
+ 3,
+ {
+ "string",
+ "string",
+ "string",
+ },
+ "Do not repeat the create operation as the resource has "
+ "already been created.",
+ }},
MessageEntry{
"ResourceAtUriInUnknownFormat",
{
- .description =
- "Indicates that the URI was valid but the resource or image at "
- "that URI was in a format not supported by the service.",
- .message = "The resource at %1 is in a format not recognized by "
- "the service.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Place an image or resource or file that is "
- "recognized by the service at the URI.",
+ "Indicates that the URI was valid but the resource or image at "
+ "that URI was in a format not supported by the service.",
+ "The resource at %1 is in a format not recognized by the service.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Place an image or resource or file that is recognized by the "
+ "service at the URI.",
}},
- MessageEntry{
- "ResourceAtUriUnauthorized",
- {
- .description = "Indicates that the attempt to access the "
- "resource/file/image at the URI was unauthorized.",
- .message = "While accessing the resource at %1, the service "
- "received an authorization error %2.",
- .severity = "Critical",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Ensure that the appropriate access is provided for "
- "the service in order for it to access the URI.",
- }},
- MessageEntry{
- "ResourceCannotBeDeleted",
- {
- .description = "Indicates that a delete operation was attempted on "
- "a resource that cannot be deleted.",
- .message = "The delete request failed because the resource "
- "requested cannot be deleted.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Do not attempt to delete a non-deletable resource.",
- }},
+ MessageEntry{"ResourceAtUriUnauthorized",
+ {
+ "Indicates that the attempt to access the "
+ "resource/file/image at the URI was unauthorized.",
+ "While accessing the resource at %1, the service received "
+ "an authorization error %2.",
+ "Critical",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Ensure that the appropriate access is provided for the "
+ "service in order for it to access the URI.",
+ }},
+ MessageEntry{"ResourceCannotBeDeleted",
+ {
+ "Indicates that a delete operation was attempted on a "
+ "resource that cannot be deleted.",
+ "The delete request failed because the resource requested "
+ "cannot be deleted.",
+ "Critical",
+ 0,
+ {},
+ "Do not attempt to delete a non-deletable resource.",
+ }},
MessageEntry{
"ResourceExhaustion",
{
- .description =
- "Indicates that a resource could not satisfy the request due "
- "to some unavailability of resources. An example is that "
- "available capacity has been allocated.",
- .message = "The resource %1 was unable to satisfy the request due "
- "to unavailability of resources.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Ensure that the resources are available and "
- "resubmit the request.",
+ "Indicates that a resource could not satisfy the request due to "
+ "some unavailability of resources. An example is that available "
+ "capacity has been allocated.",
+ "The resource %1 was unable to satisfy the request due to "
+ "unavailability of resources.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Ensure that the resources are available and resubmit the request.",
}},
- MessageEntry{
- "ResourceInStandby",
- {
- .description = "Indicates that the request could not be performed "
- "because the resource is in standby.",
- .message = "The request could not be performed because the "
- "resource is in standby.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Ensure that the resource is in the correct power "
- "state and resubmit the request.",
- }},
- MessageEntry{
- "ResourceInUse",
- {
- .description = "Indicates that a change was requested to a "
- "resource but the change was rejected due to the "
- "resource being in use or transition.",
- .message = "The change to the requested resource failed because "
- "the resource is in use or in transition.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Remove the condition and resubmit the request if "
- "the operation failed.",
- }},
+ MessageEntry{"ResourceInStandby",
+ {
+ "Indicates that the request could not be performed "
+ "because the resource is in standby.",
+ "The request could not be performed because the resource "
+ "is in standby.",
+ "Critical",
+ 0,
+ {},
+ "Ensure that the resource is in the correct power state "
+ "and resubmit the request.",
+ }},
+ MessageEntry{"ResourceInUse",
+ {
+ "Indicates that a change was requested to a resource but "
+ "the change was rejected due to the resource being in use "
+ "or transition.",
+ "The change to the requested resource failed because the "
+ "resource is in use or in transition.",
+ "Warning",
+ 0,
+ {},
+ "Remove the condition and resubmit the request if the "
+ "operation failed.",
+ }},
MessageEntry{
"ResourceMissingAtURI",
{
- .description =
- "Indicates that the operation expected an image or other "
- "resource at the provided URI but none was found. Examples of "
- "this are in requests that require URIs like Firmware Update.",
- .message = "The resource at the URI %1 was not found.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Place a valid resource at the URI or correct the "
- "URI and resubmit the request.",
+ "Indicates that the operation expected an image or other resource "
+ "at the provided URI but none was found. Examples of this are in "
+ "requests that require URIs like Firmware Update.",
+ "The resource at the URI %1 was not found.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Place a valid resource at the URI or correct the URI and resubmit "
+ "the request.",
}},
MessageEntry{
"ResourceNotFound",
{
- .description = "Indicates that the operation expected a resource "
- "identifier that corresponds to an existing "
- "resource but one was not found.",
- .message =
- "The requested resource of type %1 named %2 was not found.",
- .severity = "Critical",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution =
- "Provide a valid resource identifier and resubmit the request.",
+ "Indicates that the operation expected a resource identifier that "
+ "corresponds to an existing resource but one was not found.",
+ "The requested resource of type %1 named %2 was not found.",
+ "Critical",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Provide a valid resource identifier and resubmit the request.",
}},
MessageEntry{
"ResourceTypeIncompatible",
{
- .description =
- "Indicates that the resource type of the operation does not "
- "match that for the operation destination. Examples of when "
- "this can happen include during a POST to a collection using "
- "the wrong resource type, an update where the @odata.types do "
- "not match or on a major version incompatability.",
- .message = "The @odata.type of the request body %1 is incompatible "
- "with the @odata.type of the resource which is %2.",
- .severity = "Critical",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Resubmit the request with a payload compatible with "
- "the resource's schema.",
+ "Indicates that the resource type of the operation does not match "
+ "that for the operation destination. Examples of when this can "
+ "happen include during a POST to a collection using the wrong "
+ "resource type, an update where the @odata.types do not match or "
+ "on a major version incompatability.",
+ "The @odata.type of the request body %1 is incompatible with the "
+ "@odata.type of the resource which is %2.",
+ "Critical",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Resubmit the request with a payload compatible with the "
+ "resource's schema.",
}},
MessageEntry{
"ServiceInUnknownState",
{
- .description =
- "Indicates that the operation failed because the service is in "
- "an unknown state and cannot accept additional requests.",
- .message =
- "The operation failed because the service is in an unknown "
- "state and can no longer take incoming requests.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Restart the service and resubmit the request if the "
- "operation failed.",
+ "Indicates that the operation failed because the service is in an "
+ "unknown state and cannot accept additional requests.",
+ "The operation failed because the service is in an unknown state "
+ "and can no longer take incoming requests.",
+ "Critical",
+ 0,
+ {},
+ "Restart the service and resubmit the request if the operation "
+ "failed.",
}},
- MessageEntry{
- "ServiceShuttingDown",
- {
- .description =
- "Indicates that the operation failed as the service is "
- "shutting down, such as when the service reboots.",
- .message = "The operation failed because the service is shutting "
- "down and can no longer take incoming requests.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "When the service becomes available, resubmit the "
- "request if the operation failed.",
- }},
+ MessageEntry{"ServiceShuttingDown",
+ {
+ "Indicates that the operation failed as the service is "
+ "shutting down, such as when the service reboots.",
+ "The operation failed because the service is shutting "
+ "down and can no longer take incoming requests.",
+ "Critical",
+ 0,
+ {},
+ "When the service becomes available, resubmit the request "
+ "if the operation failed.",
+ }},
MessageEntry{
"ServiceTemporarilyUnavailable",
{
- .description = "Indicates the service is temporarily unavailable.",
- .message =
- "The service is temporarily unavailable. Retry in %1 seconds.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "Wait for the indicated retry duration and retry the "
- "operation.",
+ "Indicates the service is temporarily unavailable.",
+ "The service is temporarily unavailable. Retry in %1 seconds.",
+ "Critical",
+ 1,
+ {
+ "string",
+ },
+ "Wait for the indicated retry duration and retry the operation.",
}},
MessageEntry{
"SessionLimitExceeded",
{
- .description =
- "Indicates that a session establishment has been requested but "
- "the operation failed due to the number of simultaneous "
- "sessions exceeding the limit of the implementation.",
- .message = "The session establishment failed due to the number of "
- "simultaneous sessions exceeding the limit of the "
- "implementation.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Reduce the number of other sessions before trying "
- "to establish the session or increase the limit of "
- "simultaneous sessions (if supported).",
+ "Indicates that a session establishment has been requested but the "
+ "operation failed due to the number of simultaneous sessions "
+ "exceeding the limit of the implementation.",
+ "The session establishment failed due to the number of "
+ "simultaneous sessions exceeding the limit of the implementation.",
+ "Critical",
+ 0,
+ {},
+ "Reduce the number of other sessions before trying to establish "
+ "the session or increase the limit of simultaneous sessions (if "
+ "supported).",
}},
MessageEntry{
"SessionTerminated",
{
- .description =
- "Indicates that the DELETE operation on the Session resource "
- "resulted in the successful termination of the session.",
- .message = "The session was successfully terminated.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "No resolution is required.",
+ "Indicates that the DELETE operation on the Session resource "
+ "resulted in the successful termination of the session.",
+ "The session was successfully terminated.",
+ "OK",
+ 0,
+ {},
+ "No resolution is required.",
}},
MessageEntry{
"SourceDoesNotSupportProtocol",
{
- .description =
- "Indicates that while attempting to access, connect to or "
- "transfer a resource/file/image from another location that the "
- "other end of the connection did not support the protocol",
- .message = "The other end of the connection at %1 does not support "
- "the specified protocol %2.",
- .severity = "Critical",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "Change protocols or URIs. ",
+ "Indicates that while attempting to access, connect to or transfer "
+ "a resource/file/image from another location that the other end of "
+ "the connection did not support the protocol",
+ "The other end of the connection at %1 does not support the "
+ "specified protocol %2.",
+ "Critical",
+ 2,
+ {
+ "string",
+ "string",
+ },
+ "Change protocols or URIs. ",
}},
- MessageEntry{
- "StringValueTooLong",
- {
- .description =
- "Indicates that a string value passed to the given resource "
- "exceeded its length limit. An example is when a shorter limit "
- "is imposed by an implementation than that allowed by the "
- "specification.",
- .message = "The string %1 exceeds the length limit %2.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "number",
- },
- .resolution =
- "Resubmit the request with an appropriate string length.",
- }},
+ MessageEntry{"StringValueTooLong",
+ {
+ "Indicates that a string value passed to the given "
+ "resource exceeded its length limit. An example is when a "
+ "shorter limit is imposed by an implementation than that "
+ "allowed by the specification.",
+ "The string %1 exceeds the length limit %2.",
+ "Warning",
+ 2,
+ {
+ "string",
+ "number",
+ },
+ "Resubmit the request with an appropriate string length.",
+ }},
MessageEntry{"Success",
{
- .description = "Indicates that all conditions of a "
- "successful operation have been met.",
- .message = "Successfully Completed Request",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None",
+ "Indicates that all conditions of a successful operation "
+ "have been met.",
+ "Successfully Completed Request",
+ "OK",
+ 0,
+ {},
+ "None",
}},
MessageEntry{
"UnrecognizedRequestBody",
{
- .description = "Indicates that the service encountered an "
- "unrecognizable request body that could not even be "
- "interpreted as malformed JSON.",
- .message = "The service detected a malformed request body that it "
- "was unable to interpret.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "Correct the request body and resubmit the request "
- "if it failed.",
+ "Indicates that the service encountered an unrecognizable request "
+ "body that could not even be interpreted as malformed JSON.",
+ "The service detected a malformed request body that it was unable "
+ "to interpret.",
+ "Warning",
+ 0,
+ {},
+ "Correct the request body and resubmit the request if it failed.",
}},
};
} // namespace redfish::message_registries::base
diff --git a/redfish-core/include/registries/openbmc_message_registry.hpp b/redfish-core/include/registries/openbmc_message_registry.hpp
index c3ec266..3b577949 100644
--- a/redfish-core/include/registries/openbmc_message_registry.hpp
+++ b/redfish-core/include/registries/openbmc_message_registry.hpp
@@ -19,1512 +19,1410 @@
namespace redfish::message_registries::openbmc
{
const Header header = {
- .copyright = "Copyright 2018 OpenBMC. All rights reserved.",
- .type = "#MessageRegistry.v1_0_0.MessageRegistry",
- .id = "OpenBMC.0.1.0",
- .name = "OpenBMC Message Registry",
- .language = "en",
- .description = "This registry defines the base messages for OpenBMC.",
- .registryPrefix = "OpenBMC",
- .registryVersion = "0.1.0",
- .owningEntity = "OpenBMC",
+ "Copyright 2018 OpenBMC. All rights reserved.",
+ "#MessageRegistry.v1_0_0.MessageRegistry",
+ "OpenBMC.0.1.0",
+ "OpenBMC Message Registry",
+ "en",
+ "This registry defines the base messages for OpenBMC.",
+ "OpenBMC",
+ "0.1.0",
+ "OpenBMC",
};
-const std::array registry = {
+const std::array<MessageEntry, 114> registry = {
MessageEntry{
"ADDDCCorrectable",
{
- .description = "Indicates an ADDDC Correctable Error.",
- .message =
- "ADDDC Correctable Error.Socket=%1 Channel=%2 DIMM=%3 Rank=%4.",
- .severity = "Warning",
- .numberOfArgs = 4,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates an ADDDC Correctable Error.",
+ "ADDDC Correctable Error.Socket=%1 Channel=%2 DIMM=%3 Rank=%4.",
+ "Warning",
+ 4,
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{
"BIOSBoot",
{
- .description =
- "Indicates BIOS has transitioned control to the OS Loader.",
- .message = "BIOS System Boot.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates BIOS has transitioned control to the OS Loader.",
+ "BIOS System Boot.",
+ "OK",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "BIOSPOSTError",
- {
- .description = "Indicates BIOS POST has encountered an error.",
- .message = "BIOS POST Error. Error Code=%1",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes = {"number"},
- .resolution = "None.",
- }},
+ MessageEntry{"BIOSPOSTError",
+ {
+ "Indicates BIOS POST has encountered an error.",
+ "BIOS POST Error. Error Code=%1",
+ "Warning",
+ 1,
+ {"number"},
+ "None.",
+ }},
MessageEntry{"BIOSRecoveryComplete",
{
- .description = "Indicates BIOS Recovery has completed.",
- .message = "BIOS Recovery Complete.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates BIOS Recovery has completed.",
+ "BIOS Recovery Complete.",
+ "OK",
+ 0,
+ {},
+ "None.",
}},
MessageEntry{"BIOSRecoveryStart",
{
- .description = "Indicates BIOS Recovery has started.",
- .message = "BIOS Recovery Start.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates BIOS Recovery has started.",
+ "BIOS Recovery Start.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
MessageEntry{"CPUError",
{
- .description = "Indicates that a CPU Error occurred of "
- "the specified type or cause.",
- .message = "CPU Error Occurred: %1.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that a CPU Error occurred of "
+ "the specified type or cause.",
+ "CPU Error Occurred: %1.",
+ "Critical",
+ 1,
+ {"string"},
+ "None.",
}},
MessageEntry{"CPUThermalTrip",
{
- .description = "Indicates that the specified CPU thermal "
- "trip has been asserted.",
- .message = "CPU %1 Thermal Trip.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"number"},
- .resolution = "None.",
+ "Indicates that the specified CPU thermal "
+ "trip has been asserted.",
+ "CPU %1 Thermal Trip.",
+ "Critical",
+ 1,
+ {"number"},
+ "None.",
}},
- MessageEntry{
- "DCPowerOff",
- {
- .description = "Indicates that the system DC power is off.",
- .message = "Host system DC power is off",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"DCPowerOff",
+ {
+ "Indicates that the system DC power is off.",
+ "Host system DC power is off",
+ "OK",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"DCPowerOn",
{
- .description = "Indicates that the system DC power is on.",
- .message = "Host system DC power is on",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that the system DC power is on.",
+ "Host system DC power is on",
+ "OK",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "EventLogCleared",
- {
- .description = "Indicates that the event log has been cleared.",
- .message = "Event Log Cleared.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
- MessageEntry{
- "FanInserted",
- {
- .description = "Indicates that a system fan has been inserted.",
- .message = "%1 inserted.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
+ MessageEntry{"EventLogCleared",
+ {
+ "Indicates that the event log has been cleared.",
+ "Event Log Cleared.",
+ "OK",
+ 0,
+ {},
+ "None.",
+ }},
+ MessageEntry{"FanInserted",
+ {
+ "Indicates that a system fan has been inserted.",
+ "%1 inserted.",
+ "OK",
+ 1,
+ {"string"},
+ "None.",
+ }},
MessageEntry{"FanRedundancyLost",
{
- .description =
- "Indicates that system fan redundancy has been lost.",
- .message = "Fan redundancy lost.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that system fan redundancy has been lost.",
+ "Fan redundancy lost.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "FanRedundancyRegained",
- {
- .description =
- "Indicates that system fan redundancy has been regained.",
- .message = "Fan redundancy regained.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
- MessageEntry{
- "FanRemoved",
- {
- .description = "Indicates that a system fan has been removed.",
- .message = "%1 removed.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
- MessageEntry{
- "FirmwareUpdateCompleted",
- {
- .description =
- "Indicates a firmware update has completed successfully.",
- .message = "%1 firmware update to version %2 completed "
- "successfully.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes = {"string", "string"},
- .resolution = "None.",
- }},
+ MessageEntry{"FanRedundancyRegained",
+ {
+ "Indicates that system fan redundancy has been regained.",
+ "Fan redundancy regained.",
+ "OK",
+ 0,
+ {},
+ "None.",
+ }},
+ MessageEntry{"FanRemoved",
+ {
+ "Indicates that a system fan has been removed.",
+ "%1 removed.",
+ "OK",
+ 1,
+ {"string"},
+ "None.",
+ }},
+ MessageEntry{"FirmwareUpdateCompleted",
+ {
+ "Indicates a firmware update has completed successfully.",
+ "%1 firmware update to version %2 completed "
+ "successfully.",
+ "OK",
+ 2,
+ {"string", "string"},
+ "None.",
+ }},
MessageEntry{"FirmwareUpdateFailed",
{
- .description = "Indicates a firmware update has failed.",
- .message = "%1 firmware update to version %2 failed.",
- .severity = "Warning",
- .numberOfArgs = 2,
- .paramTypes = {"string", "string"},
- .resolution = "None.",
+ "Indicates a firmware update has failed.",
+ "%1 firmware update to version %2 failed.",
+ "Warning",
+ 2,
+ {"string", "string"},
+ "None.",
}},
MessageEntry{"FirmwareUpdateStarted",
{
- .description = "Indicates a firmware update has started.",
- .message = "%1 firmware update to version %2 started.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes = {"string", "string"},
- .resolution = "None.",
+ "Indicates a firmware update has started.",
+ "%1 firmware update to version %2 started.",
+ "OK",
+ 2,
+ {"string", "string"},
+ "None.",
}},
MessageEntry{
"GeneralFirmwareSecurityViolation",
{
- .description =
- "Indicates a general firmware security violation has occurred.",
- .message = "Firmware security violation: %1.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates a general firmware security violation has occurred.",
+ "Firmware security violation: %1.",
+ "Critical",
+ 1,
+ {"string"},
+ "None.",
}},
- MessageEntry{
- "InvalidLoginAttempted",
- {
- .description =
- "Indicates that a login was attempted on the specified "
- "interface with an invalid username or password.",
- .message = "Invalid username or password attempted on %1.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
+ MessageEntry{"InvalidLoginAttempted",
+ {
+ "Indicates that a login was attempted on the specified "
+ "interface with an invalid username or password.",
+ "Invalid username or password attempted on %1.",
+ "Warning",
+ 1,
+ {"string"},
+ "None.",
+ }},
MessageEntry{
"InventoryAdded",
{
- .description =
- "Indicates that an inventory item with the specified model, "
- "type, and serial number was installed.",
- .message = "%1 %2 with serial number %3 was installed.",
- .severity = "OK",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "string",
- "string",
- "string",
- },
- .resolution = "None.",
+ "Indicates that an inventory item with the specified model, "
+ "type, and serial number was installed.",
+ "%1 %2 with serial number %3 was installed.",
+ "OK",
+ 3,
+
+ {
+ "string",
+ "string",
+ "string",
+ },
+ "None.",
}},
MessageEntry{
"InventoryRemoved",
{
- .description =
- "Indicates that an inventory item with the specified model, "
- "type, and serial number was removed.",
- .message = "%1 %2 with serial number %3 was removed.",
- .severity = "OK",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "string",
- "string",
- "string",
- },
- .resolution = "None.",
+ "Indicates that an inventory item with the specified model, "
+ "type, and serial number was removed.",
+ "%1 %2 with serial number %3 was removed.",
+ "OK",
+ 3,
+
+ {
+ "string",
+ "string",
+ "string",
+ },
+ "None.",
}},
MessageEntry{
"IntelUPILinkWidthReducedToHalf",
{
- .description =
- "Indicates Intel UPI link width has reduced to half width.",
- .message = "Intel UPI link width reduced to half. Node=%1.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "number",
- },
- .resolution = "None.",
+ "Indicates Intel UPI link width has reduced to half width.",
+ "Intel UPI link width reduced to half. Node=%1.",
+ "Warning",
+ 1,
+
+ {
+ "number",
+ },
+ "None.",
}},
MessageEntry{
"IntelUPILinkWidthReducedToQuarter",
{
- .description =
- "Indicates Intel UPI link width has reduced to quarter width.",
- .message = "Intel UPI link width reduced to quarter. Node=%1.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "number",
- },
- .resolution = "None.",
+ "Indicates Intel UPI link width has reduced to quarter width.",
+ "Intel UPI link width reduced to quarter. Node=%1.",
+ "Warning",
+ 1,
+
+ {
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "IPMIWatchdog",
- {
- .description = "Indicates that there is a host watchdog event.",
- .message = "Host Watchdog Event: %1",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"IPMIWatchdog",
+ {
+ "Indicates that there is a host watchdog event.",
+ "Host Watchdog Event: %1",
+ "OK",
+ 1,
- MessageEntry{
- "LegacyPCIPERR",
- {
- .description = "Indicates a Legacy PCI PERR.",
- .message = "Legacy PCI PERR. Bus=%1 Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "LegacyPCISERR",
- {
- .description = "Indicates a Legacy PCI SERR.",
- .message = "Legacy PCI SERR. Bus=%1 Device=%2 Function=%3.",
- .severity = "Critical",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ {
+ "string",
+ },
+ "None.",
+ }},
+
+ MessageEntry{"LegacyPCIPERR",
+ {
+ "Indicates a Legacy PCI PERR.",
+ "Legacy PCI PERR. Bus=%1 Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"LegacyPCISERR",
+ {
+ "Indicates a Legacy PCI SERR.",
+ "Legacy PCI SERR. Bus=%1 Device=%2 Function=%3.",
+ "Critical",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{"ManufacturingModeEntered",
{
- .description = "Indicates that Factory, Manufacturing, or "
- "Test mode has been entered.",
- .message = "Entered Manufacturing Mode.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that Factory, Manufacturing, or "
+ "Test mode has been entered.",
+ "Entered Manufacturing Mode.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
MessageEntry{"MemoryECCCorrectable",
{
- .description = "Indicates a Correctable Memory ECC error.",
- .message = "Memory ECC correctable error. Socket=%1 "
- "Channel=%2 DIMM=%3 Rank=%4.",
- .severity = "Warning",
- .numberOfArgs = 4,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a Correctable Memory ECC error.",
+ "Memory ECC correctable error. Socket=%1 "
+ "Channel=%2 DIMM=%3 Rank=%4.",
+ "Warning",
+ 4,
+
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "MemoryECCUncorrectable",
- {
- .description = "Indicates an Uncorrectable Memory ECC error.",
- .message = "Memory ECC uncorrectable error. Socket=%1 Channel=%2 "
- "DIMM=%3 Rank=%4.",
- .severity = "Critical",
- .numberOfArgs = 4,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "MemoryParityCommandAndAddress",
- {
- .description = "Indicates a Command and Address parity error.",
- .message = "Command and Address parity error. Socket=%1 Channel=%2 "
- "DIMM=%3 ChannelValid=%4 DIMMValid=%5.",
- .severity = "Critical",
- .numberOfArgs = 5,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"MemoryECCUncorrectable",
+ {
+ "Indicates an Uncorrectable Memory ECC error.",
+ "Memory ECC uncorrectable error. Socket=%1 Channel=%2 "
+ "DIMM=%3 Rank=%4.",
+ "Critical",
+ 4,
+
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"MemoryParityCommandAndAddress",
+ {
+ "Indicates a Command and Address parity error.",
+ "Command and Address parity error. Socket=%1 Channel=%2 "
+ "DIMM=%3 ChannelValid=%4 DIMMValid=%5.",
+ "Critical",
+ 5,
+
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{"MemoryParityNotKnown",
{
- .description = "Indicates an unknown parity error.",
- .message = "Memory parity error. Socket=%1 Channel=%2 "
- "DIMM=%3 ChannelValid=%4 DIMMValid=%5.",
- .severity = "Critical",
- .numberOfArgs = 5,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates an unknown parity error.",
+ "Memory parity error. Socket=%1 Channel=%2 "
+ "DIMM=%3 ChannelValid=%4 DIMMValid=%5.",
+ "Critical",
+ 5,
+
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "MemoryRASConfigurationDisabled",
- {
- .description =
- "Indicates Memory RAS Disabled Configuration Status.",
- .message = "Memory RAS Configuration Disabled. Error=%1 Mode=%2.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "MemoryRASConfigurationEnabled",
- {
- .description = "Indicates Memory RAS Enabled Configuration Status.",
- .message = "Memory RAS Configuration Enabled. Error=%1 Mode=%2.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "MemoryRASModeDisabled",
- {
- .description = "Indicates Memory RAS Disabled Mode Selection.",
- .message = "Memory RAS Mode Select Disabled. Prior Mode=%1 "
- "Selected Mode=%2.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "MemoryRASModeEnabled",
- {
- .description = "Indicates Memory RAS Enabled Mode Selection.",
- .message = "Memory RAS Mode Select Enabled. Prior Mode=%1 Selected "
- "Mode=%2.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes =
- {
- "string",
- "string",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "MemoryThermTrip",
- {
- .description =
- "Indicates that the system memory ThermTrip is asserted.",
- .message = "Memory ThermTrip asserted.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
- MessageEntry{
- "MirroringRedundancyDegraded",
- {
- .description =
- "Indicates the mirroring redundancy state is degraded.",
- .message = "Mirroring redundancy state degraded. Socket=%1 "
- "Channel=%2 DIMM=%3 Pair=%4 Rank=%5.",
- .severity = "Warning",
- .numberOfArgs = 5,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"MemoryRASConfigurationDisabled",
+ {
+ "Indicates Memory RAS Disabled Configuration Status.",
+ "Memory RAS Configuration Disabled. Error=%1 Mode=%2.",
+ "OK",
+ 2,
+
+ {
+ "string",
+ "string",
+ },
+ "None.",
+ }},
+ MessageEntry{"MemoryRASConfigurationEnabled",
+ {
+ "Indicates Memory RAS Enabled Configuration Status.",
+ "Memory RAS Configuration Enabled. Error=%1 Mode=%2.",
+ "OK",
+ 2,
+
+ {
+ "string",
+ "string",
+ },
+ "None.",
+ }},
+ MessageEntry{"MemoryRASModeDisabled",
+ {
+ "Indicates Memory RAS Disabled Mode Selection.",
+ "Memory RAS Mode Select Disabled. Prior Mode=%1 "
+ "Selected Mode=%2.",
+ "OK",
+ 2,
+
+ {
+ "string",
+ "string",
+ },
+ "None.",
+ }},
+ MessageEntry{"MemoryRASModeEnabled",
+ {
+ "Indicates Memory RAS Enabled Mode Selection.",
+ "Memory RAS Mode Select Enabled. Prior Mode=%1 Selected "
+ "Mode=%2.",
+ "OK",
+ 2,
+
+ {
+ "string",
+ "string",
+ },
+ "None.",
+ }},
+ MessageEntry{"MemoryThermTrip",
+ {
+ "Indicates that the system memory ThermTrip is asserted.",
+ "Memory ThermTrip asserted.",
+ "Critical",
+ 0,
+ {},
+ "None.",
+ }},
+ MessageEntry{"MirroringRedundancyDegraded",
+ {
+ "Indicates the mirroring redundancy state is degraded.",
+ "Mirroring redundancy state degraded. Socket=%1 "
+ "Channel=%2 DIMM=%3 Pair=%4 Rank=%5.",
+ "Warning",
+ 5,
+
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{
"MirroringRedundancyFull",
{
- .description =
- "Indicates the mirroring redundancy state is fully redundant.",
- .message = "Mirroring redundancy state fully redundant. Socket=%1 "
- "Channel=%2 DIMM=%3 Pair=%4 Rank=%5.",
- .severity = "OK",
- .numberOfArgs = 5,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates the mirroring redundancy state is fully redundant.",
+ "Mirroring redundancy state fully redundant. Socket=%1 "
+ "Channel=%2 DIMM=%3 Pair=%4 Rank=%5.",
+ "OK",
+ 5,
+
+ {
+ "number",
+ "string",
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "NMIButtonPressed",
- {
- .description = "Indicates that the NMI button was pressed.",
- .message = "NMI Button Pressed.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"NMIButtonPressed",
+ {
+ "Indicates that the NMI button was pressed.",
+ "NMI Button Pressed.",
+ "Critical",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"NMIDiagnosticInterrupt",
{
- .description = "Indicates that an NMI Diagnostic "
- "Interrupt has been generated.",
- .message = "NMI Diagnostic Interrupt.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that an NMI Diagnostic "
+ "Interrupt has been generated.",
+ "NMI Diagnostic Interrupt.",
+ "Critical",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "PCIeCorrectableAdvisoryNonFatal",
- {
- .description =
- "Indicates a PCIe Correctable Advisory Non-fatal Error.",
- .message = "PCIe Correctable Advisory Non-fatal Error. Bus=%1 "
- "Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeCorrectableBadDLLP",
- {
- .description = "Indicates a PCIe Correctable Bad DLLP Error.",
- .message =
- "PCIe Correctable Bad DLLP. Bus=%1 Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeCorrectableBadTLP",
- {
- .description = "Indicates a PCIe Correctable Bad TLP Error.",
- .message =
- "PCIe Correctable Bad TLP. Bus=%1 Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeCorrectableHeaderLogOverflow",
- {
- .description =
- "Indicates a PCIe Correctable Header Log Overflow Error.",
- .message = "PCIe Correctable Header Log Overflow. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeCorrectableInternal",
- {
- .description = "Indicates a PCIe Correctable Internal Error.",
- .message = "PCIe Correctable Internal Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeCorrectableAdvisoryNonFatal",
+ {
+ "Indicates a PCIe Correctable Advisory Non-fatal Error.",
+ "PCIe Correctable Advisory Non-fatal Error. Bus=%1 "
+ "Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeCorrectableBadDLLP",
+ {
+ "Indicates a PCIe Correctable Bad DLLP Error.",
+
+ "PCIe Correctable Bad DLLP. Bus=%1 Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeCorrectableBadTLP",
+ {
+ "Indicates a PCIe Correctable Bad TLP Error.",
+
+ "PCIe Correctable Bad TLP. Bus=%1 Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeCorrectableHeaderLogOverflow",
+ {
+ "Indicates a PCIe Correctable Header Log Overflow Error.",
+ "PCIe Correctable Header Log Overflow. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeCorrectableInternal",
+ {
+ "Indicates a PCIe Correctable Internal Error.",
+ "PCIe Correctable Internal Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{"PCIeCorrectableLinkBWChanged",
{
- .description =
- "Indicates a PCIe Correctable Link BW Changed Error.",
- .message = "PCIe Correctable Link BW Changed. Bus=%1 "
- "Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Correctable Link BW Changed Error.",
+ "PCIe Correctable Link BW Changed. Bus=%1 "
+ "Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "PCIeCorrectableReceiverError",
- {
- .description = "Indicates a PCIe Correctable Receiver Error.",
- .message = "PCIe Correctable Receiver Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeCorrectableReplayNumRollover",
- {
- .description = "Indicates a PCIe Correctable Replay Num Rollover.",
- .message = "PCIe Correctable Replay Num Rollover. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeCorrectableReplayTimerTimeout",
- {
- .description = "Indicates a PCIe Correctable Replay Timer Timeout.",
- .message = "PCIe Correctable Replay Timer Timeout. Bus=%1 "
- "Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeCorrectableReceiverError",
+ {
+ "Indicates a PCIe Correctable Receiver Error.",
+ "PCIe Correctable Receiver Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeCorrectableReplayNumRollover",
+ {
+ "Indicates a PCIe Correctable Replay Num Rollover.",
+ "PCIe Correctable Replay Num Rollover. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeCorrectableReplayTimerTimeout",
+ {
+ "Indicates a PCIe Correctable Replay Timer Timeout.",
+ "PCIe Correctable Replay Timer Timeout. Bus=%1 "
+ "Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{"PCIeCorrectableUnspecifiedAERError",
{
- .description =
- "Indicates a PCIe Correctable Unspecified AER Error.",
- .message = "PCIe Correctable Unspecified AER Error. "
- "Bus=%1 Device=%2 Function=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Correctable Unspecified AER Error.",
+ "PCIe Correctable Unspecified AER Error. "
+ "Bus=%1 Device=%2 Function=%3.",
+ "Warning",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "PCIeFatalACSViolation",
- {
- .description = "Indicates a PCIe ACS Violation Error.",
- .message =
- "PCIe Fatal ACS Violation. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeFatalAtomicEgressBlocked",
- {
- .description = "Indicates a PCIe Atomic Egress Blocked Error.",
- .message = "PCIe Fatal Atomic Egress Blocked. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeFatalACSViolation",
+ {
+ "Indicates a PCIe ACS Violation Error.",
+
+ "PCIe Fatal ACS Violation. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeFatalAtomicEgressBlocked",
+ {
+ "Indicates a PCIe Atomic Egress Blocked Error.",
+ "PCIe Fatal Atomic Egress Blocked. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{
"PCIeFatalCompleterAbort",
{
- .description = "Indicates a PCIe Completer Abort Error.",
- .message =
- "PCIe Fatal Completer Abort. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Completer Abort Error.",
+
+ "PCIe Fatal Completer Abort. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{
"PCIeFatalCompletionTimeout",
{
- .description = "Indicates a PCIe Completion Timeout Error.",
- .message =
- "PCIe Fatal Completion Timeout. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Completion Timeout Error.",
+
+ "PCIe Fatal Completion Timeout. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{
"PCIeFatalDataLinkLayerProtocol",
{
- .description = "Indicates a PCIe Data Link Layer Protocol Error.",
- .message =
- "PCIe Fatal Data Link Layer Protocol Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Data Link Layer Protocol Error.",
+
+ "PCIe Fatal Data Link Layer Protocol Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "PCIeFatalECRCError",
- {
- .description = "Indicates a PCIe ECRC Error.",
- .message = "PCIe Fatal ECRC Error. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeFatalFlowControlProtocol",
- {
- .description = "Indicates a PCIe Flow Control Protocol Error.",
- .message =
- "PCIe Fatal Flow Control Protocol Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeFatalECRCError",
+ {
+ "Indicates a PCIe ECRC Error.",
+ "PCIe Fatal ECRC Error. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeFatalFlowControlProtocol",
+ {
+ "Indicates a PCIe Flow Control Protocol Error.",
+
+ "PCIe Fatal Flow Control Protocol Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{
"PCIeFatalMalformedTLP",
{
- .description = "Indicates a PCIe Malformed TLP Error.",
- .message =
- "PCIe Fatal Malformed TLP Error. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Malformed TLP Error.",
+
+ "PCIe Fatal Malformed TLP Error. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{"PCIeFatalMCBlockedTLP",
{
- .description = "Indicates a PCIe MC Blocked TLP Error.",
- .message = "PCIe Fatal MC Blocked TLP Error. Bus=%1 "
- "Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe MC Blocked TLP Error.",
+ "PCIe Fatal MC Blocked TLP Error. Bus=%1 "
+ "Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{
"PCIeFatalPoisonedTLP",
{
- .description = "Indicates a PCIe Poisoned TLP Error.",
- .message =
- "PCIe Fatal Poisoned TLP Error. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Poisoned TLP Error.",
+
+ "PCIe Fatal Poisoned TLP Error. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "PCIeFatalReceiverBufferOverflow",
- {
- .description = "Indicates a PCIe Receiver Buffer Overflow Error.",
- .message = "PCIe Fatal Receiver Buffer Overflow. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeFatalReceiverBufferOverflow",
+ {
+ "Indicates a PCIe Receiver Buffer Overflow Error.",
+ "PCIe Fatal Receiver Buffer Overflow. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{
"PCIeFatalReceivedErrNonFatalMessage",
{
- .description =
- "Indicates a PCIe Received ERR_NONFATAL Message Error.",
- .message =
- "PCIe Fatal Received ERR_NONFATAL Message. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Received ERR_NONFATAL Message Error.",
+
+ "PCIe Fatal Received ERR_NONFATAL Message. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{"PCIeFatalReceivedFatalMessageFromDownstream",
{
- .description = "Indicates a PCIe Received Fatal Message "
- "From Downstream Error.",
- .message =
- "PCIe Fatal Received Fatal Message From Downstream. "
- "Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Received Fatal Message "
+ "From Downstream Error.",
+
+ "PCIe Fatal Received Fatal Message From Downstream. "
+ "Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "PCIeFatalSurpriseLinkDown",
- {
- .description = "Indicates a PCIe Surprise Link Down Error.",
- .message = "PCIe Fatal Surprise Link Down Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeFatalTLPPrefixBlocked",
- {
- .description = "Indicates a PCIe TLP Prefix Blocked Error.",
- .message = "PCIe Fatal TLP Prefix Blocked Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeFatalSurpriseLinkDown",
+ {
+ "Indicates a PCIe Surprise Link Down Error.",
+ "PCIe Fatal Surprise Link Down Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeFatalTLPPrefixBlocked",
+ {
+ "Indicates a PCIe TLP Prefix Blocked Error.",
+ "PCIe Fatal TLP Prefix Blocked Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{
"PCIeFatalUncorrectableInternal",
{
- .description = "Indicates a PCIe Uncorrectable Internal Error.",
- .message =
- "PCIe Fatal Uncorrectable Internal Error. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Uncorrectable Internal Error.",
+
+ "PCIe Fatal Uncorrectable Internal Error. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "PCIeFatalUnexpectedCompletion",
- {
- .description = "Indicates a PCIe Unexpected Completion Error.",
- .message = "PCIe Fatal Unexpected Completion. Bus=%1 Device=%2 "
- "Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PCIeFatalUnspecifiedNonAERFatalError",
- {
- .description = "Indicates a PCIe Unspecified Non-AER Fatal Error.",
- .message = "PCIe Fatal Unspecified Non-AER Fatal Error. Bus=%1 "
- "Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
- }},
+ MessageEntry{"PCIeFatalUnexpectedCompletion",
+ {
+ "Indicates a PCIe Unexpected Completion Error.",
+ "PCIe Fatal Unexpected Completion. Bus=%1 Device=%2 "
+ "Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
+ MessageEntry{"PCIeFatalUnspecifiedNonAERFatalError",
+ {
+ "Indicates a PCIe Unspecified Non-AER Fatal Error.",
+ "PCIe Fatal Unspecified Non-AER Fatal Error. Bus=%1 "
+ "Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
+ }},
MessageEntry{
"PCIeFatalUnsupportedRequest",
{
- .description = "Indicates a PCIe Unsupported Request Error.",
- .message =
- "PCIe Fatal Unsupported Request. Bus=%1 Device=%2 Function=%3.",
- .severity = "Error",
- .numberOfArgs = 3,
- .paramTypes =
- {
- "number",
- "number",
- "number",
- },
- .resolution = "None.",
+ "Indicates a PCIe Unsupported Request Error.",
+
+ "PCIe Fatal Unsupported Request. Bus=%1 Device=%2 Function=%3.",
+ "Error",
+ 3,
+
+ {
+ "number",
+ "number",
+ "number",
+ },
+ "None.",
}},
MessageEntry{"ChassisIntrusionDetected",
{
- .description = "Indicates that a physical security event "
- "of the chassis intrusion has occurred.",
- .message = "Chassis Intrusion Detected.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that a physical security event "
+ "of the chassis intrusion has occurred.",
+ "Chassis Intrusion Detected.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "ChassisIntrusionReset",
- {
- .description =
- "Indicates that chassis intrusion status has recovered.",
- .message = "Chassis Intrusion Reset.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"ChassisIntrusionReset",
+ {
+ "Indicates that chassis intrusion status has recovered.",
+ "Chassis Intrusion Reset.",
+ "OK",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"LanLost",
{
- .description = "Indicates that a physical security event "
- "of the LAN leash has lost.",
- .message = "%1 LAN leash lost.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "None.",
+ "Indicates that a physical security event "
+ "of the LAN leash has lost.",
+ "%1 LAN leash lost.",
+ "Warning",
+ 1,
+
+ {
+ "string",
+ },
+ "None.",
}},
- MessageEntry{
- "LanRegained",
- {
- .description = "Indicates that LAN link status has reconnected.",
- .message = "%1 LAN leash regained.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "None.",
- }},
- MessageEntry{
- "PowerButtonPressed",
- {
- .description = "Indicates that the power button was pressed.",
- .message = "Power Button Pressed.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"LanRegained",
+ {
+ "Indicates that LAN link status has reconnected.",
+ "%1 LAN leash regained.",
+ "OK",
+ 1,
+
+ {
+ "string",
+ },
+ "None.",
+ }},
+ MessageEntry{"PowerButtonPressed",
+ {
+ "Indicates that the power button was pressed.",
+ "Power Button Pressed.",
+ "OK",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"PowerRestorePolicyApplied",
{
- .description = "Indicates that power was restored and the "
- "BMC has applied the restore policy.",
- .message = "Power restore policy applied.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power was restored and the "
+ "BMC has applied the restore policy.",
+ "Power restore policy applied.",
+ "OK",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "PowerSupplyConfigurationError",
- {
- .description = "Indicates an error in power supply configuration.",
- .message = "Power supply %1 configuration error.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
+ MessageEntry{"PowerSupplyConfigurationError",
+ {
+ "Indicates an error in power supply configuration.",
+ "Power supply %1 configuration error.",
+ "Critical",
+ 1,
+ {"string"},
+ "None.",
+ }},
MessageEntry{
"PowerSupplyFanFailed",
{
- .description =
- "Indicates that the specified power supply fan has failed.",
- .message = "Power supply %1 fan %2 failed.",
- .severity = "Critical",
- .numberOfArgs = 2,
- .paramTypes = {"string", "string"},
- .resolution = "None.",
+ "Indicates that the specified power supply fan has failed.",
+ "Power supply %1 fan %2 failed.",
+ "Critical",
+ 2,
+ {"string", "string"},
+ "None.",
}},
MessageEntry{
"PowerSupplyFanRecovered",
{
- .description =
- "Indicates that the power supply fan recovered from a failure.",
- .message = "Power supply %1 fan %2 recovered.",
- .severity = "OK",
- .numberOfArgs = 2,
- .paramTypes = {"string", "string"},
- .resolution = "None.",
+ "Indicates that the power supply fan recovered from a failure.",
+ "Power supply %1 fan %2 recovered.",
+ "OK",
+ 2,
+ {"string", "string"},
+ "None.",
}},
MessageEntry{"PowerSupplyFailed",
{
- .description = "Indicates that a power supply has failed.",
- .message = "Power supply %1 failed.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that a power supply has failed.",
+ "Power supply %1 failed.",
+ "Critical",
+ 1,
+ {"string"},
+ "None.",
}},
MessageEntry{"PowerSupplyFailurePredicted",
{
- .description =
- "Indicates that a power supply is predicted to fail.",
- .message = "Power supply %1 failure predicted.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that a power supply is predicted to fail.",
+ "Power supply %1 failure predicted.",
+ "Warning",
+ 1,
+ {"string"},
+ "None.",
}},
- MessageEntry{
- "PowerSupplyInserted",
- {
- .description = "Indicates that a power supply has been inserted.",
- .message = "Power supply %1 inserted.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
- MessageEntry{
- "PowerSupplyPowerGoodFailed",
- {
- .description = "Indicates that the power supply power good signal "
- "failed to assert within the specified time.",
- .message = "Power supply power good failed to assert within %1 "
- "milliseconds.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"number"},
- .resolution = "None.",
- }},
+ MessageEntry{"PowerSupplyInserted",
+ {
+ "Indicates that a power supply has been inserted.",
+ "Power supply %1 inserted.",
+ "OK",
+ 1,
+ {"string"},
+ "None.",
+ }},
+ MessageEntry{"PowerSupplyPowerGoodFailed",
+ {
+ "Indicates that the power supply power good signal "
+ "failed to assert within the specified time.",
+ "Power supply power good failed to assert within %1 "
+ "milliseconds.",
+ "Critical",
+ 1,
+ {"number"},
+ "None.",
+ }},
MessageEntry{"PowerSupplyPowerLost",
{
- .description =
- "Indicates that a power supply has lost input power.",
- .message = "Power supply %1 power lost.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that a power supply has lost input power.",
+ "Power supply %1 power lost.",
+ "Critical",
+ 1,
+ {"string"},
+ "None.",
}},
- MessageEntry{
- "PowerSupplyPowerRestored",
- {
- .description =
- "Indicates that a power supply input power was restored.",
- .message = "Power supply %1 power restored.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
+ MessageEntry{"PowerSupplyPowerRestored",
+ {
+ "Indicates that a power supply input power was restored.",
+ "Power supply %1 power restored.",
+ "OK",
+ 1,
+ {"string"},
+ "None.",
+ }},
MessageEntry{"PowerSupplyPredictedFailureRecovered",
{
- .description = "Indicates that a power supply recovered "
- "from a predicted failure.",
- .message = "Power supply %1 predicted failure recovered.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that a power supply recovered "
+ "from a predicted failure.",
+ "Power supply %1 predicted failure recovered.",
+ "OK",
+ 1,
+ {"string"},
+ "None.",
}},
- MessageEntry{
- "PowerSupplyRecovered",
- {
- .description =
- "Indicates that a power supply recovered from a failure.",
- .message = "Power supply %1 recovered.",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
- MessageEntry{
- "PowerSupplyRemoved",
- {
- .description = "Indicates that a power supply has been removed.",
- .message = "Power supply %1 removed.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
- }},
- MessageEntry{
- "PowerUnitDegradedFromNonRedundant",
- {
- .description =
- "Indicates that power unit is come back to redundant from"
- "nonredundant but is still not in full redundancy mode.",
- .message = "Power Unit degraded from nonredundant.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"PowerSupplyRecovered",
+ {
+ "Indicates that a power supply recovered from a failure.",
+ "Power supply %1 recovered.",
+ "OK",
+ 1,
+ {"string"},
+ "None.",
+ }},
+ MessageEntry{"PowerSupplyRemoved",
+ {
+ "Indicates that a power supply has been removed.",
+ "Power supply %1 removed.",
+ "Warning",
+ 1,
+ {"string"},
+ "None.",
+ }},
+ MessageEntry{"PowerUnitDegradedFromNonRedundant",
+ {
+ "Indicates that power unit is come back to redundant from"
+ "nonredundant but is still not in full redundancy mode.",
+ "Power Unit degraded from nonredundant.",
+ "Warning",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"PowerUnitDegradedFromRedundant",
{
- .description =
- "Indicates that power unit is degarded from full "
- "redundancy mode.",
- .message = "Power Unit degraded from redundant.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power unit is degarded from full "
+ "redundancy mode.",
+ "Power Unit degraded from redundant.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "PowerUnitRedundancyDegraded",
- {
- .description =
- "Indicates that power unit redundancy has been degraded.",
- .message = "Power Unit Redundancy degraded.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"PowerUnitRedundancyDegraded",
+ {
+ "Indicates that power unit redundancy has been degraded.",
+ "Power Unit Redundancy degraded.",
+ "Warning",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{
"PowerUnitNonRedundantFromInsufficient",
{
- .description =
- "Indicates that power unit is not in redundancy mode and get"
- "sufficient power to support redundancy from insufficient"
- "power.",
- .message =
- "Power Unit NonRedundant from insufficient to sufficient.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power unit is not in redundancy mode and get"
+ "sufficient power to support redundancy from insufficient"
+ "power.",
+
+ "Power Unit NonRedundant from insufficient to sufficient.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "PowerUnitNonRedundantInsufficient",
- {
- .description = "Indicates that power unit do not have sufficient "
- "power to support redundancy.",
- .message = "Power Unit NonRedundant and has insufficient resource.",
- .severity = "Error",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"PowerUnitNonRedundantInsufficient",
+ {
+ "Indicates that power unit do not have sufficient "
+ "power to support redundancy.",
+ "Power Unit NonRedundant and has insufficient resource.",
+ "Error",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"PowerUnitRedundancyLost",
{
- .description =
- "Indicates that power unit redundancy has been lost.",
- .message = "Power Unit Redundancy lost.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power unit redundancy has been lost.",
+ "Power Unit Redundancy lost.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
MessageEntry{
"PowerUnitRedundancyRegained",
{
- .description =
- "Indicates that power unit full redundancy has been regained.",
- .message = "Power Unit Redundancy regained.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power unit full redundancy has been regained.",
+ "Power Unit Redundancy regained.",
+ "OK",
+ 0,
+ {},
+ "None.",
}},
MessageEntry{
"PowerUnitNonRedundantSufficient",
{
- .description =
- "Indicates that power unit is not in redundancy mode but still"
- "has sufficient power to support redundancy.",
- .message = "Power Unit Nonredundant but has sufficient resource.",
- .severity = "Warning",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power unit is not in redundancy mode but still"
+ "has sufficient power to support redundancy.",
+ "Power Unit Nonredundant but has sufficient resource.",
+ "Warning",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "ResetButtonPressed",
- {
- .description = "Indicates that the reset button was pressed.",
- .message = "Reset Button Pressed.",
- .severity = "OK",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"ResetButtonPressed",
+ {
+ "Indicates that the reset button was pressed.",
+ "Reset Button Pressed.",
+ "OK",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"SELEntryAdded",
{
- .description = "Indicates a SEL entry was added using the "
- "Add SEL Entry or Platform Event command.",
- .message = "SEL Entry Added: %1",
- .severity = "OK",
- .numberOfArgs = 1,
- .paramTypes =
- {
- "string",
- },
- .resolution = "None.",
+ "Indicates a SEL entry was added using the "
+ "Add SEL Entry or Platform Event command.",
+ "SEL Entry Added: %1",
+ "OK",
+ 1,
+
+ {
+ "string",
+ },
+ "None.",
}},
- MessageEntry{
- "SensorThresholdCriticalHighGoingHigh",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "critical high threshold going high.",
- .message = "%1 sensor crossed a critical high threshold going "
- "high. Reading=%2 Threshold=%3.",
- .severity = "Critical",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "Check the sensor or subsystem for errors.",
- }},
- MessageEntry{
- "SensorThresholdCriticalHighGoingLow",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "critical high threshold going low.",
- .message = "%1 sensor crossed a critical high threshold going low. "
- "Reading=%2 Threshold=%3.",
- .severity = "OK",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "None.",
- }},
- MessageEntry{
- "SensorThresholdCriticalLowGoingHigh",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "critical low threshold going high.",
- .message = "%1 sensor crossed a critical low threshold going high. "
- "Reading=%2 Threshold=%3.",
- .severity = "OK",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "None.",
- }},
- MessageEntry{
- "SensorThresholdCriticalLowGoingLow",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "critical low threshold going low.",
- .message = "%1 sensor crossed a critical low threshold going low. "
- "Reading=%2 Threshold=%3.",
- .severity = "Critical",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "Check the sensor or subsystem for errors.",
- }},
- MessageEntry{
- "SensorThresholdWarningHighGoingHigh",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "warning high threshold going high.",
- .message = "%1 sensor crossed a warning high threshold going high. "
- "Reading=%2 Threshold=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "Check the sensor or subsystem for errors.",
- }},
- MessageEntry{
- "SensorThresholdWarningHighGoingLow",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "warning high threshold going low.",
- .message = "%1 sensor crossed a warning high threshold going low. "
- "Reading=%2 Threshold=%3.",
- .severity = "OK",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "None.",
- }},
- MessageEntry{
- "SensorThresholdWarningLowGoingHigh",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "warning low threshold going high.",
- .message = "%1 sensor crossed a warning low threshold going high. "
- "Reading=%2 Threshold=%3.",
- .severity = "OK",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "None.",
- }},
- MessageEntry{
- "SensorThresholdWarningLowGoingLow",
- {
- .description = "Indicates that a threshold sensor has crossed a "
- "warning low threshold going low.",
- .message = "%1 sensor crossed a warning low threshold going low. "
- "Reading=%2 Threshold=%3.",
- .severity = "Warning",
- .numberOfArgs = 3,
- .paramTypes = {"string", "number", "number"},
- .resolution = "Check the sensor or subsystem for errors.",
- }},
+ MessageEntry{"SensorThresholdCriticalHighGoingHigh",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "critical high threshold going high.",
+ "%1 sensor crossed a critical high threshold going "
+ "high. Reading=%2 Threshold=%3.",
+ "Critical",
+ 3,
+ {"string", "number", "number"},
+ "Check the sensor or subsystem for errors.",
+ }},
+ MessageEntry{"SensorThresholdCriticalHighGoingLow",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "critical high threshold going low.",
+ "%1 sensor crossed a critical high threshold going low. "
+ "Reading=%2 Threshold=%3.",
+ "OK",
+ 3,
+ {"string", "number", "number"},
+ "None.",
+ }},
+ MessageEntry{"SensorThresholdCriticalLowGoingHigh",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "critical low threshold going high.",
+ "%1 sensor crossed a critical low threshold going high. "
+ "Reading=%2 Threshold=%3.",
+ "OK",
+ 3,
+ {"string", "number", "number"},
+ "None.",
+ }},
+ MessageEntry{"SensorThresholdCriticalLowGoingLow",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "critical low threshold going low.",
+ "%1 sensor crossed a critical low threshold going low. "
+ "Reading=%2 Threshold=%3.",
+ "Critical",
+ 3,
+ {"string", "number", "number"},
+ "Check the sensor or subsystem for errors.",
+ }},
+ MessageEntry{"SensorThresholdWarningHighGoingHigh",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "warning high threshold going high.",
+ "%1 sensor crossed a warning high threshold going high. "
+ "Reading=%2 Threshold=%3.",
+ "Warning",
+ 3,
+ {"string", "number", "number"},
+ "Check the sensor or subsystem for errors.",
+ }},
+ MessageEntry{"SensorThresholdWarningHighGoingLow",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "warning high threshold going low.",
+ "%1 sensor crossed a warning high threshold going low. "
+ "Reading=%2 Threshold=%3.",
+ "OK",
+ 3,
+ {"string", "number", "number"},
+ "None.",
+ }},
+ MessageEntry{"SensorThresholdWarningLowGoingHigh",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "warning low threshold going high.",
+ "%1 sensor crossed a warning low threshold going high. "
+ "Reading=%2 Threshold=%3.",
+ "OK",
+ 3,
+ {"string", "number", "number"},
+ "None.",
+ }},
+ MessageEntry{"SensorThresholdWarningLowGoingLow",
+ {
+ "Indicates that a threshold sensor has crossed a "
+ "warning low threshold going low.",
+ "%1 sensor crossed a warning low threshold going low. "
+ "Reading=%2 Threshold=%3.",
+ "Warning",
+ 3,
+ {"string", "number", "number"},
+ "Check the sensor or subsystem for errors.",
+ }},
MessageEntry{"ServiceFailure",
{
- .description =
- "Indicates that a service has exited unsuccessfully.",
- .message = "Service %1 has exited unsuccessfully.",
- .severity = "Warning",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that a service has exited unsuccessfully.",
+ "Service %1 has exited unsuccessfully.",
+ "Warning",
+ 1,
+ {"string"},
+ "None.",
}},
MessageEntry{"SparingRedundancyDegraded",
{
- .description =
- "Indicates the sparing redundancy state is degraded.",
- .message = "Sparing redundancy state degraded. Socket=%1 "
- "Channel=%2 DIMM=%3 Domain=%4 Rank=%5.",
- .severity = "Warning",
- .numberOfArgs = 5,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "string",
- "number",
- },
- .resolution = "None.",
+ "Indicates the sparing redundancy state is degraded.",
+ "Sparing redundancy state degraded. Socket=%1 "
+ "Channel=%2 DIMM=%3 Domain=%4 Rank=%5.",
+ "Warning",
+ 5,
+
+ {
+ "number",
+ "string",
+ "number",
+ "string",
+ "number",
+ },
+ "None.",
}},
MessageEntry{
"SparingRedundancyFull",
{
- .description =
- "Indicates the sparing redundancy state is fully redundant.",
- .message = "Sparing redundancy state fully redundant. Socket=%1 "
- "Channel=%2 DIMM=%3 Domain=%4 Rank=%5.",
- .severity = "OK",
- .numberOfArgs = 5,
- .paramTypes =
- {
- "number",
- "string",
- "number",
- "string",
- "number",
- },
- .resolution = "None.",
+ "Indicates the sparing redundancy state is fully redundant.",
+ "Sparing redundancy state fully redundant. Socket=%1 "
+ "Channel=%2 DIMM=%3 Domain=%4 Rank=%5.",
+ "OK",
+ 5,
+
+ {
+ "number",
+ "string",
+ "number",
+ "string",
+ "number",
+ },
+ "None.",
}},
- MessageEntry{
- "SsbThermalTrip",
- {
- .description =
- "Indicates that an SSB Thermal trip has been asserted.",
- .message = "SSB Thermal trip.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"SsbThermalTrip",
+ {
+ "Indicates that an SSB Thermal trip has been asserted.",
+ "SSB Thermal trip.",
+ "Critical",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{"SystemPowerGoodFailed",
{
- .description =
- "Indicates that the system power good signal failed "
- "to assert within the specified time (VR failure).",
- .message = "System power good failed to assert within %1 "
- "milliseconds (VR failure).",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"number"},
- .resolution = "None.",
+ "Indicates that the system power good signal failed "
+ "to assert within the specified time (VR failure).",
+ "System power good failed to assert within %1 "
+ "milliseconds (VR failure).",
+ "Critical",
+ 1,
+ {"number"},
+ "None.",
}},
MessageEntry{"SystemPowerLost",
{
- .description = "Indicates that power was lost while the "
- "system was powered on.",
- .message = "System Power Lost.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
+ "Indicates that power was lost while the "
+ "system was powered on.",
+ "System Power Lost.",
+ "Critical",
+ 0,
+ {},
+ "None.",
}},
- MessageEntry{
- "SystemPowerOffFailed",
- {
- .description = "Indicates that the system failed to power off.",
- .message = "System Power-Off Failed.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
- MessageEntry{
- "SystemPowerOnFailed",
- {
- .description = "Indicates that the system failed to power on.",
- .message = "System Power-On Failed.",
- .severity = "Critical",
- .numberOfArgs = 0,
- .paramTypes = {},
- .resolution = "None.",
- }},
+ MessageEntry{"SystemPowerOffFailed",
+ {
+ "Indicates that the system failed to power off.",
+ "System Power-Off Failed.",
+ "Critical",
+ 0,
+ {},
+ "None.",
+ }},
+ MessageEntry{"SystemPowerOnFailed",
+ {
+ "Indicates that the system failed to power on.",
+ "System Power-On Failed.",
+ "Critical",
+ 0,
+ {},
+ "None.",
+ }},
MessageEntry{
"VoltageRegulatorOverheated",
{
- .description =
- "Indicates that the specified voltage regulator overheated.",
- .message = "%1 Voltage Regulator Overheated.",
- .severity = "Critical",
- .numberOfArgs = 1,
- .paramTypes = {"string"},
- .resolution = "None.",
+ "Indicates that the specified voltage regulator overheated.",
+ "%1 Voltage Regulator Overheated.",
+ "Critical",
+ 1,
+ {"string"},
+ "None.",
}},
};
} // namespace redfish::message_registries::openbmc
diff --git a/redfish-core/include/utils/json_utils.hpp b/redfish-core/include/utils/json_utils.hpp
index c36ad3c..cf3227a 100644
--- a/redfish-core/include/utils/json_utils.hpp
+++ b/redfish-core/include/utils/json_utils.hpp
@@ -139,6 +139,10 @@
else if constexpr (std::is_signed_v<Type>)
{
int64_t* jsonPtr = jsonValue.get_ptr<int64_t*>();
+ if (jsonPtr == nullptr)
+ {
+ return false;
+ }
if (!checkRange<Type>(*jsonPtr, key, jsonValue, res))
{
return false;
@@ -150,6 +154,10 @@
!std::is_same_v<bool, Type>))
{
uint64_t* jsonPtr = jsonValue.get_ptr<uint64_t*>();
+ if (jsonPtr == nullptr)
+ {
+ return false;
+ }
if (!checkRange<Type>(*jsonPtr, key, jsonValue, res))
{
return false;
diff --git a/redfish-core/include/utils/systemd_utils.hpp b/redfish-core/include/utils/systemd_utils.hpp
index 1c34fca..da1b4e2 100644
--- a/redfish-core/include/utils/systemd_utils.hpp
+++ b/redfish-core/include/utils/systemd_utils.hpp
@@ -33,9 +33,9 @@
{
std::string ret;
// This ID needs to match the one in ipmid
- sd_id128_t appId = SD_ID128_MAKE(e0, e1, 73, 76, 64, 61, 47, da, a5, 0c, d0,
- cc, 64, 12, 45, 78);
- sd_id128_t machineId = SD_ID128_NULL;
+ sd_id128_t appId{{0Xe0, 0Xe1, 0X73, 0X76, 0X64, 0X61, 0X47, 0Xda, 0Xa5,
+ 0X0c, 0Xd0, 0Xcc, 0X64, 0X12, 0X45, 0X78}};
+ sd_id128_t machineId{};
if (sd_id128_get_machine_app_specific(appId, &machineId) == 0)
{
diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index 9dac7e4..a183f68 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -299,7 +299,7 @@
<< ",LocalRole=" << *localRole;
crow::connections::systemBus->async_method_call(
- [asyncResp, serverType, index, localRole,
+ [asyncResp, serverType, localRole,
remoteGroup](const boost::system::error_code ec) {
if (ec)
{
@@ -422,43 +422,43 @@
for (const auto& property : interface.second)
{
- const std::string* value =
+ const std::string* strValue =
std::get_if<std::string>(
&property.second);
- if (value == nullptr)
+ if (strValue == nullptr)
{
continue;
}
if (property.first == "LDAPServerURI")
{
- confData.uri = *value;
+ confData.uri = *strValue;
}
else if (property.first == "LDAPBindDN")
{
- confData.bindDN = *value;
+ confData.bindDN = *strValue;
}
else if (property.first == "LDAPBaseDN")
{
- confData.baseDN = *value;
+ confData.baseDN = *strValue;
}
else if (property.first ==
"LDAPSearchScope")
{
- confData.searchScope = *value;
+ confData.searchScope = *strValue;
}
else if (property.first ==
"GroupNameAttribute")
{
- confData.groupAttribute = *value;
+ confData.groupAttribute = *strValue;
}
else if (property.first ==
"UserNameAttribute")
{
- confData.userNameAttribute = *value;
+ confData.userNameAttribute = *strValue;
}
else if (property.first == "LDAPType")
{
- confData.serverType = *value;
+ confData.serverType = *strValue;
}
}
}
@@ -469,22 +469,22 @@
LDAPRoleMapData roleMapData{};
for (const auto& property : interface.second)
{
- const std::string* value =
+ const std::string* strValue =
std::get_if<std::string>(
&property.second);
- if (value == nullptr)
+ if (strValue == nullptr)
{
continue;
}
if (property.first == "GroupName")
{
- roleMapData.groupName = *value;
+ roleMapData.groupName = *strValue;
}
else if (property.first == "Privilege")
{
- roleMapData.privilege = *value;
+ roleMapData.privilege = *strValue;
}
}
@@ -1518,7 +1518,7 @@
crow::connections::systemBus->async_method_call(
[this, asyncResp, username, password(std::move(password)),
roleId(std::move(roleId)), enabled(std::move(enabled)),
- newUser{std::string(*newUserName)}, locked(std::move(locked))](
+ newUser{*newUserName}, locked(std::move(locked))](
const boost::system::error_code ec) {
if (ec)
{
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index 111bcec..89d5634 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -458,13 +458,7 @@
*crow::connections::systemBus, match,
[asyncResp, service, objectPath,
certURI](sdbusplus::message::message &m) {
- boost::system::error_code ec;
- timeout.cancel(ec);
- if (ec)
- {
- BMCWEB_LOG_ERROR << "error canceling timer " << ec;
- csrMatcher = nullptr;
- }
+ timeout.cancel();
if (m.is_method_error())
{
BMCWEB_LOG_ERROR << "Dbus method error!!!";
@@ -489,7 +483,7 @@
}
});
crow::connections::systemBus->async_method_call(
- [asyncResp](const boost::system::error_code ec,
+ [asyncResp](const boost::system::error_code &ec,
const std::string &path) {
if (ec)
{
@@ -531,14 +525,16 @@
{
break;
}
- const std::string_view key(tokenBegin, i - tokenBegin);
+ const std::string_view key(tokenBegin,
+ static_cast<size_t>(i - tokenBegin));
i++;
tokenBegin = i;
while (i != value.end() && *i != ',')
{
i++;
}
- const std::string_view val(tokenBegin, i - tokenBegin);
+ const std::string_view val(tokenBegin,
+ static_cast<size_t>(i - tokenBegin));
if (key == "L")
{
out["City"] = val;
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 8c13414..b08ab25 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -148,7 +148,7 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/Intrusion", int32_t(1),
+ "/xyz/openbmc_project/Intrusion", 1,
std::array<const char *, 1>{"xyz.openbmc_project.Chassis.Intrusion"});
}
@@ -217,7 +217,7 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTreePaths",
- "/xyz/openbmc_project/inventory", int32_t(0), interfaces);
+ "/xyz/openbmc_project/inventory", 0, interfaces);
}
};
@@ -397,7 +397,7 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/inventory", int32_t(0), interfaces);
+ "/xyz/openbmc_project/inventory", 0, interfaces);
getPhysicalSecurityData(asyncResp);
}
diff --git a/redfish-core/lib/cpudimm.hpp b/redfish-core/lib/cpudimm.hpp
index 2e084d4..d8d4191 100644
--- a/redfish-core/lib/cpudimm.hpp
+++ b/redfish-core/lib/cpudimm.hpp
@@ -63,7 +63,7 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/inventory", int32_t(0), collectionName);
+ "/xyz/openbmc_project/inventory", 0, collectionName);
}
void getCpuDataByInterface(std::shared_ptr<AsyncResp> aResp,
@@ -360,8 +360,8 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/inventory", int32_t(0), inventoryItems);
-};
+ "/xyz/openbmc_project/inventory", 0, inventoryItems);
+}
void getDimmDataByService(std::shared_ptr<AsyncResp> aResp,
const std::string &dimmId, const std::string &service,
@@ -481,9 +481,9 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/inventory", int32_t(0),
+ "/xyz/openbmc_project/inventory", 0,
std::array<const char *, 1>{"xyz.openbmc_project.Inventory.Item.Dimm"});
-};
+}
class ProcessorCollection : public Node
{
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index ff37330..b06acf0 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -320,9 +320,10 @@
std::pair<
boost::container::flat_set<IPv6AddressData>::iterator,
bool>
- it = ipv6_config.insert(
- {objpath.first.str.substr(ipv6PathStart.size())});
+ it = ipv6_config.insert(IPv6AddressData{});
IPv6AddressData &ipv6_address = *it.first;
+ ipv6_address.id =
+ objpath.first.str.substr(ipv6PathStart.size());
for (auto &property : interface.second)
{
if (property.first == "Address")
@@ -392,9 +393,10 @@
std::pair<
boost::container::flat_set<IPv4AddressData>::iterator,
bool>
- it = ipv4_config.insert(
- {objpath.first.str.substr(ipv4PathStart.size())});
+ it = ipv4_config.insert(IPv4AddressData{});
IPv4AddressData &ipv4_address = *it.first;
+ ipv4_address.id =
+ objpath.first.str.substr(ipv4PathStart.size());
for (auto &property : interface.second)
{
if (property.first == "Address")
@@ -858,7 +860,7 @@
},
"xyz.openbmc_project.Network", "/xyz/openbmc_project/network",
"org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
-};
+}
/**
* Function that retrieves all Ethernet Interfaces available through Network
@@ -911,7 +913,7 @@
},
"xyz.openbmc_project.Network", "/xyz/openbmc_project/network",
"org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
-};
+}
/**
* EthernetCollection derived class for delivering Ethernet Collection Schema
@@ -1169,7 +1171,7 @@
return;
}
- int entryIdx = 1;
+ unsigned entryIdx = 1;
// Find the first static IP address currently active on the NIC and
// match it to the first JSON element in the IPv4StaticAddresses array.
// Match each subsequent JSON element to the next static IP programmed
@@ -1201,8 +1203,8 @@
// not explicitly provided are assumed to be unmodified from the
// current state of the interface. Merge existing state into the
// current request.
- const std::string *addr;
- const std::string *gw;
+ const std::string *addr = nullptr;
+ const std::string *gw = nullptr;
uint8_t prefixLength = 0;
bool errorInEntry = false;
if (address)
@@ -1288,6 +1290,13 @@
if (NICIPentry != ipv4Data.cend())
{
+ if (gw != nullptr || addr != nullptr)
+ {
+ // Shouldn't be possible based on errorInEntry, but
+ // it flags -wmaybe-uninitialized in the compiler,
+ // so defend against that
+ return;
+ }
deleteAndCreateIPv4(ifaceId, NICIPentry->id, prefixLength,
*gw, *addr, asyncResp);
NICIPentry =
@@ -1365,7 +1374,7 @@
"IPv6StaticAddresses");
return;
}
- int entryIdx = 1;
+ size_t entryIdx = 1;
boost::container::flat_set<IPv6AddressData>::const_iterator NICIPentry =
GetNextStaticIPEntry(ipv6Data.cbegin(), ipv6Data.cend());
for (nlohmann::json &thisJson : input)
@@ -1874,7 +1883,7 @@
// JSON preparation
getEthernetIfaceData(
params[1],
- [this, asyncResp, parentIfaceId{std::string(params[0])},
+ [asyncResp, parentIfaceId{std::string(params[0])},
ifaceId{std::string(params[1])}, &vlanEnable, &vlanId](
const bool &success, const EthernetInterfaceData ðData,
const boost::container::flat_set<IPv4AddressData> &ipv4Data,
@@ -1944,7 +1953,7 @@
// JSON preparation
getEthernetIfaceData(
params[1],
- [this, asyncResp, parentIfaceId{std::string(params[0])},
+ [asyncResp, parentIfaceId{std::string(params[0])},
ifaceId{std::string(params[1])}](
const bool &success, const EthernetInterfaceData ðData,
const boost::container::flat_set<IPv4AddressData> &ipv4Data,
@@ -2090,7 +2099,7 @@
{
messages::propertyMissing(asyncResp->res, "VLANEnable");
}
- if (static_cast<bool>(vlanId) ^ static_cast<bool>(vlanEnable))
+ if (static_cast<bool>(vlanId) ^ vlanEnable)
{
return;
}
diff --git a/redfish-core/lib/health.hpp b/redfish-core/lib/health.hpp
index da4f2d9..930eaee 100644
--- a/redfish-core/lib/health.hpp
+++ b/redfish-core/lib/health.hpp
@@ -153,8 +153,7 @@
},
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
- "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "/",
- int32_t(0),
+ "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths", "/", 0,
std::array<const char *, 1>{
"xyz.openbmc_project.Inventory.Item.Global"});
}
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 9fd35a9..7a63162 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -145,8 +145,8 @@
size_t length = 0;
int ret = 0;
// Get the metadata from the requested field of the journal entry
- ret = sd_journal_get_data(journal, field.data(), (const void **)&data,
- &length);
+ ret = sd_journal_get_data(journal, field.data(),
+ reinterpret_cast<const void **>(&data), &length);
if (ret < 0)
{
return ret;
@@ -159,7 +159,7 @@
static int getJournalMetadata(sd_journal *journal,
const std::string_view &field, const int &base,
- int &contents)
+ long int &contents)
{
int ret = 0;
std::string_view metadata;
@@ -205,13 +205,13 @@
}
static bool getSkipParam(crow::Response &res, const crow::Request &req,
- long &skip)
+ uint64_t &skip)
{
char *skipParam = req.urlParams.get("$skip");
if (skipParam != nullptr)
{
char *ptr = nullptr;
- skip = std::strtol(skipParam, &ptr, 10);
+ skip = std::strtoul(skipParam, &ptr, 10);
if (*skipParam == '\0' || *ptr != '\0')
{
@@ -219,33 +219,26 @@
"$skip");
return false;
}
- if (skip < 0)
- {
-
- messages::queryParameterOutOfRange(res, std::to_string(skip),
- "$skip", "greater than 0");
- return false;
- }
}
return true;
}
-static constexpr const long maxEntriesPerPage = 1000;
+static constexpr const uint64_t maxEntriesPerPage = 1000;
static bool getTopParam(crow::Response &res, const crow::Request &req,
- long &top)
+ uint64_t &top)
{
char *topParam = req.urlParams.get("$top");
if (topParam != nullptr)
{
char *ptr = nullptr;
- top = std::strtol(topParam, &ptr, 10);
+ top = std::strtoul(topParam, &ptr, 10);
if (*topParam == '\0' || *ptr != '\0')
{
messages::queryParameterValueTypeError(res, std::string(topParam),
"$top");
return false;
}
- if (top < 1 || top > maxEntriesPerPage)
+ if (top < 1U || top > maxEntriesPerPage)
{
messages::queryParameterOutOfRange(
@@ -301,7 +294,7 @@
static bool getUniqueEntryID(const std::string &logEntry, std::string &entryID,
const bool firstEntry = true)
{
- static uint64_t prevTs = 0;
+ static time_t prevTs = 0;
static int index = 0;
if (firstEntry)
{
@@ -309,7 +302,7 @@
}
// Get the entry timestamp
- uint64_t curTs = 0;
+ std::time_t curTs = 0;
std::tm timeStruct = {};
std::istringstream entryStream(logEntry);
if (entryStream >> std::get_time(&timeStruct, "%Y-%m-%dT%H:%M:%S"))
@@ -338,7 +331,7 @@
}
static bool getTimestampFromID(crow::Response &res, const std::string &entryID,
- uint64_t ×tamp, uint16_t &index)
+ uint64_t ×tamp, uint64_t &index)
{
if (entryID.empty())
{
@@ -359,12 +352,12 @@
{
index = std::stoul(std::string(indexStr), &pos);
}
- catch (std::invalid_argument)
+ catch (std::invalid_argument &)
{
messages::resourceMissingAtURI(res, entryID);
return false;
}
- catch (std::out_of_range)
+ catch (std::out_of_range &)
{
messages::resourceMissingAtURI(res, entryID);
return false;
@@ -381,12 +374,12 @@
{
timestamp = std::stoull(std::string(tsStr), &pos);
}
- catch (std::invalid_argument)
+ catch (std::invalid_argument &)
{
messages::resourceMissingAtURI(res, entryID);
return false;
}
- catch (std::out_of_range)
+ catch (std::out_of_range &)
{
messages::resourceMissingAtURI(res, entryID);
return false;
@@ -685,8 +678,8 @@
const std::vector<std::string> ¶ms) override
{
std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
- long skip = 0;
- long top = maxEntriesPerPage; // Show max entries by default
+ uint64_t skip = 0;
+ uint64_t top = maxEntriesPerPage; // Show max entries by default
if (!getSkipParam(asyncResp->res, req, skip))
{
return;
@@ -912,7 +905,6 @@
uint32_t *id;
std::time_t timestamp;
std::string *severity, *message;
- bool *resolved;
for (auto &propertyMap : interfaceMap.second)
{
if (propertyMap.first == "Id")
@@ -933,15 +925,16 @@
{
messages::propertyMissing(asyncResp->res,
"Timestamp");
+ continue;
}
// Retrieve Created property with format:
// yyyy-mm-ddThh:mm:ss
std::chrono::milliseconds chronoTimeStamp(
*millisTimeStamp);
- timestamp =
- std::chrono::duration_cast<
- std::chrono::seconds>(chronoTimeStamp)
- .count();
+ timestamp = std::chrono::duration_cast<
+ std::chrono::duration<int>>(
+ chronoTimeStamp)
+ .count();
}
else if (propertyMap.first == "Severity")
{
@@ -1038,7 +1031,6 @@
uint32_t *id;
std::time_t timestamp;
std::string *severity, *message;
- bool *resolved;
for (auto &propertyMap : resp)
{
if (propertyMap.first == "Id")
@@ -1057,14 +1049,15 @@
{
messages::propertyMissing(asyncResp->res,
"Timestamp");
+ continue;
}
// Retrieve Created property with format:
// yyyy-mm-ddThh:mm:ss
std::chrono::milliseconds chronoTimeStamp(
*millisTimeStamp);
timestamp =
- std::chrono::duration_cast<std::chrono::seconds>(
- chronoTimeStamp)
+ std::chrono::duration_cast<
+ std::chrono::duration<int>>(chronoTimeStamp)
.count();
}
else if (propertyMap.first == "Severity")
@@ -1087,6 +1080,10 @@
}
}
}
+ if (id == nullptr || message == nullptr || severity == nullptr)
+ {
+ return;
+ }
asyncResp->res.jsonValue = {
{"@odata.type", "#LogEntry.v1_4_0.LogEntry"},
{"@odata.context", "/redfish/v1/"
@@ -1249,7 +1246,7 @@
}
// Get the severity from the PRIORITY field
- int severity = 8; // Default to an invalid priority
+ long int severity = 8; // Default to an invalid priority
ret = getJournalMetadata(journal, "PRIORITY", 10, severity);
if (ret < 0)
{
@@ -1302,8 +1299,8 @@
{
std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
static constexpr const long maxEntriesPerPage = 1000;
- long skip = 0;
- long top = maxEntriesPerPage; // Show max entries by default
+ uint64_t skip = 0;
+ uint64_t top = maxEntriesPerPage; // Show max entries by default
if (!getSkipParam(asyncResp->res, req, skip))
{
return;
@@ -1415,7 +1412,7 @@
const std::string &entryID = params[0];
// Convert the unique ID back to a timestamp to find the entry
uint64_t ts = 0;
- uint16_t index = 0;
+ uint64_t index = 0;
if (!getTimestampFromID(asyncResp->res, entryID, ts, index))
{
return;
@@ -1437,7 +1434,7 @@
std::string idStr;
bool firstEntry = true;
ret = sd_journal_seek_realtime_usec(journal.get(), ts);
- for (int i = 0; i <= index; i++)
+ for (uint64_t i = 0; i <= index; i++)
{
sd_journal_next(journal.get());
if (!getUniqueEntryID(journal.get(), idStr, firstEntry))
@@ -1652,7 +1649,7 @@
messages::internalError(asyncResp->res);
return;
}
- const uint8_t logId = std::atoi(params[0].c_str());
+ const int logId = std::atoi(params[0].c_str());
auto getStoredLogCallback = [asyncResp, logId](
const boost::system::error_code ec,
const std::variant<std::string> &resp) {
@@ -1728,9 +1725,9 @@
return;
}
// Make this static so it survives outside this method
- static boost::asio::deadline_timer timeout(*req.ioService);
+ static boost::asio::steady_timer timeout(*req.ioService);
- timeout.expires_from_now(boost::posix_time::seconds(30));
+ timeout.expires_after(std::chrono::seconds(30));
timeout.async_wait([asyncResp](const boost::system::error_code &ec) {
onDemandLogMatcher = nullptr;
if (ec)
@@ -1751,12 +1748,8 @@
auto onDemandLogMatcherCallback = [asyncResp](
sdbusplus::message::message &m) {
BMCWEB_LOG_DEBUG << "OnDemand log available match fired";
- boost::system::error_code ec;
- timeout.cancel(ec);
- if (ec)
- {
- BMCWEB_LOG_ERROR << "error canceling timer " << ec;
- }
+ timeout.cancel();
+
sdbusplus::message::object_path objPath;
boost::container::flat_map<
std::string, boost::container::flat_map<
@@ -1825,13 +1818,8 @@
{
messages::internalError(asyncResp->res);
}
- boost::system::error_code timeoutec;
- timeout.cancel(timeoutec);
- if (timeoutec)
- {
- BMCWEB_LOG_ERROR << "error canceling timer "
- << timeoutec;
- }
+
+ timeout.cancel();
onDemandLogMatcher = nullptr;
return;
}
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 459edad..9d2144e 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -278,7 +278,7 @@
controller["@odata.id"] =
"/redfish/v1/Managers/bmc#/Oem/"
"OpenBmc/Fan/StepwiseControllers/" +
- std::string(name);
+ name;
controller["@odata.type"] =
"#OemManager.StepwiseController";
@@ -307,7 +307,7 @@
element["@odata.id"] =
"/redfish/v1/Managers/bmc#/Oem/"
"OpenBmc/Fan/FanControllers/" +
- std::string(name);
+ name;
element["@odata.type"] =
"#OemManager.FanController";
@@ -320,7 +320,7 @@
element["@odata.id"] =
"/redfish/v1/Managers/bmc#/Oem/"
"OpenBmc/Fan/PidControllers/" +
- std::string(name);
+ name;
element["@odata.type"] =
"#OemManager.PidController";
element["@odata.context"] =
@@ -1077,8 +1077,8 @@
messages::internalError(self->asyncResp->res);
return;
}
- const std::string* current;
- const std::vector<std::string>* supported;
+ const std::string* current = nullptr;
+ const std::vector<std::string>* supported = nullptr;
for (auto& [key, value] : resp)
{
if (key == "Current")
@@ -1193,9 +1193,9 @@
struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
{
- SetPIDValues(const std::shared_ptr<AsyncResp>& asyncResp,
+ SetPIDValues(const std::shared_ptr<AsyncResp>& asyncRespIn,
nlohmann::json& data) :
- asyncResp(asyncResp)
+ asyncResp(asyncRespIn)
{
std::optional<nlohmann::json> pidControllers;
@@ -1231,14 +1231,14 @@
// interface gets more traction
crow::connections::systemBus->async_method_call(
[self](const boost::system::error_code ec,
- dbus::utility::ManagedObjectType& managedObj) {
+ dbus::utility::ManagedObjectType& mObj) {
if (ec)
{
BMCWEB_LOG_ERROR << "Error communicating to Entity Manager";
messages::internalError(self->asyncResp->res);
return;
}
- self->managedObj = std::move(managedObj);
+ self->managedObj = std::move(mObj);
},
"xyz.openbmc_project.EntityManager", "/", objectManagerIface,
"GetManagedObjects");
@@ -1266,7 +1266,7 @@
const boost::system::error_code ec,
const boost::container::flat_map<
std::string, std::variant<std::vector<std::string>,
- std::string>>& resp) {
+ std::string>>& r) {
if (ec)
{
BMCWEB_LOG_ERROR << "SetPIDValues: Can't get "
@@ -1275,9 +1275,9 @@
messages::internalError(self->asyncResp->res);
return;
}
- const std::string* current;
- const std::vector<std::string>* supported;
- for (auto& [key, value] : resp)
+ const std::string* current = nullptr;
+ const std::vector<std::string>* supported = nullptr;
+ for (auto& [key, value] : r)
{
if (key == "Current")
{
diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
index ef443af..96ce0c2 100644
--- a/redfish-core/lib/message_registries.hpp
+++ b/redfish-core/lib/message_registries.hpp
@@ -257,7 +257,7 @@
if (message.second.numberOfArgs > 0)
{
nlohmann::json &messageParamArray = obj["ParamTypes"];
- for (int i = 0; i < message.second.numberOfArgs; i++)
+ for (size_t i = 0; i < message.second.numberOfArgs; i++)
{
messageParamArray.push_back(message.second.paramTypes[i]);
}
diff --git a/redfish-core/lib/network_protocol.hpp b/redfish-core/lib/network_protocol.hpp
index 71e58cc..75d13d4 100644
--- a/redfish-core/lib/network_protocol.hpp
+++ b/redfish-core/lib/network_protocol.hpp
@@ -139,7 +139,7 @@
},
"xyz.openbmc_project.Network", "/xyz/openbmc_project/network",
"org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
-};
+}
class NetworkProtocol : public Node
{
@@ -230,32 +230,32 @@
// TODO Get eth0 interface data, and call the below callback for JSON
// preparation
- getEthernetIfaceData([this, hostName, asyncResp](
- const bool& success,
- const std::vector<std::string>& ntpServers,
- const std::vector<std::string>& domainNames) {
- if (!success)
- {
- messages::resourceNotFound(asyncResp->res, "EthernetInterface",
- "eth0");
- return;
- }
- asyncResp->res.jsonValue["NTP"]["NTPServers"] = ntpServers;
- if (hostName.empty() == false)
- {
- std::string FQDN = std::move(hostName);
- if (domainNames.empty() == false)
+ getEthernetIfaceData(
+ [hostName, asyncResp](const bool& success,
+ const std::vector<std::string>& ntpServers,
+ const std::vector<std::string>& domainNames) {
+ if (!success)
{
- FQDN += "." + domainNames[0];
+ messages::resourceNotFound(asyncResp->res,
+ "EthernetInterface", "eth0");
+ return;
}
- asyncResp->res.jsonValue["FQDN"] = std::move(FQDN);
- }
- });
+ asyncResp->res.jsonValue["NTP"]["NTPServers"] = ntpServers;
+ if (hostName.empty() == false)
+ {
+ std::string FQDN = std::move(hostName);
+ if (domainNames.empty() == false)
+ {
+ FQDN += "." + domainNames[0];
+ }
+ asyncResp->res.jsonValue["FQDN"] = std::move(FQDN);
+ }
+ });
crow::connections::systemBus->async_method_call(
- [asyncResp](const boost::system::error_code ec,
- const std::vector<UnitStruct>& resp) {
- if (ec)
+ [asyncResp](const boost::system::error_code e,
+ const std::vector<UnitStruct>& r) {
+ if (e)
{
asyncResp->res.jsonValue = nlohmann::json::object();
messages::internalError(asyncResp->res);
@@ -265,7 +265,7 @@
{"@odata.id", "/redfish/v1/Managers/bmc/NetworkProtocol/"
"HTTPS/Certificates/"}};
- for (auto& unit : resp)
+ for (auto& unit : r)
{
for (auto& kv : protocolToDBus)
{
diff --git a/redfish-core/lib/pcie.hpp b/redfish-core/lib/pcie.hpp
index ad61ff4..5b4f5c5 100644
--- a/redfish-core/lib/pcie.hpp
+++ b/redfish-core/lib/pcie.hpp
@@ -108,7 +108,7 @@
{
BMCWEB_LOG_DEBUG
<< "failed to get PCIe Device properties ec: "
- << static_cast<int>(ec.value()) << ": " << ec.message();
+ << ec.value() << ": " << ec.message();
if (ec.value() ==
boost::system::linux_error::bad_request_descriptor)
{
@@ -221,7 +221,7 @@
{
BMCWEB_LOG_DEBUG
<< "failed to get PCIe Device properties ec: "
- << static_cast<int>(ec.value()) << ": " << ec.message();
+ << ec.value() << ": " << ec.message();
if (ec.value() ==
boost::system::linux_error::bad_request_descriptor)
{
diff --git a/redfish-core/lib/power.hpp b/redfish-core/lib/power.hpp
index 8c3927b..eaea5ab 100644
--- a/redfish-core/lib/power.hpp
+++ b/redfish-core/lib/power.hpp
@@ -62,13 +62,13 @@
// chassis that implements the Chassis inventory item. This prevents
// things like power supplies providing the chassis power limit
auto chassisHandler = [sensorAsyncResp](
- const boost::system::error_code ec,
+ const boost::system::error_code e,
const std::vector<std::string>&
chassisPaths) {
- if (ec)
+ if (e)
{
BMCWEB_LOG_ERROR
- << "Power Limit GetSubTreePaths handler Dbus error " << ec;
+ << "Power Limit GetSubTreePaths handler Dbus error " << e;
return;
}
@@ -178,7 +178,7 @@
}
else if (i)
{
- powerCap = *i;
+ powerCap = static_cast<double>(*i);
}
else if (u)
{
@@ -220,7 +220,7 @@
std::move(chassisHandler), "xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTreePaths",
- "/xyz/openbmc_project/inventory", int32_t(0),
+ "/xyz/openbmc_project/inventory", 0,
std::array<const char*, 1>{
"xyz.openbmc_project.Inventory.Item.Chassis"});
}
diff --git a/redfish-core/lib/sensors.hpp b/redfish-core/lib/sensors.hpp
index 76c304f..738edc2 100644
--- a/redfish-core/lib/sensors.hpp
+++ b/redfish-core/lib/sensors.hpp
@@ -49,11 +49,11 @@
class SensorsAsyncResp
{
public:
- SensorsAsyncResp(crow::Response& response, const std::string& chassisId,
- const std::vector<const char*> types,
+ SensorsAsyncResp(crow::Response& response, const std::string& chassisIdIn,
+ const std::vector<const char*> typesIn,
const std::string& subNode) :
res(response),
- chassisId(chassisId), types(types), chassisSubNode(subNode)
+ chassisId(chassisIdIn), types(typesIn), chassisSubNode(subNode)
{
}
@@ -340,12 +340,12 @@
std::string sensorPath = *chassisPath + "/all_sensors";
crow::connections::systemBus->async_method_call(
[sensorsAsyncResp, callback{std::move(callback)}](
- const boost::system::error_code ec,
+ const boost::system::error_code& e,
const std::variant<std::vector<std::string>>&
variantEndpoints) {
- if (ec)
+ if (e)
{
- if (ec.value() != EBADR)
+ if (e.value() != EBADR)
{
messages::internalError(sensorsAsyncResp->res);
return;
@@ -381,7 +381,7 @@
respHandler, "xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTreePaths",
- "/xyz/openbmc_project/inventory", int32_t(0), interfaces);
+ "/xyz/openbmc_project/inventory", 0, interfaces);
BMCWEB_LOG_DEBUG << "getChassis exit";
}
@@ -452,8 +452,7 @@
crow::connections::systemBus->async_method_call(
std::move(respHandler), "xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
- "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", int32_t(0),
- interfaces);
+ "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", 0, interfaces);
BMCWEB_LOG_DEBUG << "getObjectManagerPaths exit";
}
@@ -803,10 +802,10 @@
auto interfaceProperties = interfacesDict.find(std::get<0>(p));
if (interfaceProperties != interfacesDict.end())
{
- auto valueIt = interfaceProperties->second.find(std::get<1>(p));
- if (valueIt != interfaceProperties->second.end())
+ auto thisValueIt = interfaceProperties->second.find(std::get<1>(p));
+ if (thisValueIt != interfaceProperties->second.end())
{
- const SensorVariant& valueVariant = valueIt->second;
+ const SensorVariant& valueVariant = thisValueIt->second;
// The property we want to set may be nested json, so use
// a json_pointer for easy indexing into the json structure.
@@ -820,7 +819,7 @@
double temp = 0.0;
if (int64Value != nullptr)
{
- temp = *int64Value;
+ temp = static_cast<double>(*int64Value);
}
else if (doubleValue != nullptr)
{
@@ -878,10 +877,10 @@
const std::string& owner = objDict.begin()->first;
crow::connections::systemBus->async_method_call(
[path, owner,
- sensorsAsyncResp](const boost::system::error_code ec,
+ sensorsAsyncResp](const boost::system::error_code e,
std::variant<std::vector<std::string>>
variantEndpoints) {
- if (ec)
+ if (e)
{
return; // if they don't have an association we
// can't tell what chassis is
@@ -911,13 +910,13 @@
}
crow::connections::systemBus->async_method_call(
[path, sensorsAsyncResp](
- const boost::system::error_code ec,
+ const boost::system::error_code& err,
const boost::container::flat_map<
std::string,
std::variant<uint8_t,
std::vector<std::string>,
std::string>>& ret) {
- if (ec)
+ if (err)
{
return; // don't have to have this
// interface
@@ -1016,15 +1015,16 @@
}
}
- auto& resp = sensorsAsyncResp->res
- .jsonValue["Redundancy"];
- resp.push_back(
+ nlohmann::json& jResp =
+ sensorsAsyncResp->res
+ .jsonValue["Redundancy"];
+ jResp.push_back(
{{"@odata.id",
"/refish/v1/Chassis/" +
sensorsAsyncResp->chassisId + "/" +
sensorsAsyncResp->chassisSubNode +
"#/Redundancy/" +
- std::to_string(resp.size())},
+ std::to_string(jResp.size())},
{"@odata.type",
"#Redundancy.v1_3_2.Redundancy"},
{"MinNumNeeded",
@@ -1314,7 +1314,7 @@
std::shared_ptr<boost::container::flat_set<std::string>> invConnections,
std::shared_ptr<boost::container::flat_map<std::string, std::string>>
objectMgrPaths,
- Callback&& callback, int invConnectionsIndex = 0)
+ Callback&& callback, size_t invConnectionsIndex = 0)
{
BMCWEB_LOG_DEBUG << "getInventoryItemsData enter";
@@ -1800,7 +1800,7 @@
}
else
{
- const char* fieldName = nullptr;
+ std::string fieldName;
if (sensorType == "temperature")
{
fieldName = "Temperatures";
@@ -1978,7 +1978,7 @@
// Get set of sensors in chassis
getChassis(SensorsAsyncResp, std::move(getChassisCb));
BMCWEB_LOG_DEBUG << "getChassisData exit";
-};
+}
/**
* @brief Find the requested sensorName in the list of all sensors supplied by
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index a3d7196..da88271 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -29,7 +29,7 @@
// Only allow one update at a time
static bool fwUpdateInProgress = false;
// Timer for software available
-static std::unique_ptr<boost::asio::deadline_timer> fwAvailableTimer;
+static std::unique_ptr<boost::asio::steady_timer> fwAvailableTimer;
static void cleanUp()
{
@@ -148,10 +148,9 @@
}
fwAvailableTimer =
- std::make_unique<boost::asio::deadline_timer>(*req.ioService);
+ std::make_unique<boost::asio::steady_timer>(*req.ioService);
- fwAvailableTimer->expires_from_now(
- boost::posix_time::seconds(timeoutTimeSeconds));
+ fwAvailableTimer->expires_after(std::chrono::seconds(timeoutTimeSeconds));
fwAvailableTimer->async_wait(
[asyncResp](const boost::system::error_code &ec) {
@@ -485,10 +484,6 @@
for (auto &obj : subtree)
{
- const std::vector<
- std::pair<std::string, std::vector<std::string>>>
- &connections = obj.second;
-
// if can't parse fw id then return
std::size_t idPos;
if ((idPos = obj.first.rfind("/")) == std::string::npos)
@@ -511,7 +506,8 @@
},
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
- "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", int32_t(0),
+ "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/",
+ static_cast<int32_t>(0),
std::array<const char *, 1>{
"xyz.openbmc_project.Software.Version"});
}
@@ -719,7 +715,8 @@
},
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
- "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/", int32_t(0),
+ "xyz.openbmc_project.ObjectMapper", "GetSubTree", "/",
+ static_cast<int32_t>(0),
std::array<const char *, 1>{
"xyz.openbmc_project.Software.Version"});
}
diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
index 3eff312..572fe7e 100644
--- a/scripts/parse_registries.py
+++ b/scripts/parse_registries.py
@@ -41,7 +41,7 @@
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
-include_path = os.path.realpath(os.path.join(SCRIPT_DIR, "..", "redfish-core", "include"))
+include_path = os.path.realpath(os.path.join(SCRIPT_DIR, "..", "redfish-core", "include", "registries"))
proxies = {
'https': os.environ.get("https_proxy", None)
@@ -65,15 +65,15 @@
registry.write(REGISTRY_HEADER.format(namespace))
# Parse the Registry header info
registry.write("const Header header = {")
- registry.write(".copyright = \"{}\",".format(json["@Redfish.Copyright"]))
- registry.write(".type = \"{}\",".format(json["@odata.type"]))
- registry.write(".id = \"{}\",".format(json["Id"]))
- registry.write(".name = \"{}\",".format(json["Name"]))
- registry.write(".language = \"{}\",".format(json["Language"]))
- registry.write(".description = \"{}\",".format(json["Description"]))
- registry.write(".registryPrefix = \"{}\",".format(json["RegistryPrefix"]))
- registry.write(".registryVersion = \"{}\",".format(json["RegistryVersion"]))
- registry.write(".owningEntity = \"{}\",".format(json["OwningEntity"]))
+ registry.write("\"{}\",".format(json["@Redfish.Copyright"]))
+ registry.write("\"{}\",".format(json["@odata.type"]))
+ registry.write("\"{}\",".format(json["Id"]))
+ registry.write(".\"{}\",".format(json["Name"]))
+ registry.write("\"{}\",".format(json["Language"]))
+ registry.write("\"{}\",".format(json["Description"]))
+ registry.write(".\"{}\",".format(json["RegistryPrefix"]))
+ registry.write("\"{}\",".format(json["RegistryVersion"]))
+ registry.write("\"{}\",".format(json["OwningEntity"]))
registry.write("};")
# Parse each Message entry
@@ -82,17 +82,17 @@
registry.write("MessageEntry{")
registry.write("\"{}\",".format(messageId))
registry.write("{")
- registry.write(".description = \"{}\",".format(message["Description"]))
- registry.write(".message = \"{}\",".format(message["Message"]))
- registry.write(".severity = \"{}\",".format(message["Severity"]))
- registry.write(".numberOfArgs = {},".format(message["NumberOfArgs"]))
- registry.write(".paramTypes = {")
+ registry.write("\"{}\",".format(message["Description"]))
+ registry.write("\"{}\",".format(message["Message"]))
+ registry.write("\"{}\",".format(message["Severity"]))
+ registry.write("{},".format(message["NumberOfArgs"]))
+ registry.write("{")
paramTypes = message.get("ParamTypes")
if paramTypes:
for paramType in paramTypes:
registry.write("\"{}\",".format(paramType))
registry.write("},")
- registry.write(".resolution = \"{}\",".format(message["Resolution"]))
+ registry.write("\"{}\",".format(message["Resolution"]))
registry.write("}},")
registry.write("};}\n")
- subprocess.check_call(["clang-format", "-i", file])
+ subprocess.check_call(["clang-format-6.0", "-i", file])
diff --git a/src/crow_test.cpp b/src/crow_test.cpp
index beefdee..f427a2f 100644
--- a/src/crow_test.cpp
+++ b/src/crow_test.cpp
@@ -5,8 +5,6 @@
#include "crow.h"
#include "gtest/gtest.h"
-#undef BMCWEB_LOG_LEVEL
-#define BMCWEB_LOG_LEVEL 0
using namespace std;
using namespace crow;
diff --git a/src/webserver_main.cpp b/src/webserver_main.cpp
index 602c216..c477581 100644
--- a/src/webserver_main.cpp
+++ b/src/webserver_main.cpp
@@ -56,7 +56,7 @@
int main(int argc, char** argv)
{
- crow::logger::setLogLevel(crow::LogLevel::DEBUG);
+ crow::logger::setLogLevel(crow::LogLevel::Debug);
auto io = std::make_shared<boost::asio::io_context>();
CrowApp app(io);