b6acac4e6a
LED_PROC_INIT_SOC variable was incorrectly referenced as LED_SOC_INIT_SOC. Introduced in #5483 Rather than fixing the typo, I decided to simplify the script, removing the need for the conditional altogether by moving the bcmcmd call inside the conditional which checks for the presence of LED_SOC_INIT_SOC.
39 lines
1.0 KiB
Bash
Executable File
39 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
PLATFORM_DIR=/usr/share/sonic/platform
|
|
SYNCD_SOCKET_FILE=/var/run/sswsyncd/sswsyncd.socket
|
|
LED_PROC_INIT_SOC=${PLATFORM_DIR}/led_proc_init.soc
|
|
|
|
# Function: wait until syncd has created the socket for bcmcmd to connect to
|
|
wait_syncd() {
|
|
while true; do
|
|
if [ -e ${SYNCD_SOCKET_FILE} ]; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# wait until bcm sdk is ready to get a request
|
|
counter=0
|
|
while true; do
|
|
/usr/bin/bcmcmd -t 1 "show unit" | grep BCM >/dev/null 2>&1
|
|
rv=$?
|
|
if [ $rv -eq 0 ]; then
|
|
break
|
|
fi
|
|
counter=$((counter+1))
|
|
if [ $counter -ge 60 ]; then
|
|
echo "syncd is not ready to take commands after $counter re-tries; Exiting!"
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
}
|
|
|
|
# If this platform has an initialization file for the Broadcom LED microprocessor, load it
|
|
if [[ -r "$LED_PROC_INIT_SOC" && ! -f /var/warmboot/warm-starting ]]; then
|
|
wait_syncd
|
|
/usr/bin/bcmcmd -t 60 "rcload $LED_PROC_INIT_SOC"
|
|
fi
|
|
|