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