xref: /openbmc/estoraged/src/erase/verifyDriveGeometry.cpp (revision e6ffe7040eb28d8ea2a242177d2780516b6f5cf0)
1*e6ffe704SJohn Edward Broadbent #include "verifyDriveGeometry.hpp"
2*e6ffe704SJohn Edward Broadbent 
3*e6ffe704SJohn Edward Broadbent #include "estoraged_conf.hpp"
4*e6ffe704SJohn Edward Broadbent 
5*e6ffe704SJohn Edward Broadbent #include <phosphor-logging/lg2.hpp>
6*e6ffe704SJohn Edward Broadbent #include <xyz/openbmc_project/eStoraged/error.hpp>
7*e6ffe704SJohn Edward Broadbent 
8*e6ffe704SJohn Edward Broadbent #include <string>
9*e6ffe704SJohn Edward Broadbent 
10*e6ffe704SJohn Edward Broadbent using sdbusplus::xyz::openbmc_project::eStoraged::Error::EraseError;
11*e6ffe704SJohn Edward Broadbent 
12*e6ffe704SJohn Edward Broadbent void VerifyDriveGeometry::geometryOkay(uint64_t bytes)
13*e6ffe704SJohn Edward Broadbent {
14*e6ffe704SJohn Edward Broadbent     if (bytes > ERASE_MAX_GEOMETRY)
15*e6ffe704SJohn Edward Broadbent     {
16*e6ffe704SJohn Edward Broadbent         lg2::error("Erase verify Geometry too large", "REDFISH_MESSAGE_ID",
17*e6ffe704SJohn Edward Broadbent                    std::string("OpenBMC.0.1.DriveEraseFailure"),
18*e6ffe704SJohn Edward Broadbent                    "REDFISH_MESSAGE_ARGS",
19*e6ffe704SJohn Edward Broadbent                    std::to_string(bytes) + ">" +
20*e6ffe704SJohn Edward Broadbent                        std::to_string(ERASE_MAX_GEOMETRY));
21*e6ffe704SJohn Edward Broadbent         throw EraseError();
22*e6ffe704SJohn Edward Broadbent     }
23*e6ffe704SJohn Edward Broadbent     else if (bytes < ERASE_MIN_GEOMETRY)
24*e6ffe704SJohn Edward Broadbent     {
25*e6ffe704SJohn Edward Broadbent         lg2::error(
26*e6ffe704SJohn Edward Broadbent             "eStorageD erase verify Geometry too small", "REDFISH_MESSAGE_ID",
27*e6ffe704SJohn Edward Broadbent             std::string("OpenBMC.0.1.DriveEraseFailure"),
28*e6ffe704SJohn Edward Broadbent             "REDFISH_MESSAGE_ARGS",
29*e6ffe704SJohn Edward Broadbent             std::to_string(bytes) + "<" + std::to_string(ERASE_MIN_GEOMETRY));
30*e6ffe704SJohn Edward Broadbent         throw EraseError();
31*e6ffe704SJohn Edward Broadbent     }
32*e6ffe704SJohn Edward Broadbent     else
33*e6ffe704SJohn Edward Broadbent     {
34*e6ffe704SJohn Edward Broadbent         lg2::info("eStorageD erase verify Geometry in range",
35*e6ffe704SJohn Edward Broadbent                   "REDFISH_MESSAGE_ID",
36*e6ffe704SJohn Edward Broadbent                   std::string("OpenBMC.0.1.DriveEraseSuccess"));
37*e6ffe704SJohn Edward Broadbent     }
38*e6ffe704SJohn Edward Broadbent }
39