Activation: Add activationBlocksTransition

Use activationBlocksTransition during PSU code update, which prevent
host from powering on during the activation.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: Ie303a99d9bbfee49c949884f16dbca0c5b08ee6e
diff --git a/src/activation.cpp b/src/activation.cpp
index 2230d0f..131e480 100644
--- a/src/activation.cpp
+++ b/src/activation.cpp
@@ -58,7 +58,7 @@
     }
     else
     {
-        // TODO
+        activationBlocksTransition.reset();
     }
 
     return SoftwareActivation::activation(value);
@@ -104,6 +104,12 @@
 
 void Activation::startActivation()
 {
+    if (!activationBlocksTransition)
+    {
+        activationBlocksTransition =
+            std::make_unique<ActivationBlocksTransition>(bus, path);
+    }
+
     // TODO: for now only update one psu, future commits shall handle update
     // multiple psus
     auto psuPaths = utils::getPSUInventoryPath(bus);
@@ -122,6 +128,8 @@
 
 void Activation::finishActivation()
 {
+    activationBlocksTransition.reset();
+
     // TODO: delete the old software object
     // TODO: create related associations
     deleteImageManagerObject();