[tor-commits] [chutney/master] bootstrap-network.sh: support multi-phase networks.

nickm at torproject.org nickm at torproject.org
Fri Jun 26 13:34:43 UTC 2020


commit 65a3fa7c83fe27722bcbbda69a8cc2d05d3eae65
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Jun 24 11:43:45 2020 -0400

    bootstrap-network.sh: support multi-phase networks.
    
    With this change, I now see the single-onion network passing.
---
 tools/bootstrap-network.sh | 74 +++++++++++++++++++++++++++-------------------
 1 file changed, 43 insertions(+), 31 deletions(-)

diff --git a/tools/bootstrap-network.sh b/tools/bootstrap-network.sh
index fd9f7ae..3bc272a 100755
--- a/tools/bootstrap-network.sh
+++ b/tools/bootstrap-network.sh
@@ -24,7 +24,6 @@ set -o nounset
 : "${CHUTNEY_DIAGNOSTICS:=false}"
 : "${CHUTNEY_DATA_DIR:=}"
 
-
 # Get a working chutney path
 if [ ! -d "$CHUTNEY_PATH" ] || [ ! -x "$CHUTNEY_PATH/chutney" ]; then
     # looks like a broken path: use the path to this tool instead
@@ -79,40 +78,53 @@ if ! "$CHUTNEY" supported "$CHUTNEY_NETWORK"; then
     exit 77
 fi
 
-echo "$myname: bootstrapping network: $NETWORK_FLAVOUR"
-"$CHUTNEY" configure "$CHUTNEY_NETWORK"
-
-"$CHUTNEY" start "$CHUTNEY_NETWORK"
-sleep 3
-if ! "$CHUTNEY" status "$CHUTNEY_NETWORK"; then
-    # Try to work out why the start or status command is failing
-    CHUTNEY_DEBUG=1 "$CHUTNEY" start "$CHUTNEY_NETWORK"
-    # Wait a little longer, just in case
-    sleep 6
-    CHUTNEY_DEBUG=1 "$CHUTNEY" status "$CHUTNEY_NETWORK"
+# Find out how many phases there are.  This will set CHUTNEY_CONFIG_PHASES
+# and CHUTNEY_LAUNCH_PHASES.
+if [ -z "${CHUTNEY_CONFIG_PHASES:-}" ] || [ -z "${CHUTNEY_LAUNCH_PHASES:-}" ]; then
+    eval "$("$CHUTNEY" print_phases "$CHUTNEY_NETWORK" |grep =)"
 fi
 
+$ECHO "$myname: bootstrapping network: $NETWORK_FLAVOUR"
+for config_idx in $(seq 1 "$CHUTNEY_CONFIG_PHASES"); do
+    export CHUTNEY_CONFIG_PHASE="${config_idx}"
+    "$CHUTNEY" configure "$CHUTNEY_NETWORK"
+done
+
+for launch_idx in $(seq 1 "$CHUTNEY_LAUNCH_PHASES"); do
+    export CHUTNEY_LAUNCH_PHASE="${launch_idx}"
+    $ECHO "======= phase ${launch_idx}"
+    "$CHUTNEY" start "$CHUTNEY_NETWORK"
+    sleep 3
+    if ! "$CHUTNEY" status "$CHUTNEY_NETWORK"; then
+	# Try to work out why the start or status command is failing
+	CHUTNEY_DEBUG=1 "$CHUTNEY" start "$CHUTNEY_NETWORK"
+	# Wait a little longer, just in case
+	sleep 6
+	CHUTNEY_DEBUG=1 "$CHUTNEY" status "$CHUTNEY_NETWORK"
+    fi
 
-# We allow up to CHUTNEY_START_TIME for each bootstrap phase to
-# complete.
-export CHUTNEY_START_TIME=${CHUTNEY_START_TIME:-120}
+    # We allow up to CHUTNEY_START_TIME for each bootstrap phase to
+    # complete.
+    export CHUTNEY_START_TIME=${CHUTNEY_START_TIME:-120}
 
-if [ "$CHUTNEY_START_TIME" -ge 0 ]; then
-    $ECHO "Waiting up to $CHUTNEY_START_TIME seconds for all nodes to bootstrap..."
-    # We require the network to bootstrap, before we verify
-    if ! "$CHUTNEY" wait_for_bootstrap "$CHUTNEY_NETWORK"; then
-        "$DIAGNOSTICS"
-        CHUTNEY_WARNINGS_IGNORE_EXPECTED=false \
+    if [ "$CHUTNEY_START_TIME" -ge 0 ]; then
+	$ECHO "Waiting up to $CHUTNEY_START_TIME seconds for all nodes in phase ${launch_idx} to bootstrap..."
+	# We require the network to bootstrap, before we verify
+	if ! "$CHUTNEY" wait_for_bootstrap "$CHUTNEY_NETWORK"; then
+            "$DIAGNOSTICS"
+            CHUTNEY_WARNINGS_IGNORE_EXPECTED=false \
             CHUTNEY_WARNINGS_SUMMARY=false \
             "$WARNING_COMMAND"
-        "$WARNINGS"
-        $ECHO "chutney boostrap failed (in wait_for_bootstrap)"
-        exit 1
+            "$WARNINGS"
+            $ECHO "chutney boostrap phase ${launch_idx} failed (in wait_for_bootstrap)"
+            exit 1
+	fi
+    else
+	$ECHO "Chutney network launched and running. To stop the network, use:"
+	$ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
+	"$DIAGNOSTICS"
+	"$WARNINGS"
     fi
-else
-    $ECHO "Chutney network launched and running. To stop the network, use:"
-    $ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
-    "$DIAGNOSTICS"
-    "$WARNINGS"
-    exit 0
-fi
+done
+
+exit 0





More information about the tor-commits mailing list