xref: /openbmc/entity-manager/src/entity_manager/utils.hpp (revision 83c07fdc0680aea324675d9b6f0ce5ff39fc1c10)
1 #pragma once
2 
3 #include "../utils.hpp"
4 
5 #include <boost/asio/io_context.hpp>
6 #include <nlohmann/json.hpp>
7 #include <sdbusplus/asio/connection.hpp>
8 
9 constexpr const char* configurationOutDir = "/var/configuration/";
10 constexpr const char* versionHashFile = "/var/configuration/version";
11 constexpr const char* versionFile = "/etc/os-release";
12 
13 namespace em_utils
14 {
15 
16 namespace properties
17 {
18 constexpr const char* interface = "org.freedesktop.DBus.Properties";
19 constexpr const char* get = "Get";
20 } // namespace properties
21 
22 bool fwVersionIsSame();
23 
24 void handleLeftOverTemplateVars(nlohmann::json& value);
25 
26 std::optional<std::string> templateCharReplace(
27     nlohmann::json& value, const DBusObject& object, size_t index,
28     const std::optional<std::string>& replaceStr = std::nullopt,
29     bool handleLeftOver = true);
30 
31 std::optional<std::string> templateCharReplace(
32     nlohmann::json& value, const DBusInterface& interface, size_t index,
33     const std::optional<std::string>& replaceStr = std::nullopt);
34 
35 std::string buildInventorySystemPath(std::string& boardName,
36                                      const std::string& boardType);
37 
38 } // namespace em_utils
39