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;
         }
 
diff --git a/dcmihandler.hpp b/dcmihandler.hpp
index 29757ff..e3fa9de 100644
--- a/dcmihandler.hpp
+++ b/dcmihandler.hpp
@@ -42,7 +42,7 @@
 static constexpr auto hostNameProp = "HostName";
 static constexpr auto temperatureSensorType = 0x01;
 static constexpr auto maxInstances = 255;
-static constexpr auto configFile =
+static constexpr auto gDCMISensorsConfig =
     "/usr/share/ipmi-providers/dcmi_sensors.json";
 static constexpr auto ethernetIntf =
     "xyz.openbmc_project.Network.EthernetInterface";
@@ -54,6 +54,8 @@
 static constexpr auto systemBusName = "org.freedesktop.systemd1";
 static constexpr auto systemPath = "/org/freedesktop/systemd1";
 static constexpr auto systemIntf = "org.freedesktop.systemd1.Manager";
+static constexpr auto gDCMICapabilitiesConfig =
+    "/usr/share/ipmi-providers/dcmi_cap.json";
 
 namespace assettag
 {
@@ -411,12 +413,13 @@
     uint8_t numDataSets;  //!< No. of sets of temperature data
 } __attribute__((packed));
 
-/** @brief Parse out JSON config file containing information
- *         related to sensors.
+/** @brief Parse out JSON config file.
+ *
+ *  @param[in] configFile - JSON config file name
  *
  *  @return A json object
  */
-Json parseSensorConfig();
+Json parseJSONConfig(const std::string& configFile);
 
 namespace temp_readings
 {