xref: /openbmc/pldm/fw-update/activation.cpp (revision f106a2c8)
1*f106a2c8SAndrew Jeffery #include "fw-update/activation.hpp"
2*f106a2c8SAndrew Jeffery 
3*f106a2c8SAndrew Jeffery #include "fw-update/update_manager.hpp"
4*f106a2c8SAndrew Jeffery 
5*f106a2c8SAndrew Jeffery namespace pldm
6*f106a2c8SAndrew Jeffery {
7*f106a2c8SAndrew Jeffery namespace fw_update
8*f106a2c8SAndrew Jeffery {
9*f106a2c8SAndrew Jeffery 
10*f106a2c8SAndrew Jeffery ActivationIntf::Activations
activation(ActivationIntf::Activations value)11*f106a2c8SAndrew Jeffery     Activation::activation(ActivationIntf::Activations value)
12*f106a2c8SAndrew Jeffery {
13*f106a2c8SAndrew Jeffery     if (value == ActivationIntf::Activations::Activating)
14*f106a2c8SAndrew Jeffery     {
15*f106a2c8SAndrew Jeffery         deleteImpl.reset();
16*f106a2c8SAndrew Jeffery         updateManager->activatePackage();
17*f106a2c8SAndrew Jeffery     }
18*f106a2c8SAndrew Jeffery     else if (value == ActivationIntf::Activations::Active ||
19*f106a2c8SAndrew Jeffery              value == ActivationIntf::Activations::Failed)
20*f106a2c8SAndrew Jeffery     {
21*f106a2c8SAndrew Jeffery         if (!deleteImpl)
22*f106a2c8SAndrew Jeffery         {
23*f106a2c8SAndrew Jeffery             deleteImpl = std::make_unique<Delete>(bus, objPath, updateManager);
24*f106a2c8SAndrew Jeffery         }
25*f106a2c8SAndrew Jeffery     }
26*f106a2c8SAndrew Jeffery 
27*f106a2c8SAndrew Jeffery     return ActivationIntf::activation(value);
28*f106a2c8SAndrew Jeffery }
29*f106a2c8SAndrew Jeffery 
delete_()30*f106a2c8SAndrew Jeffery void Delete::delete_()
31*f106a2c8SAndrew Jeffery {
32*f106a2c8SAndrew Jeffery     updateManager->clearActivationInfo();
33*f106a2c8SAndrew Jeffery }
34*f106a2c8SAndrew Jeffery } // namespace fw_update
35*f106a2c8SAndrew Jeffery } // namespace pldm
36