mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-15 17:11:30 +00:00
feat: webserver proxy (#116)
This commit is contained in:
@@ -77,7 +77,8 @@ start_node_services() {
|
||||
|
||||
# Start all services - each node's config binds to its specific IP
|
||||
# UI is not needed for E2E tests and fails in pseudo multi-node (wrong cert path)
|
||||
UI=false ./scripts/start-dev.sh "$data_dir"
|
||||
# Services run as root (admin init/join require sudo)
|
||||
sudo UI=false ./scripts/start-dev.sh "$data_dir"
|
||||
|
||||
echo "Node$node_num services started"
|
||||
}
|
||||
@@ -91,7 +92,8 @@ stop_node_services() {
|
||||
echo "Stopping services for node$node_num..."
|
||||
|
||||
# Stop using PID files in the node's log directory
|
||||
./scripts/stop-dev.sh "$data_dir"
|
||||
# Services run as root (admin init/join require sudo), so stop must also be root
|
||||
sudo ./scripts/stop-dev.sh "$data_dir"
|
||||
|
||||
echo "Node$node_num services stopped"
|
||||
}
|
||||
@@ -668,9 +670,9 @@ force_cleanup_all_nodes() {
|
||||
if [ -f "$pidfile" ]; then
|
||||
local pid
|
||||
pid=$(cat "$pidfile" 2>/dev/null || true)
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
if [ -n "$pid" ] && sudo kill -0 "$pid" 2>/dev/null; then
|
||||
echo " Node$i: killing $svc (PID $pid)..."
|
||||
kill -TERM "$pid" 2>/dev/null || true
|
||||
sudo kill -TERM "$pid" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -691,17 +693,17 @@ force_cleanup_all_nodes() {
|
||||
if [ -f "$pidfile" ]; then
|
||||
local pid
|
||||
pid=$(cat "$pidfile" 2>/dev/null || true)
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
if [ -n "$pid" ] && sudo kill -0 "$pid" 2>/dev/null; then
|
||||
echo " Node$i: force-killing $svc (PID $pid)..."
|
||||
kill -9 "$pid" 2>/dev/null || true
|
||||
sudo kill -9 "$pid" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
# Kill any remaining QEMU processes
|
||||
pkill -9 -x qemu-system-x86_64 2>/dev/null || true
|
||||
# Kill any remaining QEMU processes (root-owned since services run as root)
|
||||
sudo pkill -9 -x qemu-system-x86_64 2>/dev/null || true
|
||||
|
||||
sleep 1
|
||||
|
||||
@@ -716,7 +718,7 @@ force_cleanup_all_nodes() {
|
||||
if [ -n "$lock_files" ]; then
|
||||
echo " Node$i: removing stale badger LOCK files..."
|
||||
echo "$lock_files" | while read -r f; do
|
||||
rm -f "$f"
|
||||
sudo rm -f "$f"
|
||||
echo " removed $f"
|
||||
done
|
||||
fi
|
||||
@@ -762,7 +764,7 @@ init_leader_node() {
|
||||
|
||||
# Start init in background — formation server will wait for joins
|
||||
# shellcheck disable=SC2086
|
||||
./bin/spx admin init \
|
||||
sudo ./bin/spx admin init \
|
||||
--node node1 \
|
||||
--bind "${NODE1_IP}" \
|
||||
--cluster-bind "${NODE1_IP}" \
|
||||
@@ -803,7 +805,7 @@ join_follower_node() {
|
||||
rm -rf "$data_dir/"
|
||||
|
||||
# Route to node1 (seed node) - other nodes discovered via NATS gossip
|
||||
./bin/spx admin join \
|
||||
sudo ./bin/spx admin join \
|
||||
--node "node$node_num" \
|
||||
--bind "$node_ip" \
|
||||
--cluster-bind "$node_ip" \
|
||||
|
||||
@@ -25,15 +25,15 @@ cleanup() {
|
||||
dump_all_node_logs
|
||||
fi
|
||||
|
||||
# Kill any lingering formation background processes
|
||||
[ -n "$LEADER_INIT_PID" ] && kill "$LEADER_INIT_PID" 2>/dev/null || true
|
||||
[ -n "$JOIN2_PID" ] && kill "$JOIN2_PID" 2>/dev/null || true
|
||||
[ -n "$JOIN3_PID" ] && kill "$JOIN3_PID" 2>/dev/null || true
|
||||
# Kill any lingering formation background processes (root-owned via sudo)
|
||||
[ -n "$LEADER_INIT_PID" ] && sudo kill "$LEADER_INIT_PID" 2>/dev/null || true
|
||||
[ -n "$JOIN2_PID" ] && sudo kill "$JOIN2_PID" 2>/dev/null || true
|
||||
[ -n "$JOIN3_PID" ] && sudo kill "$JOIN3_PID" 2>/dev/null || true
|
||||
|
||||
# Try coordinated shutdown first (only if NATS is likely still up)
|
||||
if [ "$CLUSTER_SERVICES_STARTED" = "true" ]; then
|
||||
echo "Attempting coordinated cluster shutdown..."
|
||||
if timeout 60 ./bin/spx admin cluster shutdown --force --timeout 30s --config "$HOME/node1/config/spinifex.toml" 2>/dev/null; then
|
||||
if timeout 60 sudo ./bin/spx admin cluster shutdown --force --timeout 30s --config "$HOME/node1/config/spinifex.toml" 2>/dev/null; then
|
||||
echo "Coordinated shutdown succeeded"
|
||||
else
|
||||
echo "Coordinated shutdown failed, falling back to per-node stop..."
|
||||
|
||||
Reference in New Issue
Block a user