Step 2: Move test folder to root
[integration/test.git] / tools / tools_vm / scripts / connect.sh
diff --git a/tools/tools_vm/scripts/connect.sh b/tools/tools_vm/scripts/connect.sh
new file mode 100755 (executable)
index 0000000..99c9384
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/env sh
+# Connect to ODL Karaf shell. Mostly used for testing.
+
+# Output verbose debug info (true) or not (anything else)
+VERBOSE=true
+# Port that the Karaf shell listens on
+KARAF_SHELL_PORT=8101
+
+# This could be done with public key crypto, but sshpass is easier
+if ! command -v sshpass &> /dev/null; then
+    echo "Installing sshpass. It's used connecting non-interactively"
+    if "$VERBOSE" = true; then
+        sudo yum install -y sshpass
+    else
+        sudo yum install -y sshpass &> /dev/null
+    fi
+fi
+
+echo "Will repeatedly attempt connecting to Karaf shell until it's ready"
+# Loop until exit status 0 (success) given by Karaf shell
+# Exit status 255 means Karaf shell isn't open for SSH connections yet
+# Exit status 1 means `dropAllPacketsRpc on` isn't runnable yet
+until sshpass -p karaf ssh -p $KARAF_SHELL_PORT -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PreferredAuthentications=password karaf@localhost
+do
+    echo "Karaf shell isn't ready yet, sleeping 5 seconds..."
+    sleep 5
+done