feat(node): adding all in one node support
This commit is contained in:
50
resources/node/files/scripts/pre-stop.sh
Normal file
50
resources/node/files/scripts/pre-stop.sh
Normal file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run Valkey command
|
||||
vcli() {
|
||||
valkey_cli -h 127.0.0.1 -P "${VALKEY_PORT}" "$@"
|
||||
return $?
|
||||
}
|
||||
|
||||
# Run Sentinel command
|
||||
vscli() {
|
||||
valkey-cli -h "$VALKEY_SERVICE" -p "$VALKEY_SENTINEL_PORT" sentinel "$@"
|
||||
return $?
|
||||
}
|
||||
|
||||
sentinelFailOverFinished() {
|
||||
# Check if the failover is finished
|
||||
local failoverStatus
|
||||
primaryInfo=$(vscli get-primary-by-name "mymaster")
|
||||
primaryHost=${primaryInfo[0]}
|
||||
fullPrimaryHostname="${primaryHost}.${HEADLESS_SERVICE}"
|
||||
[[ "${fullPrimaryHostname}" == "${HOSTNAME}}" ]]
|
||||
}
|
||||
|
||||
if [ "${VALKEY_ROLE}" = "replication"]; then
|
||||
echo "Stopping replication"
|
||||
ROLE=$(vcli role | head 1)
|
||||
if [ "${ROLE}" = "master" ]; then
|
||||
#Pausing write connections to avoid data loss"
|
||||
vcli CLIENT PAUSE "22000"
|
||||
|
||||
echo "Failover in progress"
|
||||
vscli failover "mymaster"
|
||||
i=0
|
||||
while true; do
|
||||
sentinelFailOverFinished
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Failover finished"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
i=$((i + 1))
|
||||
if [ $i -gt 60 ]; then
|
||||
echo "Failover timed out"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
fi
|
Reference in New Issue
Block a user