a4e6e58e4e
Change-Id: I5b4a30e605bb143cf342f83f0c811c25046269ef
93 lines
2.9 KiB
Bash
93 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
set -o xtrace
|
|
set -o pipefail
|
|
|
|
# Enable unbuffered output
|
|
export PYTHONUNBUFFERED=1
|
|
|
|
function check_skyline {
|
|
skyline_endpoint=$(openstack endpoint list --interface public --service skyline -f value -c URL)
|
|
# 9998 is the default port for skyline apiserver.
|
|
# 9999 is the default port for skyline console.
|
|
skyline_login_url="${skyline_endpoint//9998/9999}/api/openstack/skyline/api/v1/login"
|
|
skyline_body="{\"region\": \"${OS_REGION_NAME}\", \"domain\": \"${OS_USER_DOMAIN_NAME}\", \"username\": \"${OS_USERNAME}\", \"password\": \"${OS_PASSWORD}\"}"
|
|
|
|
output_path=$1
|
|
if ! curl -k --include --fail -X POST $skyline_login_url -H "Accept: application/json" -H "Content-Type: application/json" -d "${skyline_body}" > $output_path; then
|
|
return 1
|
|
fi
|
|
if ! grep -E '"keystone_token":' $output_path >/dev/null; then
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
function check_skyline_sso_disabled {
|
|
skyline_endpoint=$(openstack endpoint list --interface public --service skyline -f value -c URL)
|
|
# 9998 is the default port for skyline apiserver.
|
|
# 9999 is the default port for skyline console.
|
|
skyline_sso_url="${skyline_endpoint//9998/9999}/api/openstack/skyline/api/v1/sso"
|
|
|
|
output_path=$1
|
|
if ! curl -k --include --fail $skyline_sso_url -H "Accept: application/json" -H "Content-Type: application/json" > $output_path; then
|
|
return 1
|
|
fi
|
|
if ! grep -E '"enable_sso":false' $output_path >/dev/null; then
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
function test_skyline {
|
|
echo "TESTING: Skyline"
|
|
output_path=$(mktemp)
|
|
attempt=1
|
|
while ! check_skyline $output_path; do
|
|
echo "Skyline not accessible yet"
|
|
attempt=$((attempt+1))
|
|
if [[ $attempt -eq 12 ]]; then
|
|
echo "FAILED: Skyline did not become accessible. Response:"
|
|
cat $output_path
|
|
return 1
|
|
fi
|
|
sleep 10
|
|
done
|
|
echo "SUCCESS: Skyline"
|
|
}
|
|
|
|
function test_skyline_logged {
|
|
. /etc/kolla/admin-openrc.sh
|
|
. ~/openstackclient-venv/bin/activate
|
|
test_skyline
|
|
}
|
|
|
|
function test_skyline_sso_disabled {
|
|
echo "TESTING: Skyline SSO disabled"
|
|
output_path=$(mktemp)
|
|
attempt=1
|
|
while ! check_skyline_sso_disabled $output_path; do
|
|
echo "Skyline not accessible yet"
|
|
attempt=$((attempt+1))
|
|
if [[ $attempt -eq 12 ]]; then
|
|
echo "FAILED: Skyline did not become accessible or SSO enabled. Response:"
|
|
cat $output_path
|
|
return 1
|
|
fi
|
|
sleep 10
|
|
done
|
|
echo "SUCCESS: Skyline SSO disabled"
|
|
}
|
|
|
|
function test_skyline_scenario {
|
|
echo "Testing Skyline"
|
|
test_skyline_logged > /tmp/logs/ansible/test-skyline 2>&1 && test_skyline_sso_disabled >> /tmp/logs/ansible/test-skyline 2>&1
|
|
result=$?
|
|
if [[ $result != 0 ]]; then
|
|
echo "Testing Skyline failed. See ansible/test-skyline for details"
|
|
else
|
|
echo "Successfully tested Skyline. See ansible/test-skyline for details"
|
|
fi
|
|
return $result
|
|
}
|
|
|
|
test_skyline_scenario
|