ref(tests): Use common.sh on tests
This commit is contained in:
@@ -5,37 +5,26 @@ set -e
|
||||
|
||||
echo "🧪 Running basic tests ..."
|
||||
|
||||
IMAGE_NAME=${IMAGE_NAME:-cdalvaro/docker-salt-master}
|
||||
CONTAINER_NAME=salt_master
|
||||
PLATFORM=${PLATFORM:-$(docker version --format='{{.Server.Os}}/{{.Server.Arch}}')}
|
||||
BOOTUP_WAIT_SECONDS=${BOOTUP_WAIT_SECONDS:-60}
|
||||
|
||||
function cleanup {
|
||||
echo "==> Removing ${CONTAINER_NAME} ..."
|
||||
docker container rm --force "${CONTAINER_NAME}"
|
||||
}
|
||||
# https://stackoverflow.com/a/4774063/3398062
|
||||
SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
||||
|
||||
# shellcheck source=assets/build/functions.sh
|
||||
COMMON_FILE="${SCRIPT_PATH}/../lib/common.sh"
|
||||
source "${COMMON_FILE}"
|
||||
trap cleanup EXIT
|
||||
|
||||
# Run test instance
|
||||
echo "==> Starting docker-salt-master (${PLATFORM}) ..."
|
||||
docker run --rm --detach --name "${CONTAINER_NAME}" \
|
||||
--publish 4505:4505 --publish 4506:4506 \
|
||||
--platform "${PLATFORM}" \
|
||||
"${IMAGE_NAME}" || ( echo "container started ❌"; exit 1 )
|
||||
echo "container started ✅"
|
||||
|
||||
# Wait for salt-master bootup
|
||||
echo "==> Waiting ${BOOTUP_WAIT_SECONDS} seconds for the container to be ready ..."
|
||||
sleep "${BOOTUP_WAIT_SECONDS}"
|
||||
start_container_and_wait || error "container started"
|
||||
ok "container started"
|
||||
|
||||
# Check salt version
|
||||
echo "==> Checking salt version ..."
|
||||
docker exec "${CONTAINER_NAME}" salt --versions
|
||||
[[ "$(docker exec ${CONTAINER_NAME} salt --version)" == "salt $(cat VERSION)" ]] || ( echo "salt version ❌"; exit 1 )
|
||||
echo "salt version ✅"
|
||||
docker-exec salt --versions
|
||||
[[ "$(docker-exec salt --version)" == "salt $(cat VERSION)" ]] || error "salt version"
|
||||
ok "salt version"
|
||||
|
||||
# Test image calling healthcheck
|
||||
echo "==> Executing healthcheck ..."
|
||||
docker exec "${CONTAINER_NAME}" /usr/local/sbin/healthcheck | grep -i 'true' || ( echo "healthcheck ❌"; exit 1 )
|
||||
echo "healthcheck ✅"
|
||||
docker-exec /usr/local/sbin/healthcheck | grep -i 'true' || error "healthcheck"
|
||||
ok "healthcheck"
|
||||
|
||||
@@ -3,35 +3,43 @@
|
||||
set -e
|
||||
[ "${DEBUG}" == true ] && set -vx
|
||||
|
||||
echo "🧪 Running gitfs tests ..."
|
||||
|
||||
# https://stackoverflow.com/a/4774063/3398062
|
||||
SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
||||
|
||||
# shellcheck source=assets/build/functions.sh
|
||||
COMMON_FILE="${SCRIPT_PATH}/../lib/common.sh"
|
||||
source "${COMMON_FILE}"
|
||||
|
||||
echo "🧪 Running gitfs tests ..."
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
export GITFS_KEYS_DIR=${GITFS_KEYS_DIR:-tests/gitfs/data/keys/gitfs}
|
||||
|
||||
# Check gitfs keys are present
|
||||
echo "==> Checking gitfs keys are present ..."
|
||||
if [[ ! -f "${GITFS_KEYS_DIR}/gitfs_ssh" || ! -f "${GITFS_KEYS_DIR}/gitfs_ssh.pub" ]]; then
|
||||
error "gitfs keys not found at ${GITFS_KEYS_DIR}"
|
||||
fi
|
||||
ok "gitfs keys"
|
||||
|
||||
# Run test instance
|
||||
echo "==> Starting docker-salt-master (${PLATFORM}) with RSA 4096 ssh key ..."
|
||||
start_container_and_wait \
|
||||
--volume "$(pwd)/tests/gitfs/config":/home/salt/data/config:ro \
|
||||
--volume "$(pwd)/tests/gitfs/data/keys":/home/salt/data/keys \
|
||||
--volume "$(pwd)/${GITFS_KEYS_DIR%%/gitfs}":/home/salt/data/keys \
|
||||
|| error "container started"
|
||||
ok "container started"
|
||||
|
||||
# Update repositories
|
||||
echo "==> Updating gitfs repositories ..."
|
||||
docker exec "${CONTAINER_NAME}" salt-run cache.clear_git_lock gitfs type=update
|
||||
UPDATE_REPOS="$(docker exec "${CONTAINER_NAME}" salt-run fileserver.update)"
|
||||
salt-run cache.clear_git_lock gitfs type=update
|
||||
UPDATE_REPOS="$( salt-run fileserver.update )"
|
||||
echo "${UPDATE_REPOS}" | grep -qi 'true' || error "update gitfs"
|
||||
ok "update gitfs"
|
||||
|
||||
# Check pillars
|
||||
echo "==> Checking gitfs files ..."
|
||||
FILE_LIST=$(docker exec "${CONTAINER_NAME}" salt-run fileserver.file_list)
|
||||
FILE_LIST=$( salt-run fileserver.file_list )
|
||||
echo "${FILE_LIST}"
|
||||
[[ "${FILE_LIST}" == *test.txt* ]] || error "gitfs files"
|
||||
ok "gitfs files"
|
||||
|
||||
@@ -34,13 +34,40 @@ function cleanup()
|
||||
docker container rm --force "${CONTAINER_NAME}"
|
||||
}
|
||||
|
||||
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
||||
# NAME: docker-exec
|
||||
# DESCRIPTION: Execute the given command inside the container.
|
||||
#----------------------------------------------------------------------------------------------------------------------
|
||||
function docker-exec()
|
||||
{
|
||||
docker exec "${CONTAINER_NAME}" "$@"
|
||||
}
|
||||
|
||||
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
||||
# NAME: salt-run
|
||||
# DESCRIPTION: Execute the salt-run command inside the container.
|
||||
#----------------------------------------------------------------------------------------------------------------------
|
||||
function salt-run()
|
||||
{
|
||||
docker-exec salt-run "$@"
|
||||
}
|
||||
|
||||
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
||||
# NAME: salt-call
|
||||
# DESCRIPTION: Execute the salt-call command inside the container.
|
||||
#----------------------------------------------------------------------------------------------------------------------
|
||||
function salt-call()
|
||||
{
|
||||
docker-exec salt-call "$@"
|
||||
}
|
||||
|
||||
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
||||
# NAME: master_log
|
||||
# DESCRIPTION: Print salt-master log.
|
||||
#----------------------------------------------------------------------------------------------------------------------
|
||||
function master_log()
|
||||
{
|
||||
docker exec "${CONTAINER_NAME}" cat data/logs/salt/master
|
||||
docker-exec cat data/logs/salt/master
|
||||
}
|
||||
|
||||
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -5,10 +5,13 @@ set -e
|
||||
|
||||
echo "🧪 Running salt-api tests ..."
|
||||
|
||||
IMAGE_NAME=${IMAGE_NAME:-cdalvaro/docker-salt-master}
|
||||
CONTAINER_NAME=salt_master
|
||||
PLATFORM=${PLATFORM:-$(docker version --format='{{.Server.Os}}/{{.Server.Arch}}')}
|
||||
BOOTUP_WAIT_SECONDS=${BOOTUP_WAIT_SECONDS:-60}
|
||||
# https://stackoverflow.com/a/4774063/3398062
|
||||
SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
||||
|
||||
# shellcheck source=assets/build/functions.sh
|
||||
COMMON_FILE="${SCRIPT_PATH}/../lib/common.sh"
|
||||
source "${COMMON_FILE}"
|
||||
trap cleanup EXIT
|
||||
|
||||
export SALTAPI_URL="https://localhost:8000/"
|
||||
export SALTAPI_USER=salt_api
|
||||
@@ -16,13 +19,6 @@ export SALTAPI_PASS=4wesome-Pass0rd
|
||||
export SALTAPI_EAUTH=pam
|
||||
export SALTAPI_TMP_DIR=${SALTAPI_TMP_DIR:-/tmp/salt-api}
|
||||
|
||||
function cleanup {
|
||||
echo "==> Removing ${CONTAINER_NAME} ..."
|
||||
docker container rm --force "${CONTAINER_NAME}"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
# Create configuration files
|
||||
echo "==> Creating salt-api configuration file ..."
|
||||
mkdir -p "${SALTAPI_TMP_DIR}/config/"
|
||||
@@ -39,18 +35,13 @@ echo "salt-api config created ✅"
|
||||
|
||||
# Run test instance
|
||||
echo "==> Starting docker-salt-master (${PLATFORM}) with salt-api config ..."
|
||||
docker run --rm --detach --name "${CONTAINER_NAME}" \
|
||||
--publish 4505:4505 --publish 4506:4506 --publish 8000:8000 \
|
||||
start_container_and_wait \
|
||||
--publish 8000:8000 \
|
||||
--env SALT_API_SERVICE_ENABLED=true \
|
||||
--env SALT_API_USER_PASS="${SALTAPI_PASS}" \
|
||||
--platform "${PLATFORM}" \
|
||||
--volume "${SALTAPI_TMP_DIR}/config":/home/salt/data/config:ro \
|
||||
"${IMAGE_NAME}" || ( echo "container started ❌"; exit 1 )
|
||||
echo "container started ✅"
|
||||
|
||||
# Wait for salt-master bootup
|
||||
echo "==> Waiting ${BOOTUP_WAIT_SECONDS} seconds for the container to be ready ..."
|
||||
sleep "${BOOTUP_WAIT_SECONDS}"
|
||||
|| error "container started"
|
||||
ok "container started"
|
||||
|
||||
# Test salt-api authentication
|
||||
echo "==> Getting salt-api token ..."
|
||||
@@ -59,8 +50,8 @@ SALTAPI_TOKEN=$(curl -sSk "${SALTAPI_URL%/}/login" \
|
||||
-d username="${SALTAPI_USER}" \
|
||||
-d password="${SALTAPI_PASS}" \
|
||||
-d eauth="${SALTAPI_EAUTH}" | grep 'token:' | cut -d' ' -f 4)
|
||||
[ -n "${SALTAPI_TOKEN}" ] || ( echo "salt-api token ❌"; exit 1 )
|
||||
echo "salt-api token ✅"
|
||||
[ -n "${SALTAPI_TOKEN}" ] || error "salt-api token"
|
||||
ok "salt-api token"
|
||||
|
||||
# Test salt-api command
|
||||
echo "==> Testing curl command ..."
|
||||
@@ -70,15 +61,15 @@ curl -sSk "${SALTAPI_URL}" \
|
||||
-d client=runner \
|
||||
-d tgt='*' \
|
||||
-d fun=test.stream \
|
||||
| grep -i 'true' || ( echo "curl command ❌"; exit 1 )
|
||||
echo "curl command ✅"
|
||||
| grep -i 'true' || error "curl command"
|
||||
ok "curl command"
|
||||
|
||||
# Install salt-pepper
|
||||
echo "==> Installing salt-pepper ..."
|
||||
pip3 install salt-pepper || ( echo "pepper installed ❌"; exit 1 )
|
||||
echo "pepper installed ✅"
|
||||
pip3 install salt-pepper || error "pepper installed"
|
||||
ok "pepper installed"
|
||||
|
||||
# Test salt-pepper
|
||||
echo "==> Testing salt-pepper ..."
|
||||
pepper -vvv --debug-http --ignore-ssl-errors --client runner test.stream|| ( echo "pepper test.stream ❌"; exit 1 )
|
||||
echo "pepper test.stream ✅"
|
||||
pepper --client runner test.stream || error "pepper test.stream"
|
||||
ok "pepper test.stream"
|
||||
|
||||
Reference in New Issue
Block a user