diff options
author | Runciter | 2024-10-24 21:36:54 +0800 |
---|---|---|
committer | Runciter | 2024-10-24 21:36:54 +0800 |
commit | 7aa78806ae0385a217164710728632d80a1db932 (patch) | |
tree | 185646f2f2e27b1ed1d226519c1ccc7fd273634f /ssh-tunneler-tests | |
download | ssh-tunneler-tests-0.1.tar.gz |
A AUTHORS
A COPYING
A ChangeLog
A INSTALL
A Makefile.am
A Makefile.in
A NEWS
A README
A aclocal.m4
A configure
A configure.ac
A install-sh
A missing
A ssh-tunneler-tests
Diffstat (limited to 'ssh-tunneler-tests')
-rwxr-xr-x | ssh-tunneler-tests | 1170 |
1 files changed, 1170 insertions, 0 deletions
diff --git a/ssh-tunneler-tests b/ssh-tunneler-tests new file mode 100755 index 0000000..d573941 --- /dev/null +++ b/ssh-tunneler-tests @@ -0,0 +1,1170 @@ +#!/bin/sh + +BOOT_WAIT_DEFAULT=25 +# set GO_PLAY_KIDS to no to have a longer sequence of tests +GO_PLAY_KIDS=no + +YESCOUNT=0 +NOCOUNT=0 + +function testcount() +{ + test $1 = $2 && echo SUCCESS || echo FAILED + test $1 = $2 && YESCOUNT=$(($YESCOUNT + 1)) || NOCOUNT=$(($NOCOUNT + 1)) +} + +function dirtyssh() +{ + ssh -q \ + -o UserKnownHostsFile=/dev/null \ + -o StrictHostKeyChecking=no \ + -p $1 \ + root@localhost \ + "$2" +} + +function herd_service_status() +{ + echo "herd status of $2 on ${VM[$1]}:" + dirtyssh ${PORT[$1]} "herd status $2" + echo +} + +function herd_test_service_status() +{ + echo "Test if the $2 service is $3 on ${VM[$1]}." + RESULT=$(herd_service_status $1 $2 | awk -- '/It is '$3'/ {print $3}') + testcount ${RESULT} $3 +} + +function test_forward() +{ + echo "From ${VM[$1]}, take the [reverse] port forward opened by +${VM[$2]} to connect to ${VM[$3]} through +sshd of ${VM[$4]}." + EXITHOST=reset + EXITHOST=$(dirtyssh \ + ${PORT[$1]} \ + "ssh -q \\ + -o UserKnownHostsFile=/dev/null \\ + -o StrictHostKeyChecking=no \\ + -p $5 \\ + root@$6 \\ + hostname") + echo "Hostname at forward exit: ${EXITHOST}, expected: ${VM[$3]}" + testcount ${EXITHOST} ${VM[$3]} +} + +function test_forwards() +{ + echo "*** REVERSE PORT FORWARD TESTS" + echo + test_forward $SSHD_WILD01 \ + $SSH_CLIENT01 \ + $SSH_CLIENT01 \ + $SSHD_SOCKS \ + ${EXTRAPORT_HOST[$SSHD_SOCKS]} \ + 10.0.2.2 + echo + test_forward $SSHD_WILD01 \ + $SSH_CLIENT02 \ + $SSHD_WILD02 \ + $SSHD_REMOTE \ + ${EXTRAPORT_HOST[$SSHD_REMOTE]} \ + 10.0.2.2 + echo + test_forward $SSHD_WILD02 \ + $SSH_CLIENT02 \ + $SSHD_WILD01 \ + $SSHD_REMOTE \ + ${ULTIMAPORT_HOST[$SSHD_REMOTE]} \ + 10.0.2.2 + echo + echo + echo "*** PORT FORWARD TESTS" + echo + test_forward $SSH_CLIENT01 \ + $SSH_CLIENT01 \ + $SSHD_WILD02 \ + $SSHD_SOCKS \ + ${ULTIMAPORT_VM[$SSH_CLIENT01]} \ + 127.0.0.1 + echo + test_forward $SSH_CLIENT02 \ + $SSH_CLIENT02 \ + $SSHD_WILD01 \ + $SSHD_SOCKS \ + ${EXTRAPORT_VM[$SSH_CLIENT02]} \ + 127.0.0.1 + echo + test_forward $SSHD_WILD02 \ + $SSH_CLIENT02 \ + $SSHD_WILD01 \ + $SSHD_SOCKS \ + ${EXTRAPORT_HOST[$SSH_CLIENT02]} \ + 10.0.2.2 + echo + echo +} + +echo "*** DEFINING VM INSTANCIATION ARRAYS" +echo + +I=0 +SSHD_WILD01=$I + +VM[$I]=sshd-wild01 +echo "* VM: ${VM[$I]}" +EXTRA_SERVICES[$I]="" +PORT[$I]=$((10022+$I)) +EXTRAPORT_HOST[$I]=$((${PORT[$I]}+1000)) +EXTRAPORT_VM[$I]=$((${PORT[$I]}+2000)) +ULTIMAPORT_HOST[$I]=$((${PORT[$I]}+3000)) +ULTIMAPORT_VM[$I]=$((${PORT[$I]}+4000)) +echo + +I=$(($I+1)) +SSHD_WILD02=$I + +VM[$I]=sshd-wild02 +echo "* VM: ${VM[$I]}" +ALLOW_TUNDEV[$I]="yes" +EXTRA_SERVICES[$I]="" +PORT[$I]=$((10022+$I)) +EXTRAPORT_HOST[$I]=$((${PORT[$I]}+1000)) +EXTRAPORT_VM[$I]=$((${PORT[$I]}+2000)) +ULTIMAPORT_HOST[$I]=$((${PORT[$I]}+3000)) +ULTIMAPORT_VM[$I]=$((${PORT[$I]}+4000)) +echo + +I=$(($I+1)) +SSHD_REMOTE=$I + +VM[$I]=sshd-remote +echo "* VM: ${VM[$I]}" +ALLOW_GATEWAY[$I]="yes" +EXTRA_SERVICES[$I]="" +PORT[$I]=$((10022+$I)) +EXTRAPORT_HOST[$I]=$((${PORT[$I]}+1000)) +EXTRAPORT_VM[$I]=$((${PORT[$I]}+2000)) +ULTIMAPORT_HOST[$I]=$((${PORT[$I]}+3000)) +ULTIMAPORT_VM[$I]=$((${PORT[$I]}+4000)) +EXTRA_SERVICES[$I]="" +echo + +I=$(($I+1)) +SSHD_SOCKS=$I + +VM[$I]=sshd-socks +echo "* VM: ${VM[$I]}" +ALLOW_GATEWAY[$I]="yes" +BOOT_WAIT[$I]=25 +EXTRA_SERVICES[$I]="" +PORT[$I]=$((10022+$I)) +EXTRAPORT_HOST[$I]=$((${PORT[$I]}+1000)) +EXTRAPORT_VM[$I]=$((${PORT[$I]}+2000)) +ULTIMAPORT_HOST[$I]=$((${PORT[$I]}+3000)) +ULTIMAPORT_VM[$I]=$((${PORT[$I]}+4000)) +echo + +I=$(($I+1)) +SSH_CLIENT01=$I + +VM[$I]=ssh-client01 +echo "* VM: ${VM[$I]}" +PORT[$I]=$((10022+$I)) +EXTRAPORT_HOST[$I]=$((${PORT[$I]}+1000)) +EXTRAPORT_VM[$I]=$((${PORT[$I]}+2000)) +ULTIMAPORT_HOST[$I]=$((${PORT[$I]}+3000)) +ULTIMAPORT_VM[$I]=$((${PORT[$I]}+4000)) +EXTRA_SERVICES[$I]=" + (service elogind-service-type) + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_SOCKS]}) + (forwards + (list (dynamic-forward-configuration))))) + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_SOCKS]}) + (forwards + (list (reverse-port-forward-configuration + (entry-port ${EXTRAPORT_VM[$SSHD_SOCKS]})))))) + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_SOCKS]}) + (socks-proxy-config + (socks-proxy-configuration + (use-proxy? #t) + (extend? #f))) + (forwards + (list (port-forward-configuration + (entry-port ${ULTIMAPORT_VM[$I]}) + (forward-host \"10.0.2.2\") + (exit-port ${PORT[$SSHD_WILD02]})))))) + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_WILD02]}) + (forwards + (list (tunnel-forward-configuration)))))" +echo + +I=$(($I+1)) +SSH_CLIENT02=$I + +VM[$I]=ssh-client02 +echo "* VM: ${VM[$I]}" +PORT[$I]=$((10022+$I)) +EXTRAPORT_HOST[$I]=$((${PORT[$I]}+1000)) +EXTRAPORT_VM[$I]=$((${PORT[$I]}+2000)) +ULTIMAPORT_HOST[$I]=$((${PORT[$I]}+3000)) +ULTIMAPORT_VM[$I]=$((${PORT[$I]}+4000)) +EXTRA_SERVICES[$I]=" + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (socks-proxy-config + (socks-proxy-configuration + (use-proxy? #t) + (extend? #f))) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_REMOTE]}) + (forwards + (list (reverse-port-forward-configuration + (entry-port ${EXTRAPORT_VM[$SSHD_REMOTE]}) + (forward-host \"10.0.2.2\") + (exit-port ${PORT[$SSHD_WILD02]})))))) + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (socks-proxy-config + (socks-proxy-configuration + (use-proxy? #t) + (dynamic-forward + (ssh-connection-configuration + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_SOCKS]}) + (forwards + (list (dynamic-forward-configuration))))))) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_REMOTE]}) + (forwards + (list (reverse-port-forward-configuration + (entry-port ${ULTIMAPORT_VM[$SSHD_REMOTE]}) + (forward-host \"10.0.2.2\") + (exit-port ${PORT[$SSHD_WILD01]})))))) + (service persistent-ssh-service-type + (ssh-connection-configuration + (%auto-start? #t) + (sshd-host \"10.0.2.2\") + (sshd-port ${PORT[$SSHD_SOCKS]}) + (gateway-ports? #t) + (forwards + (list (port-forward-configuration + (entry-port ${EXTRAPORT_VM[$I]}) + (forward-host \"10.0.2.2\") + (exit-port ${PORT[$SSHD_WILD01]}))))))" +echo + +for I in ${!PORT[@]} +do + EXTRACONTENT[$I]="" + if [ -v ALLOW_TUNDEV[$I] ] + then + EXTRACONTENT[$I]=" + (extra-content \" +PermitTunnel=point-to-point\")" + fi + GATEWAY[$I]="" + if [ -v ALLOW_GATEWAY[$I] ] + then + GATEWAY[$I]=" + (gateway-ports? #t)" + fi + WAIT[$I]=$BOOT_WAIT_DEFAULT + if [ -v BOOT_WAIT[$I] ] + then + WAIT[$I]=${BOOT_WAIT[$I]} + fi +done +echo + +echo "*** CONCATENATING SYSTEM CONFIGURATIONS" +echo +for I in ${!PORT[@]} +do + echo "* VM: ${VM[$I]}" + echo "(use-modules (guix records) + (gnu) + (whispers services ssh-tunneler)) +(use-service-modules networking ssh desktop) +(use-package-modules ssh) + +(operating-system + (host-name \"${VM[$I]}\") + (timezone \"Asia/Shanghai\") + (locale \"en_US.utf8\") + + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (targets '(\"/dev/sda\")))) + + (file-systems (cons (file-system + (device (file-system-label \"root\")) + (mount-point \"/\") + (type \"ext4\")) + %base-file-systems)) + + (users %base-user-accounts) + + (packages %base-packages) + + (services + (append + (list (service dhcp-client-service-type) + (service openssh-service-type + (openssh-configuration + (permit-root-login #t) + (allow-empty-passwords? #t) + (openssh openssh-sans-x) + (port-number 22)${GATEWAY[$I]}${EXTRACONTENT[$I]}))${EXTRA_SERVICES[$I]}) + %base-services)))" > /tmp/${VM[$I]}.scm + echo +done +echo + +echo "*** INSTANCIATING VMs" +echo +for I in ${!PORT[@]} +do + echo "* VM: ${VM[$I]}" + VMRUN[$I]=$(guix system vm /tmp/${VM[$I]}.scm) + echo +done +echo + +echo "*** SILENTLY BOOTING VMs..." +echo +for I in ${!PORT[@]} +do + NICSTANCE=-"nic user,model=virtio-net-pci,hostfwd=tcp::${PORT[$I]}-:22,hostfwd=tcp::${EXTRAPORT_HOST[$I]}-:${EXTRAPORT_VM[$I]},hostfwd=tcp::${ULTIMAPORT_HOST[$I]}-:${ULTIMAPORT_VM[$I]}" + if [ $I = $SSHD_REMOTE ] + then + for CURPORT in $VPNPORTS + do + NICSTANCE=${NICSTANCE},hostfwd=tcp::${CURPORT}-:${CURPORT} + done + fi + echo "* VM: ${VM[$I]}" + ${VMRUN[$I]} \ + $NICSTANCE \ + -display none & + sleep ${WAIT[$I]} + echo +done +echo + +echo "*** REPORTING SHEPHERD STATUS" +echo +for I in ${!PORT[@]} +do + echo "* VM: ${VM[$I]}" + dirtyssh ${PORT[$I]} 'herd status' + echo +done +echo + +test_forwards + +function full_tests() +{ + +echo "*** RESURRECTION TESTS ON STOPPED AND DISABLED NON-WHISPERS CONNECTIONS" +echo +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_SOCKS]}:127.0.0.1:22 \ + ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_tunnel@any:any +do + echo "Stop and Disable the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop $CONNECTION" + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd disable $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "disabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 \ + ssh-forwards_port@${EXTRAPORT_VM[$SSH_CLIENT02]}:10.0.2.2:${PORT[$SSHD_WILD01]} +do + echo "Stop and Disable the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop $CONNECTION" + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd disable $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "disabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +test_forwards + +echo "*** RESURRECTION TESTS ON STOPPED AND ENABLED NON-WHISPERS CONNECTIONS" +echo +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_SOCKS]}:127.0.0.1:22 \ + ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_tunnel@any:any +do + echo "Stop the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 \ + ssh-forwards_port@${EXTRAPORT_VM[$SSH_CLIENT02]}:10.0.2.2:${PORT[$SSHD_WILD01]} +do + echo "Stop the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +test_forwards + +echo "*** RESURRECTION TESTS ON STARTED AND ENABLED NON-WHISPERS CONNECTIONS" +echo +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo +for CONNECTION in ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_SOCKS]}:127.0.0.1:22 \ + ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_tunnel@any:any \ + ssh-forwards_dynamic@8971 +do + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo +for CONNECTION in ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 \ + ssh-forwards_port@${EXTRAPORT_VM[$SSH_CLIENT02]}:10.0.2.2:${PORT[$SSHD_WILD01]} \ + ssh-forwards_dynamic@8971 +do + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +test_forwards + +echo "*** RESURRECTION TESTS ON NON-WHISPERS CONNECTIONS +*** WHOSE SOCKS PROXIES HAVE BEEN STOPPED AND DISABLED" +echo +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo +for CONNECTION in ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 +do + echo "Stop and Disable the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop ssh-forwards_dynamic@8971" + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd disable ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "disabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo +for CONNECTION in ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 +do + echo "Stop and Disable the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop ssh-forwards_dynamic@8971" + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd disable ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "disabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd start ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971" +test_forwards + +echo "*** RESURRECTION TESTS ON NON-WHISPERS CONNECTIONS +*** WHOSE SOCKS PROXIES ARE STOPPED AND ENABLED" +echo +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo +for CONNECTION in ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 +do + echo "Stop the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo +for CONNECTION in ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 +do + echo "Stop the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd start ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971" +test_forwards + +echo "*** FORCE-RESURRECTION TESTS ON STOPPED AND DISABLED NON-WHISPERS CONNECTIONS" +echo +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_SOCKS]}:127.0.0.1:22 \ + ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_tunnel@any:any +do + echo "Stop and Disable the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop $CONNECTION" + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd disable $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "disabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 \ + ssh-forwards_port@${EXTRAPORT_VM[$SSH_CLIENT02]}:10.0.2.2:${PORT[$SSHD_WILD01]} +do + echo "Stop and Disable the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop $CONNECTION" + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd disable $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "disabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ +test_forwards + +echo "*** FORCE-RESURRECTION TESTS ON STOPPED AND ENABLED NON-WHISPERS CONNECTIONS" +echo +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_SOCKS]}:127.0.0.1:22 \ + ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_tunnel@any:any +do + echo "Stop the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 \ + ssh-forwards_port@${EXTRAPORT_VM[$SSH_CLIENT02]}:10.0.2.2:${PORT[$SSHD_WILD01]} +do + echo "Stop the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd start ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971" +test_forwards + +echo "*** FORCE-RESURRECTION TESTS ON STARTED AND ENABLED NON-WHISPERS CONNECTIONS" +echo +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_SOCKS]}:127.0.0.1:22 \ + ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_tunnel@any:any +do + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo "NOTE: test the socks proxy first otherwise the connections which +require the socks proxy will be stopped not be restarted automatically +by the Shepherd." +echo +for CONNECTION in ssh-forwards_dynamic@8971 \ + ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 \ + ssh-forwards_port@${EXTRAPORT_VM[$SSH_CLIENT02]}:10.0.2.2:${PORT[$SSHD_WILD01]} +do + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd start ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971" +test_forwards +echo "*** FORCE-RESURRECTION TESTS ON NON-WHISPERS CONNECTIONS +*** WHOSE SOCKS PROXIES HAVE BEEN STOPPED AND DISABLED" +echo +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo +for CONNECTION in ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 +do + echo "Stop and Disable the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop ssh-forwards_dynamic@8971" + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd disable ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "disabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo +for CONNECTION in ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 +do + echo "Stop and Disable the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop ssh-forwards_dynamic@8971" + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd disable ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "disabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done +echo + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd start ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971" +test_forwards + +echo "*** FORCE-RESURRECTION TESTS ON NON-WHISPERS CONNECTIONS +*** WHOSE SOCKS PROXIES ARE STOPPED AND ENABLED" +echo +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT01]}." +echo +for CONNECTION in ssh-forwards_port@${ULTIMAPORT_VM[$SSH_CLIENT01]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 +do + echo "Stop the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd stop ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT01]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT01 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT01 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT01 $CONNECTION running + echo +done +echo "* Tests on the force-resurrect actions of the persistent ssh connections of +${VM[$SSH_CLIENT02]}." +echo +for CONNECTION in ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971 \ + ssh-forwards_reverse-port@${ULTIMAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD01]}_proxy-port_8971 +do + echo "Stop the socks proxy of the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd stop ssh-forwards_dynamic@8971" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 stopped + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION stopped + echo + echo "Force-resurrect the $CONNECTION service." + dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd force-resurrect $CONNECTION" + herd_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 + echo + herd_service_status $SSH_CLIENT02 $CONNECTION + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 "enabled." + echo + herd_test_service_status $SSH_CLIENT02 ssh-forwards_dynamic@8971 running + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION "enabled." + echo + herd_test_service_status $SSH_CLIENT02 $CONNECTION running + echo +done + +echo "NOTE: have to restart one service because it does not restart +automatically when its inferior socks proxy is restarted" +dirtyssh \ + ${PORT[$SSH_CLIENT02]} \ + "herd start ssh-forwards_reverse-port@${EXTRAPORT_VM[$SSHD_REMOTE]}:10.0.2.2:${PORT[$SSHD_WILD02]}_proxy-port_8971{}" +test_forwards + +} + +if [[ foo$GO_PLAY_KIDS == foono ]] +then + full_tests +fi + +echo "*** TESTS SUMMARRY" +echo +echo Successes: $YESCOUNT +echo Failures: $NOCOUNT +echo +echo + +echo "You can ssh into the VMs from another terminal of this host" +for I in ${!PORT[@]} +do + echo "* VM: ${VM[$I]}, port: ${PORT[$I]}" +done +echo +read -n 1 -r -s -p "When done playing, press any key to halt the VMs..." +echo +echo + +echo "*** HALTING VMs" +echo +for I in ${!PORT[@]} +do + echo "* VM: ${VM[$I]}" + dirtyssh ${PORT[$I]} halt + echo +done |