osaf/libs/common/amf/include/amf_defs.h         |   5 +++-
 osaf/services/saf/amf/amfd/comptype.cc          |  18 ++++++++++++++-
 osaf/services/saf/amf/amfnd/compdb.cc           |  28 ++++++++++++++++++++++--
 osaf/services/saf/amf/amfnd/include/avnd_comp.h |   2 +
 4 files changed, 47 insertions(+), 6 deletions(-)


Added support for saAmfCtDefDisableRestart, saAmfCtDefQuiescingCompleteTimeout.

diff --git a/osaf/libs/common/amf/include/amf_defs.h 
b/osaf/libs/common/amf/include/amf_defs.h
--- a/osaf/libs/common/amf/include/amf_defs.h
+++ b/osaf/libs/common/amf/include/amf_defs.h
@@ -252,7 +252,10 @@ typedef enum
 {
    saAmfCtDefCallbackTimeout_ID = 1,
    saAmfCtDefClcCliTimeout_ID = 2,
-   saAmfCtDefRecoveryOnError_ID = 3
+   saAmfCtDefRecoveryOnError_ID = 3,
+   saAmfCtDefDisableRestart_ID = 4,
+   saAmfCtDefInstantiationLevel_ID = 5,
+   saAmfCtDefQuiescingCompleteTimeout_ID = 6           
 } AVSV_AMF_COMPTYPE_ATTR_ID; 
 
 /* Attribute ID enum for the SaAmfHealthcheck class */
