Skip to content

Commit

Permalink
feat(ns-plug): infinite connection loop
Browse files Browse the repository at this point in the history
Make sure that ns-plug always try to connect to the controller.
This fix will allow automatica re-connection in case
of disaster recovery of the remote controller.
  • Loading branch information
gsanchietti committed Dec 18, 2024
1 parent d937073 commit b9a581c
Showing 1 changed file with 3 additions and 9 deletions.
12 changes: 3 additions & 9 deletions packages/ns-plug/files/ns-plug
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,8 @@ fi

# Register the server
valid=0
max_attempts=30 # 60 seconds
watchdog=0
response=""
until [ "${valid}" -eq 1 ] || [ "${watchdog}" -ge "${max_attempts}" ]
until [ "${valid}" -eq 1 ]
do
response=$(curl ${curl_opts} -H "Content-Type: application/json" -H "RegistrationToken: ${token}" ${server}/api/units/register -X POST --data '{"unit_id": "'${unit_id}'", "username": "'${user}'", "password": "'${secret}'", "unit_name": "'${unit_name}'", "version": "'${VERSION_ID}'", "subscription_type": "'${subscription_type}'", "system_id": "'${system_id}'"}')
http_code=$(echo ${response} | jq -r '.code // empty')
Expand All @@ -82,15 +80,11 @@ do
elif [ "${http_code}" == "200" ]; then
valid=1
else
sleep 2 # wait for controller to be reacheable
watchdog=$(( watchdog + 1 ))
logger -t ns-plug "Connection failed. Waiting for the controller ..."
sleep 5 # wait for controller to be reacheable
fi
done

if [ "${watchdog}" -ge "${max_attempts}" ]; then
exit 5
fi

# Save the new password after successfull registration
uci set rpcd.controller.password=${passwd}
uci commit rpcd
Expand Down

0 comments on commit b9a581c

Please sign in to comment.