fff-layer3: Make it easier to keep the settings in testmode #9

Closed
ChristianD wants to merge 1 commits from ChristianD/firmware:keepchanges into master

View File

@ -66,15 +66,34 @@ revert_changes() {
exit 0
}
keep_changes() {
if [ -f "/tmp/configure-layer3-pid" ]; then
echo "Keep changes"
kill -9 $(cat /tmp/configure-layer3-pid)
rm /tmp/configure-layer3-pid
# we need exit because trap in test_changes() don't stop the script here and run in test_changes() after trap in the revert code
ChristianD marked this conversation as resolved Outdated

Why do we need that exit?

Why do we need that exit?

Bin mir nicht mehr ganz sicher aber ich glaube der Grund war wenn das trap in Zeile 82 die Funktion keep_changes() aufruft, müssen wir es sicher beenden da sonst test_changes() dennoch weiterläuft und am Ende alles revertet was ja in dem Fall nicht gewünscht ist.

Bin mir nicht mehr ganz sicher aber ich glaube der Grund war wenn das trap in Zeile 82 die Funktion keep_changes() aufruft, müssen wir es sicher beenden da sonst test_changes() dennoch weiterläuft und am Ende alles revertet was ja in dem Fall nicht gewünscht ist.

Hmm, also exit != return ...

In jedem Fall kann aber der Strichpunkt weg. Und man sollte hierfür einen Kommentar einfügen.

Hmm, also exit != return ... In jedem Fall kann aber der Strichpunkt weg. Und man sollte hierfür einen Kommentar einfügen.

Ja exit soll das Script auf jeden Fall sicher beenden weil wir hier dann fertig sind. Kommentar und ; entfernen mach ich gleich

Ja exit soll das Script auf jeden Fall sicher beenden weil wir hier dann fertig sind. Kommentar und ; entfernen mach ich gleich
exit
else
echo "configure-layer3 -t is not running"
fi
}
test_changes() {
echo $$ > /tmp/configure-layer3-pid
trap keep_changes SIGINT SIGTERM
reload_services
sleep 5
echo "Configuration reloaded. Changes will be reverted in 200s."
echo "Kill this script to keep changes."
sleep 200
echo "Reverting changes.."
echo "Configuration reloaded. Changes will be reverted in 200s."
echo "Kill this script or use configure-layer3 -k to keep changes."
sleep 200
echo "Reverting changes.."
# on revert we must delete the pid-file
rm /tmp/configure-layer3-pid
revert_changes
reload_services
}
@ -86,6 +105,7 @@ usage() {
echo "Options:"
echo " -c: configure. No commit, no restart!"
echo " -t: test changes. Restarts services, waits up to 200s for SIGINT"
echo " -k: keep changes from test mode"
echo " -a: apply changes"
echo " -r: revert changes"
}
@ -98,6 +118,7 @@ fi
case "$1" in
-c) configure ;;
-t) test_changes ;;
-k) keep_changes ;;
-a) apply_changes ;;
-r) revert_changes ;;
*) usage; exit 1 ;;