diff --git a/osaf/services/saf/amf/amfd/comptype.cc 
b/osaf/services/saf/amf/amfd/comptype.cc
--- a/osaf/services/saf/amf/amfd/comptype.cc
+++ b/osaf/services/saf/amf/amfd/comptype.cc
@@ -442,7 +442,6 @@ static void ccb_apply_modify_hdlr(const 
                                SaTimeT *param_val = (SaTimeT 
*)attribute->attrValues[0];
                                TRACE("saAmfCtDefCallbackTimeout to '%llu' for 
compType '%s' on node '%s'", *param_val, 
                                        opdata->objectName.value, 
(*it)->name.value);
-                               
                                param.value_len = sizeof(*param_val);
                                memcpy(param.value, param_val, param.value_len);
                                param.attr_id = saAmfCtDefCallbackTimeout_ID;
@@ -451,11 +450,18 @@ static void ccb_apply_modify_hdlr(const 
                                SaTimeT *param_val = (SaTimeT 
*)attribute->attrValues[0];
                                TRACE("saAmfCtDefClcCliTimeout to '%llu' for 
compType '%s' on node '%s'", *param_val, 
                                        opdata->objectName.value, 
(*it)->name.value);
-                               
                                param.value_len = sizeof(*param_val);
                                memcpy(param.value, param_val, param.value_len);
                                param.attr_id = saAmfCtDefClcCliTimeout_ID;
                                avd_snd_op_req_msg(avd_cb, *it, &param);
+                       } else if (!strcmp(attribute->attrName, 
"saAmfCtDefQuiescingCompleteTimeout")) {
+                               SaTimeT *param_val = (SaTimeT 
*)attribute->attrValues[0];
+                               TRACE("saAmfCtDefQuiescingCompleteTimeout to 
'%llu' for compType '%s' on node '%s'", *param_val, 
+                                       opdata->objectName.value, 
(*it)->name.value);
+                               param.value_len = sizeof(*param_val);
+                               memcpy(param.value, param_val, param.value_len);
+                               param.attr_id = 
saAmfCtDefQuiescingCompleteTimeout_ID;
+                               avd_snd_op_req_msg(avd_cb, *it, &param);        
                        } else if (!strcmp(attribute->attrName, 
"saAmfCtDefRecoveryOnError")) {
                                SaAmfRecommendedRecoveryT *param_val = 
(SaAmfRecommendedRecoveryT *)attribute->attrValues[0];
                                TRACE("saAmfCtDefRecoveryOnError to '%u' for 
compType '%s' on node '%s'", *param_val, 
@@ -464,6 +470,14 @@ static void ccb_apply_modify_hdlr(const 
                                memcpy(param.value, param_val, param.value_len);
                                param.attr_id = saAmfCtDefRecoveryOnError_ID;
                                avd_snd_op_req_msg(avd_cb, *it, &param);
+                       } else if (!strcmp(attribute->attrName, 
"saAmfCtDefDisableRestart")) {
+                               SaBoolT *param_val = (SaBoolT 
*)attribute->attrValues[0];
+                               TRACE("saAmfCtDefDisableRestart to '%u' for 
compType '%s' on node '%s'", *param_val, 
+                                       opdata->objectName.value, 
(*it)->name.value);
+                               param.value_len = sizeof(*param_val);
+                               memcpy(param.value, param_val, param.value_len);
+                               param.attr_id = saAmfCtDefDisableRestart_ID;
+                               avd_snd_op_req_msg(avd_cb, *it, &param);
                        } else
                                LOG_WA("Unexpected attribute name: %s", 
attribute->attrName);
                }
diff --git a/osaf/services/saf/amf/amfnd/compdb.cc 
b/osaf/services/saf/amf/amfnd/compdb.cc
--- a/osaf/services/saf/amf/amfnd/compdb.cc
+++ b/osaf/services/saf/amf/amfnd/compdb.cc
@@ -896,7 +896,9 @@ uint32_t avnd_comptype_oper_req(AVND_CB 
        const char* comp_type_name;
        SaTimeT saAmfCtDefCallbackTimeout = 0;
        SaTimeT saAmfCtDefClcCliTimeout = 0;
-       SaAmfRecommendedRecoveryT saAmfCtDefRecoveryOnError; 
+       SaTimeT saAmfCtDefQuiescingCompleteTimeout = 0;
+       SaAmfRecommendedRecoveryT saAmfCtDefRecoveryOnError;
+       SaBoolT saAmfCtDefDisableRestart;
 
        TRACE_ENTER2("Op %u, %s", param->act, param->name.value);
 
@@ -972,6 +974,14 @@ uint32_t avnd_comptype_oper_req(AVND_CB 
                                                TRACE("cmd->timeout (AM Stop) 
modified to '%llu'", cmd->timeout);                                             
  
                                        }
                                        break;
+                               case saAmfCtDefQuiescingCompleteTimeout_ID:
+                                       saAmfCtDefQuiescingCompleteTimeout = 
*((SaTimeT *) param->value);
+                                       osafassert(sizeof(SaTimeT) == 
param->value_len);
+                                       if 
(comp->use_comptype_attr.test(DefQuiescingCompleteTimeout)) {
+                                               
comp->quies_complete_cbk_timeout = saAmfCtDefQuiescingCompleteTimeout;
+                                               
TRACE("comp->quies_complete_cbk_timeout modified to '%llu'", 
comp->quies_complete_cbk_timeout);
+                                       }
+                                       break;
                                case saAmfCtDefRecoveryOnError_ID:
                                        saAmfCtDefRecoveryOnError = 
*((SaAmfRecommendedRecoveryT *) param->value);
                                        
osafassert(sizeof(SaAmfRecommendedRecoveryT) == param->value_len);
@@ -980,6 +990,14 @@ uint32_t avnd_comptype_oper_req(AVND_CB 
                                                TRACE("comp->err_info.def_rec 
modified to '%u'", comp->err_info.def_rec);                                     
          
                                        }
                                        break;
+                               case saAmfCtDefDisableRestart_ID:
+                                       saAmfCtDefDisableRestart = *((SaBoolT 
*) param->value);
+                                       osafassert(sizeof(SaBoolT) == 
param->value_len);
+                                       if 
(comp->use_comptype_attr.test(DefDisableRestart)) {
+                                               comp->is_restart_en = 
(saAmfCtDefDisableRestart == true) ? false : true;
+                                               TRACE("comp->is_restart_en 
modified to '%u'", comp->is_restart_en);
+                                       }
+                                       break;
                                default:
                                        LOG_WA("Unexpected attribute id: %d", 
param->attr_id);
                                }
@@ -1547,8 +1565,10 @@ static int comp_init(AVND_COMP *comp, co
                comp->use_comptype_attr.set(CsiRemoveCallbackTimeout);
 
        if 
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompQuiescingCompleteTimeout"),
 attributes,
-                           0, &comp->quies_complete_cbk_timeout) != SA_AIS_OK)
+                           0, &comp->quies_complete_cbk_timeout) != SA_AIS_OK) 
{
                comp->quies_complete_cbk_timeout = 
comptype->saAmfCompQuiescingCompleteTimeout;
+               comp->use_comptype_attr.set(DefQuiescingCompleteTimeout);
+       }
 
        if 
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompRecoveryOnError"), 
attributes, 0, &comp->err_info.def_rec) != SA_AIS_OK) {
                comp->err_info.def_rec = comptype->saAmfCtDefRecoveryOnError;
@@ -1561,8 +1581,10 @@ static int comp_init(AVND_COMP *comp, co
                }
        }
 
-       if 
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompDisableRestart"), 
attributes, 0, &disable_restart) != SA_AIS_OK)
+       if 
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompDisableRestart"), 
attributes, 0, &disable_restart) != SA_AIS_OK) {
                disable_restart = comptype->saAmfCtDefDisableRestart;
+               comp->use_comptype_attr.set(DefDisableRestart);
+       }
 
        comp->is_restart_en = (disable_restart == true) ? false : true;
 
diff --git a/osaf/services/saf/amf/amfnd/include/avnd_comp.h 
b/osaf/services/saf/amf/amfnd/include/avnd_comp.h
--- a/osaf/services/saf/amf/amfnd/include/avnd_comp.h
+++ b/osaf/services/saf/amf/amfnd/include/avnd_comp.h
@@ -293,6 +293,8 @@ enum UsedComptypeAttrs {
        CompAmStartTimeout,
        CompAmStopTimeout,
         DefRecoveryOnError,
+        DefDisableRestart,
+        DefQuiescingCompleteTimeout,
        NumAttrs
 };
 

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

Reply via email to