Not allow admin op on SU if other is activating.
---
 src/amf/amfd/su.cc | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/amf/amfd/su.cc b/src/amf/amfd/su.cc
index e1da8f726..6223cd9e4 100644
--- a/src/amf/amfd/su.cc
+++ b/src/amf/amfd/su.cc
@@ -1337,6 +1337,23 @@ static void su_admin_op_cb(SaImmOiHandleT immoi_handle,
     goto done;
   }
 
+  node = su->get_node_ptr();
+  if (node->admin_node_pend_cbk.admin_oper != 0) {
+    report_admin_op_error(
+        immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr,
+        "Node'%s' hosting SU'%s', undergoing admin operation'%u'",
+        node->name.c_str(), su->name.c_str(),
+        node->admin_node_pend_cbk.admin_oper);
+    goto done;
+  }
+  if (su->pend_cbk.invocation != 0) {
+    report_admin_op_error(
+        immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr,
+        "SU'%s', undergoing admin operation'%u'",
+        su->name.c_str(), su->pend_cbk.admin_oper);
+    goto done;
+  }
+
   if ((su->sg_of_su->sg_ncs_spec == true) &&
       (cb->node_id_avd == su->su_on_node->node_info.nodeId)) {
     report_admin_op_error(
@@ -1469,15 +1486,6 @@ static void su_admin_op_cb(SaImmOiHandleT immoi_handle,
       goto done;
     }
   }
-  node = su->get_node_ptr();
-  if (node->admin_node_pend_cbk.admin_oper != 0) {
-    report_admin_op_error(
-        immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr,
-        "Node'%s' hosting SU'%s', undergoing admin operation'%u'",
-        node->name.c_str(), su->name.c_str(),
-        node->admin_node_pend_cbk.admin_oper);
-    goto done;
-  }
 
   /* Validation has passed and admin operation should be done. Proceed with
    * it... */
-- 
2.17.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to