ah ok sorry now I see yes it should be kept as you say in sutype. I talked about su. /HansF
On 2 May 2014 10:29, Nagendra Kumar <nagendr...@oracle.com> wrote: > Ok. Please modify the trace as "Modified saAmfSutDefSUFailover to '%u' for Su > '%s'". > > -Nagu > >> -----Original Message----- >> From: Hans Feldt [mailto:osafde...@gmail.com] >> Sent: 02 May 2014 13:05 >> To: Nagendra Kumar >> Cc: Praveen Malviya; Hans Nordeback; opensaf-devel@lists.sourceforge.net >> Subject: Re: [PATCH 2 of 7] amfd: add and use set_su_failover [#713] >> >> The trace is there in the setter method, OK? >> /HansF >> >> On 2 May 2014 09:05, Nagendra Kumar <nagendr...@oracle.com> wrote: >> > Please keep the trace. >> > - su->saAmfSUFailover = >> > static_cast<bool>(sut- >> >saAmfSutDefSUFailover); >> > - TRACE("Modified >> > saAmfSutDefSUFailover to '%u' for >> Su'%s'", >> > - >> > su->saAmfSUFailover, su->name.value); >> > - su_nd_attribute_update(su, >> > saAmfSUFailOver_ID); >> > >> >> -----Original Message----- >> >> From: Hans Feldt [mailto:osafde...@gmail.com] >> >> Sent: 30 April 2014 10:31 >> >> To: Nagendra Kumar; Praveen Malviya; hans.nordeb...@ericsson.com >> >> Cc: opensaf-devel@lists.sourceforge.net >> >> Subject: [PATCH 2 of 7] amfd: add and use set_su_failover [#713] >> >> >> >> osaf/services/saf/amf/amfd/comp.cc | 3 +-- >> >> osaf/services/saf/amf/amfd/include/su.h | 6 +++++- >> >> osaf/services/saf/amf/amfd/sg.cc | 3 +-- >> >> osaf/services/saf/amf/amfd/su.cc | 30 >> >> +++++++++++++++++------------- >> >> osaf/services/saf/amf/amfd/sutype.cc | 5 +---- >> >> 5 files changed, 25 insertions(+), 22 deletions(-) >> >> >> >> >> >> 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 >> >> @@ -1560,8 +1560,7 @@ static void comp_ccb_apply_delete_hdlr(s >> >> SA_IMM_ATTR_SAUINT32T, &comp->su- >> >> >saAmfSUPreInstantiable); >> >> /* If SU becomes NPI then enable saAmfSUFailover flag Sec >> >> 3.11.1.3.2 AMF-B.04.01 spec */ >> >> if (!comp->su->saAmfSUPreInstantiable) { >> >> - comp->su->saAmfSUFailover = true; >> >> - su_nd_attribute_update(comp->su, >> >> saAmfSUFailOver_ID); >> >> + comp->su->set_su_failover(true); >> >> } >> >> } >> >> >> >> diff --git a/osaf/services/saf/amf/amfd/include/su.h >> >> b/osaf/services/saf/amf/amfd/include/su.h >> >> --- a/osaf/services/saf/amf/amfd/include/su.h >> >> +++ b/osaf/services/saf/amf/amfd/include/su.h >> >> @@ -38,6 +38,7 @@ >> >> /** >> >> * AMF director Service Unit representation. >> >> */ >> >> +//TODO: all attributes that have a setter should probably have an getter >> >> class AVD_SU { >> >> public: >> >> SaNameT name; >> >> @@ -91,6 +92,7 @@ class AVD_SU { >> >> struct avd_sutype *su_type; >> >> AVD_SU *su_list_su_type_next; >> >> >> >> + void set_su_failover(bool value); >> >> void dec_curr_stdby_si(void); >> >> void inc_curr_stdby_si(void); >> >> void inc_curr_act_si(void); >> >> @@ -108,6 +110,9 @@ class AVD_SU { >> >> void delete_all_susis(void); >> >> void set_all_susis_assigned_quiesced(void); >> >> void set_all_susis_assigned(void); >> >> + >> >> + private: >> >> + void send_attribute_update(AVSV_AMF_SU_ATTR_ID attrib_id); >> >> }; >> >> >> >> extern AmfDb<AVD_SU> *su_db; >> >> @@ -194,6 +199,5 @@ extern SaAisErrorT avd_sutcomptype_confi >> >> extern void avd_sutcomptype_constructor(void); >> >> >> >> extern AVD_SU *avd_su_get_or_create(const SaNameT *dn); >> >> -extern void su_nd_attribute_update(const AVD_SU *su, >> >> AVSV_AMF_SU_ATTR_ID attrib_id); >> >> >> >> #endif >> >> 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 >> >> @@ -1564,8 +1564,7 @@ void avd_sg_adjust_config(AVD_SG *sg) >> >> /* saAmfSUFailover must be true for a NPI SU sec 3.11.1.3.2 >> >> AMF-B.04.01 spec */ >> >> for (AVD_SU *su = sg->list_of_su; su != NULL; su = su- >> >> >sg_list_su_next) { >> >> if (!su->saAmfSUFailover) { >> >> - su->saAmfSUFailover = true; >> >> - su_nd_attribute_update(su, >> >> saAmfSUFailOver_ID); >> >> + su->set_su_failover(true); >> >> } >> >> } >> >> >> >> 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 >> >> @@ -1427,19 +1427,19 @@ static void su_ccb_apply_modify_hdlr(str >> >> >> >> if (!strcmp(attr_mod->modAttr.attrName, "saAmfSUFailover")) >> >> { >> >> if (value_is_deleted) { >> >> - su->saAmfSUFailover = static_cast<bool>(su- >> >> >su_type->saAmfSutDefSUFailover); >> >> + su->set_su_failover(su->su_type- >> >> >saAmfSutDefSUFailover); >> >> su->saAmfSUFailover_configured = false; >> >> } >> >> else { >> >> - su->saAmfSUFailover = >> >> static_cast<bool>(*((SaUint32T *)attr_mod->modAttr.attrValues[0])); >> >> + bool value = >> >> + static_cast<bool>(*((SaUint32T >> >> *)attr_mod->modAttr.attrValues[0])); >> >> + su->set_su_failover(value); >> >> su->saAmfSUFailover_configured = true; >> >> } >> >> - TRACE("Modified saAmfSUFailover is '%u'", su- >> >> >saAmfSUFailover); >> >> if (!su->saAmfSUPreInstantiable) { >> >> - su->saAmfSUFailover = true; >> >> + su->set_su_failover(true); >> >> su->saAmfSUFailover_configured = true; >> >> } >> >> - su_nd_attribute_update(su, saAmfSUFailOver_ID); >> >> } else if (!strcmp(attr_mod->modAttr.attrName, >> >> "saAmfSUMaintenanceCampaign")) { >> >> if (value_is_deleted) { >> >> su->saAmfSUMaintenanceCampaign.length = >> >> 0; >> >> @@ -1460,13 +1460,12 @@ static void su_ccb_apply_modify_hdlr(str >> >> su->su_type = sut; >> >> avd_sutype_add_su(su); >> >> if (su->saAmfSUPreInstantiable) { >> >> - su->saAmfSUFailover = static_cast<bool>(sut- >> >> >saAmfSutDefSUFailover); >> >> + su->set_su_failover(static_cast<bool>(sut- >> >> >saAmfSutDefSUFailover)); >> >> su->saAmfSUFailover_configured = false; >> >> } else { >> >> - su->saAmfSUFailover = true; >> >> + su->set_su_failover(true); >> >> su->saAmfSUFailover_configured = true; >> >> } >> >> - su_nd_attribute_update(su, saAmfSUFailOver_ID); >> >> su->su_is_external = sut->saAmfSutIsExternal; >> >> } else >> >> osafassert(0); >> >> @@ -1601,8 +1600,7 @@ void avd_su_constructor(void) >> >> * @param su >> >> * @param attrib_id >> >> */ >> >> -void su_nd_attribute_update(const AVD_SU *su, AVSV_AMF_SU_ATTR_ID >> >> attrib_id) >> >> -{ >> >> +void AVD_SU::send_attribute_update(AVSV_AMF_SU_ATTR_ID attrib_id) { >> >> AVD_AVND *su_node_ptr = NULL; >> >> AVSV_PARAM_INFO param; >> >> memset(((uint8_t *)¶m), '\0', sizeof(AVSV_PARAM_INFO)); >> >> @@ -1613,10 +1611,10 @@ void su_nd_attribute_update(const AVD_SU >> >> TRACE_LEAVE2("avd is not in active state"); >> >> return; >> >> } >> >> - m_AVD_GET_SU_NODE_PTR(avd_cb, su, su_node_ptr); >> >> + m_AVD_GET_SU_NODE_PTR(avd_cb, this, su_node_ptr); >> >> param.class_id = AVSV_SA_AMF_SU; >> >> param.act = AVSV_OBJ_OPR_MOD; >> >> - param.name = su->name; >> >> + param.name = name; >> >> >> >> switch (attrib_id) { >> >> case saAmfSUFailOver_ID: >> >> @@ -1624,7 +1622,7 @@ void su_nd_attribute_update(const AVD_SU >> >> uint32_t sufailover; >> >> param.attr_id = saAmfSUFailOver_ID; >> >> param.value_len = sizeof(uint32_t); >> >> - sufailover = htonl(su->saAmfSUFailover); >> >> + sufailover = htonl(saAmfSUFailover); >> >> memcpy(¶m.value[0], &sufailover, param.value_len); >> >> break; >> >> } >> >> @@ -1644,6 +1642,12 @@ void su_nd_attribute_update(const AVD_SU >> >> TRACE_LEAVE(); >> >> } >> >> >> >> +void AVD_SU::set_su_failover(bool value) { >> >> + saAmfSUFailover = value; >> >> + TRACE("%s saAmfSUFailover '%u'", name.value, saAmfSUFailover); >> >> + send_attribute_update(saAmfSUFailOver_ID); >> >> +} >> >> + >> >> /** >> >> * Delete all SUSIs assigned to the SU. >> >> * >> >> diff --git a/osaf/services/saf/amf/amfd/sutype.cc >> >> b/osaf/services/saf/amf/amfd/sutype.cc >> >> --- a/osaf/services/saf/amf/amfd/sutype.cc >> >> +++ b/osaf/services/saf/amf/amfd/sutype.cc >> >> @@ -255,10 +255,7 @@ static void sutype_ccb_apply_modify_hdlr >> >> if (old_value != sut->saAmfSutDefSUFailover) { >> >> for (AVD_SU *su = sut->list_of_su; su; su = >> >> su- >> >> >su_list_su_type_next) { >> >> if >> >> ((!su->saAmfSUFailover_configured) >> >> && (su->saAmfSUPreInstantiable)) { >> >> - su->saAmfSUFailover = >> >> static_cast<bool>(sut->saAmfSutDefSUFailover); >> >> - TRACE("Modified >> >> saAmfSutDefSUFailover to '%u' for Su'%s'", >> >> - su- >> >> >saAmfSUFailover, su->name.value); >> >> - su_nd_attribute_update(su, >> >> saAmfSUFailOver_ID); >> >> + su- >> >> >set_su_failover(static_cast<bool>(sut->saAmfSutDefSUFailover)); >> >> } >> >> } >> >> } ------------------------------------------------------------------------------ "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