Some comments inlined with Nagu ....

Thanks
-Nagu
> -----Original Message-----
> From: Gary Lee [mailto:gary....@dektech.com.au]
> Sent: 08 May 2014 12:14
> To: hans.fe...@ericsson.com; hans.nordeb...@ericsson.com; Nagendra
> Kumar; Praveen Malviya
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [PATCH 1 of 1] amfd: Remove asserts from validation routines [#849]
> 
>  osaf/services/saf/amf/amfd/app.cc        |  18 +++++++++++-------
>  osaf/services/saf/amf/amfd/comp.cc       |   5 +++--
>  osaf/services/saf/amf/amfd/compcstype.cc |   5 +++--
>  osaf/services/saf/amf/amfd/hlt.cc        |  10 ++++++----
>  osaf/services/saf/amf/amfd/sg.cc         |   9 +++++----
>  osaf/services/saf/amf/amfd/si.cc         |   5 +++--
>  osaf/services/saf/amf/amfd/su.cc         |   5 +++--
>  7 files changed, 34 insertions(+), 23 deletions(-)
> 
> 
> When an unknown attribute in encountered in various callbacks, sometimes an
> assert is called.
> In other cases, the operation is rejected.
> 
> This may create forward compatibility issues if new attributes are added in 
> the
> future.
> 
> In this patch, the asserts are replaced with a warning and the corresponding
> attribute change
> will be permitted but ignored.
> 
> diff --git a/osaf/services/saf/amf/amfd/app.cc
> b/osaf/services/saf/amf/amfd/app.cc
> --- a/osaf/services/saf/amf/amfd/app.cc
> +++ b/osaf/services/saf/amf/amfd/app.cc
> @@ -243,12 +243,15 @@ static SaAisErrorT app_ccb_completed_cb(
>                               SaNameT dn = *((SaNameT*)attribute-
> >attrValues[0]);
>                               if (NULL == avd_apptype_get(&dn)) {
>                                       report_ccb_validation_error(opdata,
> "saAmfAppType '%s' not found", dn.value);
> +                                     rc = SA_AIS_ERR_BAD_OPERATION;
>                                       goto done;
>                               }
>                               rc = SA_AIS_OK;
>                               break;
> -                     } else
> -                             osafassert(0);
> +                     } else {
> +                             LOG_WA("Ignoring unknown attribute '%s'",
> attribute->attrName);
> +                             rc = SA_AIS_OK;
> +                     }
[Nagu]:: Returning ok for bad attribute may not be appropriate.BAD_OP can be 
returned.

>               }
>               break;
>       case CCBUTIL_DELETE:
> @@ -294,10 +297,10 @@ static void app_ccb_apply_cb(CcbUtilOper
>                               app->saAmfAppType =
> *((SaNameT*)attribute->attrValues[0]);
>                               app->app_type = avd_apptype_get(&app-
> >saAmfAppType);
>                               avd_apptype_add_app(app);
> -                             break;
>                       }
> -                     else
> -                             osafassert(0);
> +                     else {
> +                             TRACE("Ignoring unknown attribute '%s'",
> attribute->attrName);
> +                     }
[Nagu]: If above comments are accepted, then this check is not required.
>               }
>               break;
>       }
> @@ -396,8 +399,9 @@ static SaAisErrorT app_rt_attr_cb(SaImmO
>               if (!strcmp(attributeName, "saAmfApplicationCurrNumSGs")) {
>                       avd_saImmOiRtObjectUpdate_sync(objectName,
> attributeName,
>                               SA_IMM_ATTR_SAUINT32T, &app-
> >saAmfApplicationCurrNumSGs);
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'",
> attributeName);
> +             }
>       }
> 
>       return SA_AIS_OK;
> diff --git a/osaf/services/saf/amf/amfd/comp.cc
> b/osaf/services/saf/amf/amfd/comp.cc
> --- a/osaf/services/saf/amf/amfd/comp.cc
> +++ b/osaf/services/saf/amf/amfd/comp.cc
> @@ -830,8 +830,9 @@ static SaAisErrorT comp_rt_attr_cb(SaImm
>                       /* TODO */
>               } else if (!strcmp("saAmfCompCurrProxiedNames",
> attributeName)) {
>                       /* TODO */
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'",
> attributeName);
> +             }
>       }
> 
>       return SA_AIS_OK;
> diff --git a/osaf/services/saf/amf/amfd/compcstype.cc
> b/osaf/services/saf/amf/amfd/compcstype.cc
> --- a/osaf/services/saf/amf/amfd/compcstype.cc
> +++ b/osaf/services/saf/amf/amfd/compcstype.cc
> @@ -435,8 +435,9 @@ static SaAisErrorT compcstype_rt_attr_ca
>                               SA_IMM_ATTR_SAUINT32T, &cst-
> >saAmfCompNumCurrStandbyCSIs);
>               } else if (!strcmp("saAmfCompAssignedCsi", attributeName)) {
>                       /* TODO */
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'",
> attributeName);
> +             }
[Nagu]: Same comment here.

