dcmihandler: Add parameterization to JSON parser method.
Pass JSON config file name as a parameter
to make parser re-usable with various config files.
Change-Id: I5bf1e91121e0e75be58383151f265b32f39a5b60
Signed-off-by: Kirill Pakhomov <k.pakhomov@yadro.com>
diff --git a/dcmihandler.cpp b/dcmihandler.cpp
index 1c448ce..7a4db9f 100644
--- a/dcmihandler.cpp
+++ b/dcmihandler.cpp
@@ -50,8 +50,6 @@
// SendHostNameEnabled will set to true.
constexpr auto DHCP_OPT12_ENABLED = "SendHostNameEnabled";
-constexpr auto DCMI_CAP_JSON_FILE = "/usr/share/ipmi-providers/dcmi_cap.json";
-
constexpr auto SENSOR_VALUE_INTF = "xyz.openbmc_project.Sensor.Value";
constexpr auto SENSOR_VALUE_PROP = "Value";
constexpr auto SENSOR_SCALE_PROP = "Scale";
@@ -275,7 +273,7 @@
ipmi::setDbusProperty(bus, service, dhcpObj, dhcpIntf, prop, value);
}
-Json parseSensorConfig()
+Json parseJSONConfig(const std::string& configFile)
{
std::ifstream jsonFile(configFile);
if (!jsonFile.is_open())
@@ -717,7 +715,7 @@
ipmi_data_len_t data_len, ipmi_context_t context)
{
- std::ifstream dcmiCapFile(DCMI_CAP_JSON_FILE);
+ std::ifstream dcmiCapFile(dcmi::gDCMICapabilitiesConfig);
if (!dcmiCapFile.is_open())
{
log<level::ERR>("DCMI Capabilities file not found");
@@ -838,7 +836,7 @@
elog<InternalFailure>();
}
- auto data = parseSensorConfig();
+ auto data = parseJSONConfig(gDCMISensorsConfig);
static const std::vector<Json> empty{};
std::vector<Json> readings = data.value(type, empty);
size_t numInstances = readings.size();
@@ -889,7 +887,7 @@
sdbusplus::bus::bus bus{ipmid_get_sd_bus_connection()};
size_t numInstances = 0;
- auto data = parseSensorConfig();
+ auto data = parseJSONConfig(gDCMISensorsConfig);
static const std::vector<Json> empty{};
std::vector<Json> readings = data.value(type, empty);
numInstances = readings.size();
@@ -1410,7 +1408,7 @@
{
if (!parsed)
{
- config = dcmi::parseSensorConfig();
+ config = dcmi::parseJSONConfig(dcmi::gDCMISensorsConfig);
parsed = true;
}