Ack with minor comment inline
/HansF

> -----Original Message-----
> From: Hans Nordebäck
> Sent: den 12 augusti 2014 14:08
> To: Hans Feldt; praveen.malv...@oracle.com; nagendr...@oracle.com
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [PATCH 1 of 1] AMF: support immediate effect when changing comp-type 
> attributes v5 [#819]
> 
>  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,
[Hans] indentation problem?

>       NumAttrs
>  };
> 

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

Reply via email to