Patch is modifying saAmfSGMaxStandbySIsperSU in unlocked SG.
So in ccb_apply_modify_hdlr(), SG should be scanned for new standby
assignments as some SI(s) may not have standby assignments. When
modification is done in locked or lock-in state, unlock operation on SG
takes care of it.
What do you think?
Thanks,
Praveen
On 08-Apr-16 9:24 PM, Alex Jones wrote:
> osaf/services/saf/amf/amfd/sg.cc | 23 +++++++++++++++++++++++
> 1 files changed, 23 insertions(+), 0 deletions(-)
>
>
> amfd disallows changing saAmfSGMaxStandbySIsperSU while the SG is UNLOCKED
>
> A check is performed in the code to disallow it.
>
> Code needs to be added to handle the modification.
>
> 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
> @@ -722,6 +722,24 @@ static SaAisErrorT ccb_completed_modify_
> goto done;
> }
> }
> + } else if (!strcmp(attribute->attrName,
> "saAmfSGMaxStandbySIsperSU")) {
> + if (value_is_deleted == true)
> + continue;
> + uint32_t max_standby_sis =
> *static_cast<SaUint32T *>(value);
> +
> + if (sg->sg_redundancy_model !=
> SA_AMF_NPM_REDUNDANCY_MODEL) {
> + report_ccb_validation_error(opdata,
> + "%s: saAmfSGMaxStandbySIsperSU
> for non-N+M model cannot"
> + " be modified when SG is
> unlocked", __FUNCTION__);
> + rc = SA_AIS_ERR_BAD_OPERATION;
> + goto done;
> + } else if (max_standby_sis <
> sg->saAmfSGMaxStandbySIsperSU) {
> + report_ccb_validation_error(opdata,
> + "%s: Cannot decrease
> saAmfSGMaxStandbySIsperSU while SG"
> + " is unlocked ", __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",
> @@ -1076,6 +1094,11 @@ static void ccb_apply_modify_hdlr(CcbUti
> }
> }
> }
> + } else if (!strcmp(attribute->attrName,
> "saAmfSGMaxStandbySIsperSU")) {
> + if (value_is_deleted)
> + sg->saAmfSGMaxStandbySIsperSU = -1;
> + else
> + sg->saAmfSGMaxStandbySIsperSU =
> *static_cast<SaUint32T *>(value);
> } else {
> osafassert(0);
> }
>
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel