2018-03-10 12:10:15 +03:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
# ghe-ssh command tests
|
|
|
|
|
|
|
|
# Bring in testlib
|
2018-03-26 19:28:38 +03:00
|
|
|
# shellcheck source=test/testlib.sh
|
2018-03-10 12:10:15 +03:00
|
|
|
. "$(dirname "$0")/testlib.sh"
|
|
|
|
|
2021-11-23 05:30:24 +03:00
|
|
|
export CLUSTER_CONF="$ROOTDIR/test/cluster.conf"
|
|
|
|
|
|
|
|
begin_test "ghe-ssh-config returns config for git-server nodes"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
output=$(GIT_CONFIG=$CLUSTER_CONF ghe-ssh-config host1 git-server-1451687c-4be0-11ec-8684-02c387bd966b git-server-16089d52-4be0-11ec-b892-026c4c5e5bb1)
|
|
|
|
# Confirm we don't have a host1 entry as this is the proxy host
|
|
|
|
[ "$(echo "$output" | grep -c "^Host host1")" -eq 0 ]
|
|
|
|
# Confirm we have git-server-<uuid> entries
|
|
|
|
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}"
|
|
|
|
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}"
|
|
|
|
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}"
|
|
|
|
[ "$(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 ]
|
|
|
|
# Confirm the git-server entries has right IP
|
|
|
|
echo "$output" | grep -q "HostName 172.31.22.90"
|
|
|
|
echo "$output" | grep -q "HostName 172.31.26.173"
|
|
|
|
# Confirm No proxy enabled
|
|
|
|
[ "$(echo "$output" | grep -c "ProxyCommand")" -eq 0 ]
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "ghe-ssh-config returns config for git-server nodes with GHE_SSH_PROXY=1"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
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)
|
|
|
|
# Confirm we don't have a host1 entry as this is the proxy host
|
|
|
|
[ "$(echo "$output" | grep -c "^Host host1")" -eq 0 ]
|
|
|
|
# Confirm we have git-server-<uuid> entries
|
|
|
|
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}"
|
|
|
|
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}"
|
|
|
|
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}"
|
|
|
|
[ "$(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 ]
|
|
|
|
# Confirm the git-server entries has right IP
|
|
|
|
echo "$output" | grep -q "HostName 172.31.22.90"
|
|
|
|
echo "$output" | grep -q "HostName 172.31.26.173"
|
|
|
|
# Confirm proxy enabled
|
|
|
|
[ "$(echo "$output" | grep -c "ProxyCommand")" -eq 2 ]
|
|
|
|
|
|
|
|
# Confirm ControlPath returns correct hash for admin@host1:122
|
|
|
|
echo "$output" | grep -q "admin@host1 nc.openbsd"
|
|
|
|
# Confirm multiplexing enabled
|
|
|
|
echo "$output" | grep -q "ControlMaster=auto"
|
|
|
|
# Confirm ControlPath returns correct hash for admin@host1:122
|
|
|
|
echo "$output" | grep -q ".ghe-sshmux-7cb77002"
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
|
|
|
|
begin_test "ghe-ssh-config returns config for non-server-uuid nodes"
|
2018-03-10 12:10:15 +03:00
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
2021-11-23 05:30:24 +03:00
|
|
|
output=$(GIT_CONFIG=$CLUSTER_CONF ghe-ssh-config host1 mysql-node1 mysql-node2)
|
2018-03-10 12:10:15 +03:00
|
|
|
# Confirm we don't have a host1 entry as this is the proxy host
|
|
|
|
echo "$output" | grep -Evq "^Host host1"
|
|
|
|
# Confirm we have a host2 and host3 entry
|
2021-11-23 05:30:24 +03:00
|
|
|
echo "$output" | grep -Eq "^Host mysql-node[12]"
|
|
|
|
[ "$(echo "$output" | grep -c "^Host mysql-node[12]")" -eq 2 ]
|
2018-03-10 12:10:15 +03:00
|
|
|
# Confirm the host2 and host3 entries proxy though host1
|
|
|
|
echo "$output" | grep -q "admin@host1 nc.openbsd"
|
|
|
|
# Confirm multiplexing enabled
|
|
|
|
echo "$output" | grep -q "ControlMaster=auto"
|
|
|
|
# Confirm ControlPath returns correct hash for admin@host1:122
|
2021-11-17 23:05:23 +03:00
|
|
|
echo "$output" | grep -q ".ghe-sshmux-7cb77002"
|
2018-03-10 12:10:15 +03:00
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "ghe-ssh-config multiplexing disabled"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
2021-11-23 05:30:24 +03:00
|
|
|
output=$(GIT_CONFIG=$CLUSTER_CONF GHE_DISABLE_SSH_MUX=1 ghe-ssh-config host1 git-server1)
|
2018-03-10 12:10:15 +03:00
|
|
|
echo "$output" | grep -vq "ControlMaster=auto"
|
|
|
|
|
2021-11-23 05:30:24 +03:00
|
|
|
output=$(GIT_CONFIG=$CLUSTER_CONF GHE_DISABLE_SSH_MUX=1 ghe-ssh-config host1 git-server1 git-server2)
|
2018-03-10 12:10:15 +03:00
|
|
|
echo "$output" | grep -vq "ControlMaster=auto"
|
2021-11-23 05:30:24 +03:00
|
|
|
|
|
|
|
# Confirm multiplexing disabled
|
|
|
|
[ "$(echo "$output" | grep -c "ControlMaster=auto")" -eq 0 ]
|
|
|
|
[ "$(echo "$output" | grep -c ".ghe-sshmux-7cb77002")" -eq 0 ]
|
2018-03-10 12:10:15 +03:00
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|
|
|
|
begin_test "ghe-ssh-config with extra SSH opts"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
2021-11-23 05:30:24 +03:00
|
|
|
output=$(GIT_CONFIG=$CLUSTER_CONF GHE_EXTRA_SSH_OPTS="-o foo=bar" ghe-ssh-config host1 git-server1)
|
2018-03-10 12:10:15 +03:00
|
|
|
echo "$output" | grep -q "foo=bar"
|
|
|
|
|
2021-11-23 05:30:24 +03:00
|
|
|
output=$(GIT_CONFIG=$CLUSTER_CONF GHE_EXTRA_SSH_OPTS="-o foo=bar" ghe-ssh-config host1 git-server1 git-server2)
|
2018-03-10 12:10:15 +03:00
|
|
|
echo "$output" | grep -q "foo=bar"
|
|
|
|
)
|
|
|
|
end_test
|