>       }
> 
>       return SA_AIS_OK;
> diff --git a/osaf/services/saf/amf/amfd/hlt.cc
> b/osaf/services/saf/amf/amfd/hlt.cc
> --- a/osaf/services/saf/amf/amfd/hlt.cc
> +++ b/osaf/services/saf/amf/amfd/hlt.cc
> @@ -48,8 +48,9 @@ static SaAisErrorT ccb_completed_modify_
>                                               *value, opdata-
> >objectName.value);
>                               return SA_AIS_ERR_BAD_OPERATION;
>                       }
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'", attribute-
> >attrName);
> +             }
[Nagu]: Same comment here.
>       }
> 
>       return SA_AIS_OK;
> @@ -144,8 +145,9 @@ static void ccb_apply_modify_hdlr(CcbUti
>                       TRACE("saAmfHealthcheckMaxDuration modified to
> '%llu' for Comp'%s'", *param_val,
>                                       comp->comp_info.name.value);
>                       param.attr_id = saAmfHealthcheckMaxDuration_ID;
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     TRACE("Ignoring unknown attribute '%s'", attribute-
> >attrName);
> +             }
[Nagu]: Same comment here.

> 
>               avd_snd_op_req_msg(avd_cb, comp->su->su_on_node,
> &param);
>       }
> diff --git a/osaf/services/saf/amf/amfd/sg.cc
> b/osaf/services/saf/amf/amfd/sg.cc
> --- a/osaf/services/saf/amf/amfd/sg.cc
> +++ b/osaf/services/saf/amf/amfd/sg.cc
> @@ -627,7 +627,7 @@ static SaAisErrorT ccb_completed_modify_
>                                       goto done;
>                               }
>                       } else {
> -                             osafassert(0);
> +                             LOG_WA("Ignoring unknown attribute '%s'",
> attribute->attrName);
[Nagu]: Same comment here.

>                       }
>               }               /* while (attr_mod != NULL) */
> 
> @@ -933,7 +933,7 @@ static void ccb_apply_modify_hdlr(CcbUti
>                       } else if (!strcmp(attribute->attrName,
> "saAmfSGSuHostNodeGroup")) {
>                               sg->saAmfSGSuHostNodeGroup = *((SaNameT
> *)value);
>                       } else {
> -                             osafassert(0);
> +                             TRACE("Ignoring unknown attribute '%s'",
> attribute->attrName);
>                       }
> 
>                       attr_mod = opdata->param.modify.attrMods[i++];
> @@ -1322,8 +1322,9 @@ static SaAisErrorT sg_rt_attr_cb(SaImmOi
>               } else if (!strcmp("saAmfSGNumCurrInstantiatedSpareSUs",
> attributeName)) {
>                       avd_saImmOiRtObjectUpdate_sync(objectName,
> attributeName,
>                               SA_IMM_ATTR_SAUINT32T, &sg-
> >saAmfSGNumCurrInstantiatedSpareSUs);
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'",
> attributeName);
> +             }
>       }
> 
>       return SA_AIS_OK;
> 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
> @@ -973,8 +973,9 @@ static SaAisErrorT si_rt_attr_cb(SaImmOi
>               } else if (!strcmp("saAmfSINumCurrStandbyAssignments",
> attributeName)) {
>                       avd_saImmOiRtObjectUpdate_sync(objectName,
> attributeName,
>                               SA_IMM_ATTR_SAUINT32T, &si-
> >saAmfSINumCurrStandbyAssignments);
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'",
> attributeName);
> +             }
>       }
> 
>       return SA_AIS_OK;
> diff --git a/osaf/services/saf/amf/amfd/su.cc
> b/osaf/services/saf/amf/amfd/su.cc
> --- a/osaf/services/saf/amf/amfd/su.cc
> +++ b/osaf/services/saf/amf/amfd/su.cc
> @@ -1197,8 +1197,9 @@ static SaAisErrorT su_rt_attr_cb(SaImmOi
>               } else if (!strcmp("saAmfSURestartCount", attributeName)) {
>                       avd_saImmOiRtObjectUpdate_sync(objectName,
> attributeName,
>                               SA_IMM_ATTR_SAUINT32T, &su-
> >saAmfSURestartCount);
> -             } else
> -                     osafassert(0);
> +             } else {
> +                     LOG_WA("Ignoring unknown attribute '%s'",
> attributeName);
> +             }
>       }
> 
>       return SA_AIS_OK;

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to