summaryrefslogtreecommitdiff
path: root/redfish-core/lib/virtual_media.hpp
diff options
context:
space:
mode:
authorEd Tanous <edtanous@google.com>2022-06-03 19:56:52 +0300
committerEd Tanous <ed@tanous.net>2022-07-09 18:11:26 +0300
commitfdb203473d41c008f210c744aa71933b1865dfba (patch)
tree63fbefb37d5d3b44c9dda5c30e4ae7de621261f3 /redfish-core/lib/virtual_media.hpp
parentb2f7609b48eb058f973a989593daf3dea24b4063 (diff)
downloadbmcweb-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.hpp35
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,