quiesce: ensure only one block per entry id

There are situations in the extensions path where a single BMC entry id
may be passed into the quiesce logic multiple times. Ensure only one
boot blocking quiesce entry is created per entry id.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I44dc307117370e521fa97f9b782df99cc535bf33
diff --git a/log_manager.cpp b/log_manager.cpp
index c8c6cc5..e959959 100644
--- a/log_manager.cpp
+++ b/log_manager.cpp
@@ -371,6 +371,17 @@
 
 void Manager::quiesceOnError(const uint32_t entryId)
 {
+    // Verify we don't already have this entry blocking
+    auto it = find_if(
+        this->blockingErrors.begin(), this->blockingErrors.end(),
+        [&](std::unique_ptr<Block>& obj) { return obj->entryId == entryId; });
+    if (it != this->blockingErrors.end())
+    {
+        // Already recorded so just return
+        logging::log<logging::level::DEBUG>(
+            "QuiesceOnError set and callout present but entry already logged");
+        return;
+    }
 
     logging::log<logging::level::INFO>(
         "QuiesceOnError set and callout present");