55# shellcheck source=test/testlib.sh
66. " $( dirname " $0 " ) /testlib.sh"
77
8- begin_test " ghe-ssh-config returns config for multiple nodes"
8+ export CLUSTER_CONF=" $ROOTDIR /test/cluster.conf"
9+
10+ begin_test " ghe-ssh-config returns config for git-server nodes"
11+ (
12+ set -e
13+
14+ output=$( GIT_CONFIG=$CLUSTER_CONF ghe-ssh-config host1 git-server-1451687c-4be0-11ec-8684-02c387bd966b git-server-16089d52-4be0-11ec-b892-026c4c5e5bb1)
15+ # Confirm we don't have a host1 entry as this is the proxy host
16+ [ " $( echo " $output " | grep -c " ^Host host1" ) " -eq 0 ]
17+ # Confirm we have git-server-<uuid> entries
18+ echo " $output " | grep -Eq " ^Host git-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}"
19+ echo " $output " | grep -Eq " pages-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}"
20+ echo " $output " | grep -Eq " storage-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}"
21+ [ " $( echo " $output " | grep -Ec " ^Host git-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}" ) " -eq 2 ]
22+ # Confirm the git-server entries has right IP
23+ echo " $output " | grep -q " HostName 172.31.22.90"
24+ echo " $output " | grep -q " HostName 172.31.26.173"
25+ # Confirm No proxy enabled
26+ [ " $( echo " $output " | grep -c " ProxyCommand" ) " -eq 0 ]
27+ )
28+ end_test
29+
30+ begin_test " ghe-ssh-config returns config for git-server nodes with GHE_SSH_PROXY=1"
31+ (
32+ set -e
33+
34+ output=$( GIT_CONFIG=$CLUSTER_CONF GHE_SSH_PROXY=1 ghe-ssh-config host1 git-server-1451687c-4be0-11ec-8684-02c387bd966b git-server-16089d52-4be0-11ec-b892-026c4c5e5bb1)
35+ # Confirm we don't have a host1 entry as this is the proxy host
36+ [ " $( echo " $output " | grep -c " ^Host host1" ) " -eq 0 ]
37+ # Confirm we have git-server-<uuid> entries
38+ echo " $output " | grep -Eq " ^Host git-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}"
39+ echo " $output " | grep -Eq " pages-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}"
40+ echo " $output " | grep -Eq " storage-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}"
41+ [ " $( echo " $output " | grep -Ec " ^Host git-server-[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}" ) " -eq 2 ]
42+ # Confirm the git-server entries has right IP
43+ echo " $output " | grep -q " HostName 172.31.22.90"
44+ echo " $output " | grep -q " HostName 172.31.26.173"
45+ # Confirm proxy enabled
46+ [ " $( echo " $output " | grep -c " ProxyCommand" ) " -eq 2 ]
47+
48+ # Confirm ControlPath returns correct hash for admin@host1:122
49+ echo " $output " | grep -q " admin@host1 nc.openbsd"
50+ # Confirm multiplexing enabled
51+ echo " $output " | grep -q " ControlMaster=auto"
52+ # Confirm ControlPath returns correct hash for admin@host1:122
53+ echo " $output " | grep -q " .ghe-sshmux-7cb77002"
54+ )
55+ end_test
56+
57+
58+ begin_test " ghe-ssh-config returns config for non-server-uuid nodes"
959(
1060 set -e
1161
12- output=$( ghe-ssh-config host1 git-server1 git-server2 )
62+ output=$( GIT_CONFIG= $CLUSTER_CONF ghe-ssh-config host1 mysql-node1 mysql-node2 )
1363 # Confirm we don't have a host1 entry as this is the proxy host
1464 echo " $output " | grep -Evq " ^Host host1"
1565 # Confirm we have a host2 and host3 entry
16- echo " $output " | grep -Eq " ^Host git-server [12]"
17- [ " $( echo " $output " | grep -E " ^Host git-server [12]" | wc -l ) " -eq 2 ]
66+ echo " $output " | grep -Eq " ^Host mysql-node [12]"
67+ [ " $( echo " $output " | grep -c " ^Host mysql-node [12]" ) " -eq 2 ]
1868 # Confirm the host2 and host3 entries proxy though host1
1969 echo " $output " | grep -q " admin@host1 nc.openbsd"
2070 # Confirm multiplexing enabled
@@ -28,22 +78,26 @@ begin_test "ghe-ssh-config multiplexing disabled"
2878(
2979 set -e
3080
31- output=$( GHE_DISABLE_SSH_MUX=1 ghe-ssh-config host1 git-server1)
81+ output=$( GIT_CONFIG= $CLUSTER_CONF GHE_DISABLE_SSH_MUX=1 ghe-ssh-config host1 git-server1)
3282 echo " $output " | grep -vq " ControlMaster=auto"
3383
34- output=$( GHE_DISABLE_SSH_MUX=1 ghe-ssh-config host1 git-server1 git-server2)
84+ output=$( GIT_CONFIG= $CLUSTER_CONF GHE_DISABLE_SSH_MUX=1 ghe-ssh-config host1 git-server1 git-server2)
3585 echo " $output " | grep -vq " ControlMaster=auto"
86+
87+ # Confirm multiplexing disabled
88+ [ " $( echo " $output " | grep -c " ControlMaster=auto" ) " -eq 0 ]
89+ [ " $( echo " $output " | grep -c " .ghe-sshmux-7cb77002" ) " -eq 0 ]
3690)
3791end_test
3892
3993begin_test " ghe-ssh-config with extra SSH opts"
4094(
4195 set -e
4296
43- output=$( GHE_EXTRA_SSH_OPTS=" -o foo=bar" ghe-ssh-config host1 git-server1)
97+ output=$( GIT_CONFIG= $CLUSTER_CONF GHE_EXTRA_SSH_OPTS=" -o foo=bar" ghe-ssh-config host1 git-server1)
4498 echo " $output " | grep -q " foo=bar"
4599
46- output=$( GHE_EXTRA_SSH_OPTS=" -o foo=bar" ghe-ssh-config host1 git-server1 git-server2)
100+ output=$( GIT_CONFIG= $CLUSTER_CONF GHE_EXTRA_SSH_OPTS=" -o foo=bar" ghe-ssh-config host1 git-server1 git-server2)
47101 echo " $output " | grep -q " foo=bar"
48102)
49103end_test
0 commit comments