summaryrefslogtreecommitdiff
path: root/redfish-core/lib/metric_report.hpp
diff options
context:
space:
mode:
authorSzymon Dompke <szymon.dompke@intel.com>2022-03-01 18:34:08 +0300
committerEd Tanous <ed@tanous.net>2022-03-30 21:37:41 +0300
commit456cd875f3c56b45605d8a017e91d810876a035c (patch)
treef727da89b673a878e9971a1bfc0ecb0441f6a0df /redfish-core/lib/metric_report.hpp
parent24861a286eb148fcec22afecffb73b596752700f (diff)
downloadbmcweb-456cd875f3c56b45605d8a017e91d810876a035c.tar.xz
Use url_view for telemetry uris
This change refactor telemetry code to use bmcweb utility function for uri construction, which is safe and preferred way, instead of string operations. Testing done: - Some basic GET operations done on Telemetry, no regression. Signed-off-by: Szymon Dompke <szymon.dompke@intel.com> Change-Id: I6de5d79a078944d398357f27dc0c201c130c4302
Diffstat (limited to 'redfish-core/lib/metric_report.hpp')
-rw-r--r--redfish-core/lib/metric_report.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/redfish-core/lib/metric_report.hpp b/redfish-core/lib/metric_report.hpp
index 89bd8dbe45..2fb8d8225f 100644
--- a/redfish-core/lib/metric_report.hpp
+++ b/redfish-core/lib/metric_report.hpp
@@ -14,6 +14,9 @@ namespace redfish
namespace telemetry
{
+constexpr const char* metricReportUri =
+ "/redfish/v1/TelemetryService/MetricReports";
+
using Readings =
std::vector<std::tuple<std::string, std::string, double, uint64_t>>;
using TimestampReadings = std::tuple<uint64_t, Readings>;
@@ -39,11 +42,16 @@ inline bool fillReport(nlohmann::json& json, const std::string& id,
const TimestampReadings& timestampReadings)
{
json["@odata.type"] = "#MetricReport.v1_3_0.MetricReport";
- json["@odata.id"] = telemetry::metricReportUri + std::string("/") + id;
+ json["@odata.id"] =
+ crow::utility::urlFromPieces("redfish", "v1", "TelemetryService",
+ "MetricReports", id)
+ .string();
json["Id"] = id;
json["Name"] = id;
json["MetricReportDefinition"]["@odata.id"] =
- telemetry::metricReportDefinitionUri + std::string("/") + id;
+ crow::utility::urlFromPieces("redfish", "v1", "TelemetryService",
+ "MetricReportDefinitions", id)
+ .string();
const auto& [timestamp, readings] = timestampReadings;
json["Timestamp"] = crow::utility::getDateTimeUintMs(timestamp);
@@ -62,7 +70,7 @@ inline void requestRoutesMetricReportCollection(App& app)
asyncResp->res.jsonValue["@odata.type"] =
"#MetricReportCollection.MetricReportCollection";
asyncResp->res.jsonValue["@odata.id"] =
- "/redfish/v1/TelemetryService/MetricReports";
+ telemetry::metricReportUri;
asyncResp->res.jsonValue["Name"] = "Metric Report Collection";
const std::vector<const char*> interfaces{
telemetry::reportInterface};