osaf/services/saf/amf/amfd/si.cc |  13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)


Amfd rejects ccb modification operation on si rank if
its current si rank value is being modified by
the same value.
Amfd can accept it and ignore the changes to avoid ccb  abort.

diff --git a/osaf/services/saf/amf/amfd/si.cc b/osaf/services/saf/amf/amfd/si.cc
--- a/osaf/services/saf/amf/amfd/si.cc
+++ b/osaf/services/saf/amf/amfd/si.cc
@@ -778,12 +778,6 @@ static SaAisErrorT si_ccb_completed_modi
                                
                        SaUint32T sirank = 
*(SaUint32T*)attribute->attrValues[0];
 
-                       if (si->saAmfSIRank == (sirank == 0 ? ~0U : sirank)) {
-                               report_ccb_validation_error(opdata, "Changing 
same value of saAmfSIRank(%u)", sirank);
-                               rc = SA_AIS_ERR_EXIST;
-                               break;
-                       }
-
                        if (!si->is_sirank_valid(sirank)) {
                                report_ccb_validation_error(opdata, 
"saAmfSIRank(%u) is invalid due to SI Dependency rules", sirank);
                                rc = SA_AIS_ERR_BAD_OPERATION;
@@ -1205,8 +1199,11 @@ static void si_ccb_apply_modify_hdlr(Ccb
                } else if (!strcmp(attribute->attrName, "saAmfSIRank")) {
                        if (value_is_deleted == true)
                                si->update_sirank(0);
-                       else
-                               si->update_sirank(*((SaUint32T 
*)attr_mod->modAttr.attrValues[0]));
+                       else {
+                               /* Ignore the modification with the same value. 
*/
+                               if (si->saAmfSIRank != *((SaUint32T 
*)attr_mod->modAttr.attrValues[0]))
+                                       si->update_sirank(*((SaUint32T 
*)attr_mod->modAttr.attrValues[0]));
+                       }
                        TRACE("Modified saAmfSIRank is '%u'", si->saAmfSIRank);
                } else {
                        osafassert(0);

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to