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