entity_manager: perform_probe: fixed findProbeType return issue

  Returning an iterator to a locally scoped flat_map led to undefined
behavior, as the map is destroyed when the function exits, leaving
the iterator dangling.
This change makes the map static const to ensure that the iterator
remains valid after the function returns.

Tested:
  The issue was observed when evaluating compound probes such as AND.
Previously, the string matched, but due to dangling pointer,the wrong
enum was returned.

Before:
  - ProbeType matched: [empty string], enum = invalid value
    (e.g., 408617467)
  - lastCommand = UNKNOWN

Loop Start
DEBUG: evaluating probe =
xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'MB'})
No matched probeType for probe =
xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'MB'})
<7> Found probe match on /xyz/openbmc_project/FruDevice/
Minerva_Harma_MB_DVT2 xyz.openbmc_project.FruDevice
DEBUG: ret(before) = false, cur = true
DEBUG: ret(after) = true
DEBUG: lastCommand = type=0
FALSE_T
DEBUG: evaluating probe = AND
Matched probeType: , enum = 408617467
DEBUG: ret(before) = true, cur = true
DEBUG: ret(after) = true
DEBUG: lastCommand = type=408617467
UNKNOWN
DEBUG: evaluating probe = FOUND('Mt.Mitchell_DCSCM_BMC')
Matched probeType: FOUND, enum = 4
DEBUG: ret(before) = true, cur = false
DEBUG: ret(after) = true
DEBUG: lastCommand = type=4
FOUND
Loop End


After:
  - ProbeType matched: "AND", enum = 2
  - lastCommand = AND

Loop Start
DEBUG: evaluating probe =
xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'MB'})
<7> Found probe match on /xyz/openbmc_project/FruDevice/
Minerva_Harma_MB_DVT2 xyz.openbmc_project.FruDevice
DEBUG: ret(before) = false, cur = true
DEBUG: ret(after) = true
DEBUG: lastCommand = type=0
FALSE_T
DEBUG: evaluating probe = AND
DEBUG: ret(before) = true, cur = true
DEBUG: ret(after) = true
DEBUG: lastCommand = type=2
AND
DEBUG: evaluating probe = FOUND('Mt.Mitchell_DCSCM_BMC')
DEBUG: ret(before) = true, cur = false
lastcommand = AND
DEBUG: ret(after) = false
DEBUG: lastCommand = type=4
FOUND
Loop End


Change-Id: Ia620d4373e5a0c41db19f21d825d17dd8318c37c
Signed-off-by: Peter Yin <peter.yin@quantatw.com>
diff --git a/src/entity_manager/perform_probe.cpp b/src/entity_manager/perform_probe.cpp
index 24fdd71..20e9d65 100644
--- a/src/entity_manager/perform_probe.cpp
+++ b/src/entity_manager/perform_probe.cpp
@@ -233,7 +233,8 @@
 
 FoundProbeTypeT findProbeType(const std::string& probe)
 {
-    const boost::container::flat_map<const char*, probe_type_codes, CmpStr>
+    static const boost::container::flat_map<const char*, probe_type_codes,
+                                            CmpStr>
         probeTypes{{{"FALSE", probe_type_codes::FALSE_T},
                     {"TRUE", probe_type_codes::TRUE_T},
                     {"AND", probe_type_codes::AND},