Hi Praveen

Ack (tested + regression tests run).

Thanks

-----Original Message-----
From: <[email protected]>
Date: Tuesday, 21 March 2017 at 8:52 pm
To: <[email protected]>, <[email protected]>, gary 
<[email protected]>, <[email protected]>
Cc: <[email protected]>
Subject: [PATCH 1 of 1] amfd: choose CLM unlocked spare controller for standby 
role in failover situation[#2387]

     src/amf/amfd/clm.cc       |   2 ++
     src/amf/amfd/sg_2n_fsm.cc |  12 +++++++++++-
     2 files changed, 13 insertions(+), 1 deletions(-)
    
    
    When spare controllers are configured in cluster, AMF is chosing CLM locked 
controller for
    fresh standby controller during failover situation. Currently fresh standby 
assignment
    on CLM locked controller in failover situation fails because of issue in 
SMF #1791.
    Even if SMF issue is fixed, AMF may choose a CLM locked controller for 
fresh assignment.
    This will prohibit a user to use si-swap operation for controller swap.
    
    If available, AMF must choose CLM unlocked spare controller for fresh 
standby assignments.
    
    diff --git a/src/amf/amfd/clm.cc b/src/amf/amfd/clm.cc
    --- a/src/amf/amfd/clm.cc
    +++ b/src/amf/amfd/clm.cc
    @@ -202,6 +202,7 @@ static void clm_node_exit_complete(SaClm
             }
     
        avd_node_failover(node);
    +   m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, 
AVSV_CKPT_AVD_NODE_CONFIG);
     
     done:
        TRACE_LEAVE();
    @@ -304,6 +305,7 @@ static void clm_track_cb(const SaClmClus
                                                   is needed.*/
                                                node->clm_change_start_preceded 
= false; 
                                                node->node_info.member = 
SA_FALSE;
    +                                           
m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, AVSV_CKPT_AVD_NODE_CONFIG);
                                        }
                                        else
                                        {
    diff --git a/src/amf/amfd/sg_2n_fsm.cc b/src/amf/amfd/sg_2n_fsm.cc
    --- a/src/amf/amfd/sg_2n_fsm.cc
    +++ b/src/amf/amfd/sg_2n_fsm.cc
    @@ -659,7 +659,17 @@ static AVD_SU *avd_sg_2n_su_chose_asgn(A
                for (const auto& iter : sg->list_of_su) {
                        if (iter->saAmfSuReadinessState == 
SA_AMF_READINESS_IN_SERVICE &&
                                iter->list_of_susi == AVD_SU_SI_REL_NULL) {
    -                           s_su = iter;
    +
    +                           /* Assign standby for MW SU on CLM enabled 
node. If not available
    +                              then choose based on rank(list_of_su is 
based on rank).*/ 
    +                           if (s_su == nullptr)
    +                                   s_su = iter;
    +                           if (iter->sg_of_su->sg_ncs_spec == true) {
    +                                   if (iter->su_on_node->node_info.member 
== SA_FALSE)
    +                                           continue;
    +                                   else 
    +                                           s_su = iter;
    +                           }
                                break;
                        }
                }
    



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to