diff --git a/src/bios_handler.cpp b/src/bios_handler.cpp index d85904f4d..3abefd265 100644 --- a/src/bios_handler.cpp +++ b/src/bios_handler.cpp @@ -592,7 +592,7 @@ void IbmBiosHandler::saveKeepAndClearToVpd(const std::string& i_KeepAndClearVal) constants::pimServiceName, constants::systemVpdInvPath, constants::utilInf, constants::kwdKeepAndClear); - if (auto l_pVal = std::get_if(&l_kwdValueVariant)) + if (auto l_pVal = std::get_if(&l_kwdValueVariant)) { commonUtility::toLower(const_cast(i_KeepAndClearVal)); @@ -609,7 +609,17 @@ void IbmBiosHandler::saveKeepAndClearToVpd(const std::string& i_KeepAndClearVal) l_valToUpdateInVpd.emplace_back((*l_pVal).at(0) & ~(constants::VALUE_1)); } - // TODO: Write API to be called to update in VPD. + + if (-1 == m_manager->updateKeyword( + SYSTEM_VPD_FILE_PATH, + types::IpzData("UTIL", constants::kwdKeepAndClear, + l_valToUpdateInVpd))) + { + logging::logMessage("Failed to update " + + std::string(constants::kwdKeepAndClear) + + " keyword to VPD"); + } + return; } logging::logMessage("Invalid type recieved for keep and clear from VPD.");