summaryrefslogtreecommitdiff
path: root/redfish-core/lib/metric_report_definition.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'redfish-core/lib/metric_report_definition.hpp')
-rw-r--r--redfish-core/lib/metric_report_definition.hpp55
1 files changed, 28 insertions, 27 deletions
diff --git a/redfish-core/lib/metric_report_definition.hpp b/redfish-core/lib/metric_report_definition.hpp
index fcbc99c1ef..a1231b14a8 100644
--- a/redfish-core/lib/metric_report_definition.hpp
+++ b/redfish-core/lib/metric_report_definition.hpp
@@ -21,7 +21,7 @@ using ReadingParameters =
std::string, std::string>>;
inline void fillReportDefinition(
- const std::shared_ptr<AsyncResp>& asyncResp, const std::string& id,
+ const std::shared_ptr<bmcweb::AsyncResp>& asyncResp, const std::string& id,
const std::vector<
std::pair<std::string, std::variant<std::string, bool, uint64_t,
ReadingParameters>>>& ret)
@@ -217,7 +217,7 @@ inline bool getUserParameters(crow::Response& res, const crow::Request& req,
}
inline bool getChassisSensorNode(
- const std::shared_ptr<AsyncResp>& asyncResp,
+ const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::vector<std::pair<std::string, std::vector<std::string>>>&
metrics,
boost::container::flat_set<std::pair<std::string, std::string>>& matched)
@@ -257,8 +257,10 @@ inline bool getChassisSensorNode(
class AddReport
{
public:
- AddReport(AddReportArgs argsIn, std::shared_ptr<AsyncResp> asyncResp) :
- asyncResp{std::move(asyncResp)}, args{std::move(argsIn)}
+ AddReport(AddReportArgs argsIn,
+ const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) :
+ asyncResp(asyncResp),
+ args{std::move(argsIn)}
{}
~AddReport()
{
@@ -291,20 +293,19 @@ class AddReport
readingParams.emplace_back(dbusPath, "SINGLE", id, uri);
}
}
-
+ const std::shared_ptr<bmcweb::AsyncResp> aResp = asyncResp;
crow::connections::systemBus->async_method_call(
- [asyncResp = std::move(asyncResp), name = args.name,
- uriToDbus = std::move(uriToDbus)](
+ [aResp, name = args.name, uriToDbus = std::move(uriToDbus)](
const boost::system::error_code ec, const std::string&) {
if (ec == boost::system::errc::file_exists)
{
messages::resourceAlreadyExists(
- asyncResp->res, "MetricReportDefinition", "Id", name);
+ aResp->res, "MetricReportDefinition", "Id", name);
return;
}
if (ec == boost::system::errc::too_many_files_open)
{
- messages::createLimitReachedForResource(asyncResp->res);
+ messages::createLimitReachedForResource(aResp->res);
return;
}
if (ec == boost::system::errc::argument_list_too_long)
@@ -315,17 +316,17 @@ class AddReport
metricProperties.emplace_back(uri);
}
messages::propertyValueIncorrect(
- asyncResp->res, metricProperties, "MetricProperties");
+ aResp->res, metricProperties, "MetricProperties");
return;
}
if (ec)
{
- messages::internalError(asyncResp->res);
+ messages::internalError(aResp->res);
BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
return;
}
- messages::created(asyncResp->res);
+ messages::created(aResp->res);
},
telemetry::service, "/xyz/openbmc_project/Telemetry/Reports",
"xyz.openbmc_project.Telemetry.ReportManager", "AddReport",
@@ -340,7 +341,7 @@ class AddReport
}
private:
- std::shared_ptr<AsyncResp> asyncResp;
+ const std::shared_ptr<bmcweb::AsyncResp> asyncResp;
AddReportArgs args;
boost::container::flat_map<std::string, std::string> uriToDbus{};
};
@@ -362,26 +363,26 @@ class MetricReportDefinitionCollection : public Node
}
private:
- void doGet(crow::Response& res, const crow::Request&,
- const std::vector<std::string>&) override
+ void doGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+ const crow::Request&, const std::vector<std::string>&) override
{
- res.jsonValue["@odata.type"] = "#MetricReportDefinitionCollection."
- "MetricReportDefinitionCollection";
- res.jsonValue["@odata.id"] =
+ asyncResp->res.jsonValue["@odata.type"] =
+ "#MetricReportDefinitionCollection."
+ "MetricReportDefinitionCollection";
+ asyncResp->res.jsonValue["@odata.id"] =
"/redfish/v1/TelemetryService/MetricReportDefinitions";
- res.jsonValue["Name"] = "Metric Definition Collection";
+ asyncResp->res.jsonValue["Name"] = "Metric Definition Collection";
- auto asyncResp = std::make_shared<AsyncResp>(res);
telemetry::getReportCollection(asyncResp,
telemetry::metricReportDefinitionUri);
}
- void doPost(crow::Response& res, const crow::Request& req,
+ void doPost(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+ const crow::Request& req,
const std::vector<std::string>&) override
{
- auto asyncResp = std::make_shared<AsyncResp>(res);
telemetry::AddReportArgs args;
- if (!telemetry::getUserParameters(res, req, args))
+ if (!telemetry::getUserParameters(asyncResp->res, req, args))
{
return;
}
@@ -434,10 +435,10 @@ class MetricReportDefinition : public Node
}
private:
- void doGet(crow::Response& res, const crow::Request&,
+ void doGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+ const crow::Request&,
const std::vector<std::string>& params) override
{
- auto asyncResp = std::make_shared<AsyncResp>(res);
if (params.size() != 1)
{
@@ -474,10 +475,10 @@ class MetricReportDefinition : public Node
telemetry::reportInterface);
}
- void doDelete(crow::Response& res, const crow::Request&,
+ void doDelete(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+ const crow::Request&,
const std::vector<std::string>& params) override
{
- auto asyncResp = std::make_shared<AsyncResp>(res);
if (params.size() != 1)
{
messages::internalError(asyncResp->res);