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, ¶m); + } 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, ¶m); } 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, ¶m); + } 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, ¶m); } 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