NVMeSensorMain: Define extractSensorName()

Continue lifting code from the lambda to simplify its implementation.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ief4e55d8a9b10f2d95c876d4b1f6dd4bb667b87f
diff --git a/src/NVMeSensorMain.cpp b/src/NVMeSensorMain.cpp
index 96f42c9..ed932cf 100644
--- a/src/NVMeSensorMain.cpp
+++ b/src/NVMeSensorMain.cpp
@@ -49,6 +49,21 @@
     return std::visit(VariantToIntVisitor(), findBus->second);
 }
 
+static std::optional<std::string>
+    extractSensorName(const std::string& path,
+                      const SensorBaseConfigMap& properties)
+{
+    auto findSensorName = properties.find("Name");
+    if (findSensorName == properties.end())
+    {
+        std::cerr << "could not determine configuration name for " << path
+                  << "\n";
+        return std::nullopt;
+    }
+
+    return std::get<std::string>(findSensorName->second);
+}
+
 static void handleSensorConfigurations(
     boost::asio::io_service& io, sdbusplus::asio::object_server& objectServer,
     std::shared_ptr<sdbusplus::asio::connection>& dbusConnection,
@@ -93,20 +108,18 @@
             continue;
         }
 
-        auto findSensorName = baseConfiguration->second.find("Name");
-        if (findSensorName == baseConfiguration->second.end())
+        std::optional<std::string> sensorName =
+            extractSensorName(sensor.first, baseConfiguration->second);
+        if (!sensorName)
         {
-            std::cerr << "could not determine configuration name for "
-                      << interfacePath << "\n";
             continue;
         }
-        std::string sensorName = std::get<std::string>(findSensorName->second);
 
         std::vector<thresholds::Threshold> sensorThresholds;
 
         if (!parseThresholdsFromConfig(sensorData, sensorThresholds))
         {
-            std::cerr << "error populating thresholds for " << sensorName
+            std::cerr << "error populating thresholds for " << *sensorName
                       << "\n";
         }
 
@@ -145,7 +158,7 @@
         }
 
         std::shared_ptr<NVMeSensor> sensorPtr = std::make_shared<NVMeSensor>(
-            objectServer, io, dbusConnection, sensorName,
+            objectServer, io, dbusConnection, *sensorName,
             std::move(sensorThresholds), interfacePath, *busNumber);
 
         context->addSensor(sensorPtr);