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

shouldn't it reset the value from the SgType?

Thanks,
Hans

> -----Original Message-----
> From: Nagendra Kumar [mailto:nagendr...@oracle.com]
> Sent: den 15 maj 2014 13:56
> To: Alex Jones; Hans Feldt; Praveen Malviya
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: RE: [PATCH 1 of 1] amfd: allow change to saAmfSGNumPrefActiveSUs for 
> N+M SG while UNLOCKED [#871]
> 
> Ok, keep a notice log. Ack.
> 
> Thanks
> -Nagu
> > -----Original Message-----
> > From: Alex Jones [mailto:ajo...@genband.com]
> > Sent: 13 May 2014 20:29
> > To: Nagendra Kumar; hans.fe...@ericsson.com; Praveen Malviya
> > Cc: opensaf-devel@lists.sourceforge.net
> > Subject: Re: [PATCH 1 of 1] amfd: allow change to saAmfSGNumPrefActiveSUs
> > for N+M SG while UNLOCKED [#871]
> >
> > Oh.  That is really to disallow deleting the attribute.  Do I even need it?
> >
> > Alex
> >
> > On 05/13/2014 02:15 AM, Nagendra Kumar wrote:
> > > 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