ack, code review only. One coment/question e.g. bool AVD_SU::is_in_service(void) or bool AVD_SU::is_in_service() , I would prefer to remove void for empty parameters when using c++. /Regards HansN
-----Original Message----- From: Hans Feldt [mailto:osafde...@gmail.com] Sent: den 30 april 2014 07:01 To: nagendr...@oracle.com; praveen.malv...@oracle.com; Hans Nordebäck Cc: opensaf-devel@lists.sourceforge.net Subject: [PATCH 7 of 7] amfd: add and use SU is_in_service [#713] osaf/services/saf/amf/amfd/include/su.h | 9 +-------- osaf/services/saf/amf/amfd/node.cc | 4 +--- osaf/services/saf/amf/amfd/sgproc.cc | 16 ++++------------ osaf/services/saf/amf/amfd/su.cc | 12 +++++++++++- 4 files changed, 17 insertions(+), 24 deletions(-) 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 @@ -116,6 +116,7 @@ class AVD_SU { void set_term_state(bool state); void set_su_switch(SaToggleState state); struct avd_avnd_tag *get_node_ptr(void); + bool is_in_service(void); private: void send_attribute_update(AVSV_AMF_SU_ATTR_ID attrib_id); @@ -133,14 +134,6 @@ typedef struct { } AVD_SUTCOMP_TYPE; -#define m_AVD_APP_SU_IS_INSVC(i_su,su_node_ptr) \ -((su_node_ptr->saAmfNodeAdminState == SA_AMF_ADMIN_UNLOCKED) && \ -(su_node_ptr->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED) && \ -(i_su->sg_of_su->saAmfSGAdminState == SA_AMF_ADMIN_UNLOCKED) &&\ -(i_su->saAmfSUAdminState == SA_AMF_ADMIN_UNLOCKED) &&\ -(i_su->saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED)\ -) - /** * Get SUs from IMM and create internal objects * diff --git a/osaf/services/saf/amf/amfd/node.cc b/osaf/services/saf/amf/amfd/node.cc --- a/osaf/services/saf/amf/amfd/node.cc +++ b/osaf/services/saf/amf/amfd/node.cc @@ -877,9 +877,7 @@ void avd_node_admin_lock_unlock_shutdown su = node->list_of_su; while (su != NULL) { - su_node_ptr = su->get_node_ptr(); - - if (m_AVD_APP_SU_IS_INSVC(su, su_node_ptr) && + if ((su->is_in_service() == true) && ((su->saAmfSUPreInstantiable) ? (su->saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATED):true)) { /* Pres state check is to prevent assignment to SU in case node is instantiating diff --git a/osaf/services/saf/amf/amfd/sgproc.cc b/osaf/services/saf/amf/amfd/sgproc.cc --- a/osaf/services/saf/amf/amfd/sgproc.cc +++ b/osaf/services/saf/amf/amfd/sgproc.cc @@ -406,7 +406,6 @@ void avd_su_oper_state_evh(AVD_CL_CB *cb AVD_AVND *node; AVD_SU *su, *i_su; SaAmfReadinessStateT old_state; - AVD_AVND *su_node_ptr = NULL; bool node_reboot_req = true; TRACE_ENTER2("id:%u, node:%x, '%s' state:%u", n2d_msg->msg_info.n2d_opr_state.msg_id, @@ -444,8 +443,6 @@ void avd_su_oper_state_evh(AVD_CL_CB *cb goto done; } - su_node_ptr = su->get_node_ptr(); - if (n2d_msg->msg_info.n2d_opr_state.rec_rcvr.saf_amf == SA_AMF_NODE_SWITCHOVER) { saflog(LOG_NOTICE, amfSvcUsrName, "Node Switch-Over requested by '%s'", node->name.value); @@ -684,7 +681,7 @@ void avd_su_oper_state_evh(AVD_CL_CB *cb goto done; } - if (m_AVD_APP_SU_IS_INSVC(su, su_node_ptr)) { + if (su->is_in_service() == true) { su->set_readiness_state(SA_AMF_READINESS_IN_SERVICE); if ((cb->init_state == AVD_APP_STATE) && (old_state == SA_AMF_READINESS_OUT_OF_SERVICE)) { /* An application SU has become in service call SG FSM */ @@ -1269,7 +1266,6 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb, void avd_sg_app_node_su_inst_func(AVD_CL_CB *cb, AVD_AVND *avnd) { AVD_SU *i_su; - AVD_AVND *su_node_ptr = NULL; TRACE_ENTER2("'%s'", avnd->name.value); @@ -1299,9 +1295,8 @@ void avd_sg_app_node_su_inst_func(AVD_CL } else { i_su->set_oper_state(SA_AMF_OPERATIONAL_ENABLED); - su_node_ptr = i_su->get_node_ptr(); - if (m_AVD_APP_SU_IS_INSVC(i_su, su_node_ptr)) { + if (i_su->is_in_service() == true) { i_su->set_readiness_state(SA_AMF_READINESS_IN_SERVICE); } } @@ -1381,9 +1376,8 @@ uint32_t avd_sg_app_su_inst_func(AVD_CL_ (su_node_ptr->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED) && (i_su->saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED) && (i_su->term_state == false)) { - su_node_ptr = i_su->get_node_ptr(); - if (m_AVD_APP_SU_IS_INSVC(i_su, su_node_ptr)) { + if (i_su->is_in_service() == true) { i_su->set_readiness_state(SA_AMF_READINESS_IN_SERVICE); i_su->sg_of_su->su_insvc(cb, i_su); @@ -1454,7 +1448,6 @@ uint32_t avd_sg_app_sg_admin_func(AVD_CL { uint32_t rc = NCSCC_RC_FAILURE; AVD_SU *i_su; - AVD_AVND *i_su_node_ptr = NULL; TRACE_ENTER2("'%s'", sg->name.value); @@ -1475,9 +1468,8 @@ uint32_t avd_sg_app_sg_admin_func(AVD_CL * state. */ for (i_su = sg->list_of_su; i_su != NULL; i_su = i_su->sg_list_su_next) { - i_su_node_ptr = i_su->get_node_ptr(); // TODO(nagu) remove saAmfSUPreInstantiable check and move into m_AVD_APP_SU_IS_INSVC - if (m_AVD_APP_SU_IS_INSVC(i_su, i_su_node_ptr) && + if ((i_su->is_in_service() == true) && ((i_su->saAmfSUPreInstantiable) ? (i_su->saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATED):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 @@ -936,7 +936,7 @@ static void su_admin_op_cb(SaImmOiHandle switch (op_id) { case SA_AMF_ADMIN_UNLOCK: su->set_admin_state(SA_AMF_ADMIN_UNLOCKED); - if (((m_AVD_APP_SU_IS_INSVC(su, node)) || (su->sg_of_su->sg_ncs_spec == true)) && + if (((su->is_in_service() == true) || (su->sg_of_su->sg_ncs_spec == +true)) && ((su->saAmfSUPreInstantiable) ? (su->saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATED):true)) { /* Pres state check is to prevent assignment to SU in case SU is instantiating in @@ -1716,3 +1716,13 @@ struct avd_avnd_tag *AVD_SU::get_node_pt else return su_on_node; } + +bool AVD_SU::is_in_service(void) { + struct avd_avnd_tag *node = get_node_ptr(); + + return (node->saAmfNodeAdminState == SA_AMF_ADMIN_UNLOCKED) && + (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED) && + (sg_of_su->saAmfSGAdminState == SA_AMF_ADMIN_UNLOCKED) && + (saAmfSUAdminState == SA_AMF_ADMIN_UNLOCKED) && + (saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED); } ------------------------------------------------------------------------------ "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