diff options
author | Ed Tanous <edtanous@google.com> | 2022-06-03 19:56:52 +0300 |
---|---|---|
committer | Ed Tanous <ed@tanous.net> | 2022-07-09 18:11:26 +0300 |
commit | fdb203473d41c008f210c744aa71933b1865dfba (patch) | |
tree | 63fbefb37d5d3b44c9dda5c30e4ae7de621261f3 /redfish-core/lib/virtual_media.hpp | |
parent | b2f7609b48eb058f973a989593daf3dea24b4063 (diff) | |
download | bmcweb-fdb203473d41c008f210c744aa71933b1865dfba.tar.xz |
Make virtual media use urlFromPieces
urlFromPieces is the new way to construct "correct" urls. It also
cleans up quite a bit of this code. Use it.
Tested: Code compiles. No backend in upstream yet.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ic43c257613061708e96a5449e0b3d57f288fbffa
Diffstat (limited to 'redfish-core/lib/virtual_media.hpp')
-rw-r--r-- | redfish-core/lib/virtual_media.hpp | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/redfish-core/lib/virtual_media.hpp b/redfish-core/lib/virtual_media.hpp index 4f6fad9b46..69040a6170 100644 --- a/redfish-core/lib/virtual_media.hpp +++ b/redfish-core/lib/virtual_media.hpp @@ -148,12 +148,8 @@ inline nlohmann::json vmItemTemplate(const std::string& name, const std::string& resName) { nlohmann::json item; - - std::string id = "/redfish/v1/Managers/"; - id += name; - id += "/VirtualMedia/"; - id += resName; - item["@odata.id"] = std::move(id); + item["@odata.id"] = crow::utility::urlFromPieces( + "redfish", "v1", "Managers", name, "VirtualMedia", resName); item["@odata.type"] = "#VirtualMedia.v1_3_0.VirtualMedia"; item["Name"] = "Virtual Removable Media"; @@ -196,12 +192,8 @@ inline void getVmResourceList(std::shared_ptr<bmcweb::AsyncResp> aResp, continue; } - std::string id = "/redfish/v1/Managers/"; - id += name; - id += "/VirtualMedia/"; - id += path; - - item["@odata.id"] = std::move(id); + item["@odata.id"] = crow::utility::urlFromPieces( + "redfish", "v1", "Managers", name, "VirtualMedia", path); members.emplace_back(std::move(item)); } aResp->res.jsonValue["Members@odata.count"] = members.size(); @@ -258,26 +250,23 @@ inline void getVmData(const std::shared_ptr<bmcweb::AsyncResp>& aResp, } aResp->res.jsonValue = vmItemTemplate(name, resName); - std::string actionsId = "/redfish/v1/Managers/"; - actionsId += name; - actionsId += "/VirtualMedia/"; - actionsId += resName; - actionsId += "/Actions"; // Check if dbus path is Legacy type if (mode.filename() == "Legacy") { aResp->res.jsonValue["Actions"]["#VirtualMedia.InsertMedia"] - ["target"] = - actionsId + "/VirtualMedia.InsertMedia"; + ["target"] = crow::utility::urlFromPieces( + "redfish", "v1", "Managers", name, "VirtualMedia", resName, + "Actions", "VirtualMedia.InsertMedia"); } vmParseInterfaceObject(item.second, aResp); aResp->res .jsonValue["Actions"]["#VirtualMedia.EjectMedia"]["target"] = - actionsId + "/VirtualMedia.EjectMedia"; - + crow::utility::urlFromPieces("redfish", "v1", "Managers", name, + "VirtualMedia", resName, "Actions", + "VirtualMedia.EjectMedia"); return; } @@ -1001,8 +990,8 @@ inline void handleManagersVirtualMediaCollectionGet( asyncResp->res.jsonValue["@odata.type"] = "#VirtualMediaCollection.VirtualMediaCollection"; asyncResp->res.jsonValue["Name"] = "Virtual Media Services"; - asyncResp->res.jsonValue["@odata.id"] = - "/redfish/v1/Managers/" + name + "/VirtualMedia"; + asyncResp->res.jsonValue["@odata.id"] = crow::utility::urlFromPieces( + "redfish", "v1", "Managers", name, "VirtualMedia"); crow::connections::systemBus->async_method_call( [asyncResp, name](const boost::system::error_code ec, |