---
 src/smf/smfd/SmfUpgradeProcedure.cc | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/smf/smfd/SmfUpgradeProcedure.cc 
b/src/smf/smfd/SmfUpgradeProcedure.cc
index 1b8afe806..2937c70ee 100644
--- a/src/smf/smfd/SmfUpgradeProcedure.cc
+++ b/src/smf/smfd/SmfUpgradeProcedure.cc
@@ -572,6 +572,22 @@ bool SmfUpgradeProcedure::calculateRollingSteps(
   const std::list<SmfParentType *> &actUnitTemplates =
       nodeTemplate->getActivationUnitTemplateList();
 
+  // If we have all empty elements in a procedure do not create steps for it.
+  // The reason is that we do not want to lock/unlock nodes when there is no
+  // software to install or remove.
+  if (m_beforeLock.empty() &&
+      m_beforeTerm.empty() &&
+      m_afterImmModify.empty() &&
+      m_afterInstantiate.empty() &&
+      m_afterUnlock.empty() &&
+      nodeTemplate->getSwInstallList().empty() &&
+      nodeTemplate->getSwRemoveList().empty() &&
+      byTemplate->getTargetEntityTemplate().empty() &&
+      actUnitTemplates.size() == 0) {
+    LOG_WA("%s: not creating step when elements are empty", __FUNCTION__);
+    return true;
+  }
+
   if (actUnitTemplates.size() == 0) {
     /* No activation unit templates, use node list as activation/deactivation
      * units */
-- 
2.13.0


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to