[warm boot finalizer] only wait for enabled components to reconcile (#6454)
* [warm boot finalizer] only wait for enabled components to reconcile Define the component with its associated service. Only wait for components that have associated service enabled to reconcile during warm reboot. Signed-off-by: Ying Xie <ying.xie@microsoft.com>
This commit is contained in:
parent
17c9648c9c
commit
db5b9ee834
@ -2,8 +2,15 @@
|
||||
|
||||
VERBOSE=no
|
||||
|
||||
# Check components
|
||||
COMP_LIST="orchagent neighsyncd bgp natsyncd"
|
||||
# Define components that needs to reconcile during warm
|
||||
# boot:
|
||||
# The key is the name of the service that the components belong to.
|
||||
# The value is list of component names that will reconcile.
|
||||
declare -A RECONCILE_COMPONENTS=( \
|
||||
["swss"]="orchagent neighsyncd" \
|
||||
["bgp"]="bgp" \
|
||||
["nat"]="natsyncd" \
|
||||
)
|
||||
EXP_STATE="reconciled"
|
||||
|
||||
ASSISTANT_SCRIPT="/usr/bin/neighbor_advertiser"
|
||||
@ -18,6 +25,20 @@ function debug()
|
||||
}
|
||||
|
||||
|
||||
function get_component_list()
|
||||
{
|
||||
SVC_LIST=${!RECONCILE_COMPONENTS[@]}
|
||||
COMPONENT_LIST=""
|
||||
for service in ${SVC_LIST}; do
|
||||
components=${RECONCILE_COMPONENTS[${service}]}
|
||||
status=$(sonic-db-cli CONFIG_DB HGET "FEATURE|${service}" state)
|
||||
if [[ x"${status}" == x"enabled" || x"${status}" == x"always_enabled" ]]; then
|
||||
COMPONENT_LIST="${COMPONENT_LIST} ${components}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
function check_warm_boot()
|
||||
{
|
||||
WARM_BOOT=`sonic-db-cli STATE_DB hget "WARM_RESTART_ENABLE_TABLE|system" enable`
|
||||
@ -86,7 +107,11 @@ if [[ x"${WARM_BOOT}" != x"true" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
list=${COMP_LIST}
|
||||
get_component_list
|
||||
|
||||
debug "Waiting for components: '${COMPONENT_LIST}' to reconcile ..."
|
||||
|
||||
list=${COMPONENT_LIST}
|
||||
|
||||
# Wait up to 5 minutes
|
||||
for i in `seq 60`; do
|
||||
|
Loading…
Reference in New Issue
Block a user