[graceful reboot] Rename the platform_reboot to the pre_reboot_hook, remove the sysfs power cycle (#18324)
**DEPENDS ON: [[graceful reboot] Add the pre_reboot_hook script execution, add the watchdog arm before the reboot](https://github.com/sonic-net/sonic-utilities/pull/3203)** #### Why I did it Add support for the `graceful reboot` instead of the `sysfs power cycle` to avoid filesystem corruption ### How I did it Rename the `platform_reboot` script to the `pre_reboot_hook`. Remove the sysfs power cycle function, from now on the Debian reboot (`/sbin/reboot`) will be executed instead of the sysfs power cycle. #### How to verify it 1. Start watching logs by using `show log -f` and `journalctl -p debug -f` 2. Execute the `reboot` command from the switch CLI 3. Check in logs that all systemd services terminated
This commit is contained in:
parent
e877ca404e
commit
1d57472eb0
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_lssn2700-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_lssn2700-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn2010-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn2010-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn2100-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn2100-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn2410-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn2410-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1,55 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
declare -r EXIT_SUCCESS="0"
|
|
||||||
declare -r EXIT_ERROR="1"
|
|
||||||
|
|
||||||
declare -r PENDING_COMPONENT_FW="/usr/bin/install-pending-fw.py"
|
|
||||||
declare -r FW_UPGRADE_SCRIPT="/usr/bin/mlnx-fw-upgrade.sh"
|
|
||||||
declare -r SYSFS_PWR_CYCLE="/var/run/hw-management/system/pwr_cycle"
|
|
||||||
|
|
||||||
FORCE_REBOOT="no"
|
|
||||||
|
|
||||||
function ParseArguments() {
|
|
||||||
while [ $# -ge 1 ]; do
|
|
||||||
case "$1" in
|
|
||||||
-f|--force)
|
|
||||||
FORCE_REBOOT="yes"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function SafePwrCycle() {
|
|
||||||
sync; sync
|
|
||||||
umount -fa > /dev/null 2>&1
|
|
||||||
echo 1 > $SYSFS_PWR_CYCLE
|
|
||||||
}
|
|
||||||
|
|
||||||
ParseArguments "$@"
|
|
||||||
|
|
||||||
# Reboot immediately if the kdump capture kernel is running
|
|
||||||
VMCORE_FILE=/proc/vmcore
|
|
||||||
if [ -s $VMCORE_FILE ]; then
|
|
||||||
sync; sync
|
|
||||||
umount -fa > /dev/null 2>&1
|
|
||||||
|
|
||||||
# Run Debian reboot because the platform reboot isn't available
|
|
||||||
/sbin/reboot
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
${FW_UPGRADE_SCRIPT} --upgrade --verbose
|
|
||||||
EXIT_CODE="$?"
|
|
||||||
if [[ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]]; then
|
|
||||||
echo "Failed to burn MLNX FW: errno=${EXIT_CODE}"
|
|
||||||
|
|
||||||
if [[ "${FORCE_REBOOT}" != "yes" ]]; then
|
|
||||||
echo "Reboot is interrupted: use -f|--force to override"
|
|
||||||
exit "${EXIT_ERROR}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
${PENDING_COMPONENT_FW}
|
|
||||||
|
|
||||||
SafePwrCycle
|
|
34
device/mellanox/x86_64-mlnx_msn2700-r0/pre_reboot_hook
Executable file
34
device/mellanox/x86_64-mlnx_msn2700-r0/pre_reboot_hook
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (c) 2020-2023 NVIDIA CORPORATION & AFFILIATES.
|
||||||
|
# Apache-2.0
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
declare -r EXIT_SUCCESS=0
|
||||||
|
declare -r EXIT_ERROR=1
|
||||||
|
|
||||||
|
declare -r PENDING_COMPONENT_FW="/usr/bin/install-pending-fw.py"
|
||||||
|
declare -r FW_UPGRADE_SCRIPT="/usr/bin/mlnx-fw-upgrade.sh"
|
||||||
|
|
||||||
|
|
||||||
|
${FW_UPGRADE_SCRIPT} --upgrade --verbose
|
||||||
|
EXIT_CODE=$?
|
||||||
|
if [[ ${EXIT_CODE} != ${EXIT_SUCCESS} ]]; then
|
||||||
|
echo "Failed to burn MLNX FW: errno=${EXIT_CODE}"
|
||||||
|
exit ${EXIT_ERROR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
${PENDING_COMPONENT_FW}
|
||||||
|
|
||||||
|
exit ${EXIT_SUCCESS}
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn2700a1-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn2700a1-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn2740-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn2740-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn3420-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn3420-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn3700-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn3700-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn3700c-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn3700c-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn3800-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn3800-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn4410-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn4410-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn4600-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn4600-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn4600c-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn4600c-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-mlnx_msn4700-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-mlnx_msn4700-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-nvidia_sn2201-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-nvidia_sn2201-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-nvidia_sn4800-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-nvidia_sn4800-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
@ -1 +0,0 @@
|
|||||||
../x86_64-mlnx_msn2700-r0/platform_reboot
|
|
1
device/mellanox/x86_64-nvidia_sn5600-r0/pre_reboot_hook
Symbolic link
1
device/mellanox/x86_64-nvidia_sn5600-r0/pre_reboot_hook
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../x86_64-mlnx_msn2700-r0/pre_reboot_hook
|
Loading…
Reference in New Issue
Block a user