diff options
Diffstat (limited to 'redfish-core/lib')
-rw-r--r-- | redfish-core/lib/metric_report.hpp | 14 | ||||
-rw-r--r-- | redfish-core/lib/metric_report_definition.hpp | 13 | ||||
-rw-r--r-- | redfish-core/lib/trigger.hpp | 15 |
3 files changed, 30 insertions, 12 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}; diff --git a/redfish-core/lib/metric_report_definition.hpp b/redfish-core/lib/metric_report_definition.hpp index a27ec6beda..e960af7f3e 100644 --- a/redfish-core/lib/metric_report_definition.hpp +++ b/redfish-core/lib/metric_report_definition.hpp @@ -18,6 +18,9 @@ namespace redfish namespace telemetry { +constexpr const char* metricReportDefinitionUri = + "/redfish/v1/TelemetryService/MetricReportDefinitions"; + using ReadingParameters = std::vector<std::tuple<sdbusplus::message::object_path, std::string, std::string, std::string>>; @@ -30,11 +33,15 @@ inline void asyncResp->res.jsonValue["@odata.type"] = "#MetricReportDefinition.v1_3_0.MetricReportDefinition"; asyncResp->res.jsonValue["@odata.id"] = - telemetry::metricReportDefinitionUri + std::string("/") + id; + crow::utility::urlFromPieces("redfish", "v1", "TelemetryService", + "MetricReportDefinitions", id) + .string(); asyncResp->res.jsonValue["Id"] = id; asyncResp->res.jsonValue["Name"] = id; asyncResp->res.jsonValue["MetricReport"]["@odata.id"] = - telemetry::metricReportUri + std::string("/") + id; + crow::utility::urlFromPieces("redfish", "v1", "TelemetryService", + "MetricReports", id) + .string(); asyncResp->res.jsonValue["Status"]["State"] = "Enabled"; asyncResp->res.jsonValue["ReportUpdates"] = "Overwrite"; @@ -365,7 +372,7 @@ inline void requestRoutesMetricReportDefinitionCollection(App& app) "#MetricReportDefinitionCollection." "MetricReportDefinitionCollection"; asyncResp->res.jsonValue["@odata.id"] = - "/redfish/v1/TelemetryService/MetricReportDefinitions"; + telemetry::metricReportDefinitionUri; asyncResp->res.jsonValue["Name"] = "Metric Definition Collection"; const std::vector<const char*> interfaces{ diff --git a/redfish-core/lib/trigger.hpp b/redfish-core/lib/trigger.hpp index cdd5781b99..da6a5dbbc8 100644 --- a/redfish-core/lib/trigger.hpp +++ b/redfish-core/lib/trigger.hpp @@ -143,9 +143,11 @@ inline nlohmann::json nlohmann::json reports = nlohmann::json::array(); for (const std::string& name : reportNames) { - reports.push_back({ - {"@odata.id", metricReportDefinitionUri + std::string("/") + name}, - }); + reports.push_back( + {{"@odata.id", + crow::utility::urlFromPieces("redfish", "v1", "TelemetryService", + "MetricReportDefinitions", name) + .string()}}); } return reports; @@ -214,7 +216,9 @@ inline bool fillTrigger( } json["@odata.type"] = "#Triggers.v1_2_0.Triggers"; - json["@odata.id"] = triggerUri + std::string("/") + id; + json["@odata.id"] = crow::utility::urlFromPieces( + "redfish", "v1", "TelemetryService", "Triggers", id) + .string(); json["Id"] = id; json["Name"] = *name; @@ -282,8 +286,7 @@ inline void requestRoutesTriggerCollection(App& app) const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) { asyncResp->res.jsonValue["@odata.type"] = "#TriggersCollection.TriggersCollection"; - asyncResp->res.jsonValue["@odata.id"] = - "/redfish/v1/TelemetryService/Triggers"; + asyncResp->res.jsonValue["@odata.id"] = telemetry::triggerUri; asyncResp->res.jsonValue["Name"] = "Triggers Collection"; const std::vector<const char*> interfaces{ telemetry::triggerInterface}; |