Hi Alex,
I couldn't get the below change:

+                               if (value_is_deleted)
+                                       sg->saAmfSGNumPrefActiveSUs = 
sg->saAmfSGNumPrefActiveSUs;
+                               else

Thanks
-Nagu

> -----Original Message-----
> From: Alex Jones [mailto:ajo...@genband.com]
> Sent: 13 May 2014 00:36
> To: hans.fe...@ericsson.com; Nagendra Kumar; Praveen Malviya
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [PATCH 1 of 1] amfd: allow change to saAmfSGNumPrefActiveSUs for
> N+M SG while UNLOCKED [#871]
> 
>  osaf/services/saf/amf/amfd/sg.cc |  39
> +++++++++++++++++++++++++++++++++++++++
>  1 files changed, 39 insertions(+), 0 deletions(-)
> 
> 
> ccb_completed_modify_hdlr: Attribute 'saAmfSGNumPrefActiveSUs' cannot be
> modified when SG is unlocked
> 
> OpenSAF disallows changing saAmfSGNumPrefActiveSUs while the SG is
> UNLOCKED.
> This prevents in-service capacity upgrade for N+M models, which is not
> desirable.
> 
> This change allows saAmfSGNumPrefActiveSUs to be increased for N+M models,
> as
> long as there are instantiated spare SUs equal to the amount of the increase.
> These instantiated spare SUs will then be assigned ACTIVE, and their
> corresponding CSIs will be assigned to the STANDBY.
> 
> 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
> @@ -675,6 +675,33 @@ static SaAisErrorT ccb_completed_modify_
>                                       rc = SA_AIS_ERR_BAD_OPERATION;
>                                       goto done;
>                               }
> +                     } else if (!strcmp(attribute->attrName,
> "saAmfSGNumPrefActiveSUs")) {
> +                             uint32_t pref_active_su =
> *static_cast<SaUint32T *>(value);
> +
> +                             if (sg->sg_redundancy_model !=
> SA_AMF_NPM_REDUNDANCY_MODEL) {
> +                                     report_ccb_validation_error(opdata,
> +                                             "%s:
> saAmfSGNumPrefActiveSUs for non-N+M model cannot"
> +                                             " be modified when SG is
> unlocked", __FUNCTION__);
> +                                     rc = SA_AIS_ERR_BAD_OPERATION;
> +                                     goto done;
> +                             } else if (pref_active_su < sg-
> >saAmfSGNumPrefActiveSUs) {
> +                                     report_ccb_validation_error(opdata,
> +                                             "%s: Cannot decrease
> saAmfSGNumPrefActiveSUs while SG"
> +                                             " is unlocked ",
> __FUNCTION__);
> +                                     rc = SA_AIS_ERR_BAD_OPERATION;
> +                                     goto done;
> +                             } else {
> +                                     uint32_t increase_amount =
> pref_active_su - sg->saAmfSGNumPrefActiveSUs;
> +
> +                                     if (sg-
> >saAmfSGNumCurrInstantiatedSpareSUs < increase_amount) {
> +
>       report_ccb_validation_error(opdata,
> +                                                     "%s: Not enough
> instantiated spare SUs to do"
> +                                                     " in-service increase
> of saAmfSGNumPrefActiveSUs",
> +                                                     __FUNCTION__);
> +                                             rc =
> SA_AIS_ERR_BAD_OPERATION;
> +                                             goto done;
> +                                     }
> +                             }
>                       } else {
>                               report_ccb_validation_error(opdata,
>                                       "%s: Attribute '%s' cannot be modified
> when SG is unlocked",
> @@ -1010,6 +1037,18 @@ static void ccb_apply_modify_hdlr(CcbUti
>                                       sg->name.value, sg-
> >saAmfSGAutoRepair);
>                       } else if (!strcmp(attribute->attrName,
> "saAmfSGSuHostNodeGroup")) {
>                               sg->saAmfSGSuHostNodeGroup = *((SaNameT
> *)value);
> +                     } else if (!strcmp(attribute->attrName,
> "saAmfSGNumPrefActiveSUs")) {
> +                             if (value_is_deleted)
> +                                     sg->saAmfSGNumPrefActiveSUs = sg-
> >saAmfSGNumPrefActiveSUs;
> +                             else
> +                                     sg->saAmfSGNumPrefActiveSUs =
> *static_cast<SaUint32T *>(value);
> +
> +                             if (avd_cb->avail_state_avd ==
> SA_AMF_HA_ACTIVE)  {
> +                                     /* find an instantiated spare SU */
> +                                     if (sg->realign(avd_cb, sg) !=
> NCSCC_RC_SUCCESS) {
> +                                             osafassert(0);
> +                                     }
> +                             }
>                       } else {
>                               osafassert(0);
>                       }
> 

------------------------------------------------------------------------------
"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