PEL: Prevent deletion if it's associated with HWIsolation
- This ensures that PELs linked to HWIsolation records are protected
from accidental deletion.
- Shows error message of "Call failed: The service is temporarily
unavailable.", when attempting to delete such a PEL individually.
- If trying to Delete all, will skip such PELs without showing any
message.
Tested:
Sample output:
```bash
$ busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/
logging xyz.openbmc_project.Collection.DeleteAll DeleteAll
$ busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/
logging/entry/2 xyz.openbmc_project.Object.Delete Delete
Call failed: The service is temporarily unavailable.
```
Change-Id: I2d28de91bbb0fbc2a991e3d5e5631814d41fe044
Signed-off-by: Harsh Agarwal <Harsh.Agarwal@ibm.com>
diff --git a/test/extensions_test.cpp b/test/extensions_test.cpp
index bfd2268..d5f29eb 100644
--- a/test/extensions_test.cpp
+++ b/test/extensions_test.cpp
@@ -37,6 +37,16 @@
prohibited = true;
}
+void logIDWithHwIsolation1(std::vector<uint32_t>& logIDs)
+{
+ logIDs.push_back(1);
+}
+
+void logIDWithHwIsolation2(std::vector<uint32_t>& logIDs)
+{
+ logIDs.push_back(2);
+}
+
DISABLE_LOG_ENTRY_CAPS()
REGISTER_EXTENSION_FUNCTION(startup1)
REGISTER_EXTENSION_FUNCTION(startup2)
@@ -44,6 +54,8 @@
REGISTER_EXTENSION_FUNCTION(create2)
REGISTER_EXTENSION_FUNCTION(deleteProhibited1)
REGISTER_EXTENSION_FUNCTION(deleteProhibited2)
+REGISTER_EXTENSION_FUNCTION(logIDWithHwIsolation1)
+REGISTER_EXTENSION_FUNCTION(logIDWithHwIsolation2)
REGISTER_EXTENSION_FUNCTION(deleteLog1)
REGISTER_EXTENSION_FUNCTION(deleteLog2)
@@ -82,5 +94,24 @@
EXPECT_TRUE(prohibited);
}
+ EXPECT_EQ(Extensions::getLogIDWithHwIsolationFunctions().size(), 2);
+ std::vector<uint32_t> ids;
+ for (size_t i = 0; i < 2; ++i)
+ {
+ auto getLogIDWithHwIsolation =
+ Extensions::getLogIDWithHwIsolationFunctions()[i];
+ getLogIDWithHwIsolation(ids);
+ if (i == 0)
+ {
+ EXPECT_EQ(ids.size(), 1);
+ EXPECT_EQ(ids[0], 1);
+ }
+ if (i == 1)
+ {
+ EXPECT_EQ(ids.size(), 2);
+ EXPECT_EQ(ids[1], 2);
+ }
+ }
+
EXPECT_TRUE(Extensions::disableDefaultLogCaps());
}