kolla-ansible/tests/test-venus.sh
Michal Nasiadka e1ec02eddf Replace ElasticSearch and Kibana with OpenSearch
This change replaces ElasticSearch with OpenSearch, and Kibana
with OpenSearch Dashboards. It migrates the data from ElasticSearch
to OpenSearch upon upgrade.

No TLS support is in this patch (will be a followup).

A replacement for ElasticSearch Curator will be added as a followup.

Depends-On: https://review.opendev.org/c/openstack/kolla/+/830373

Co-authored-by: Doug Szumski <doug@stackhpc.com>
Co-authored-by: Kyle Dean <kyle@stackhpc.com>
Change-Id: Iab10ce7ea5d5f21a40b1f99b28e3290b7e9ce895
2022-12-01 10:27:50 +00:00

95 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
set -o xtrace
set -o errexit
set -o pipefail
# Enable unbuffered output
export PYTHONUNBUFFERED=1
# TODO(yoctozepto): Avoid duplicating this from prometheus-opensearch
function check_opensearch {
# Verify that we see a healthy index created due to Fluentd forwarding logs
local opensearch_url=${OS_AUTH_URL%:*}:9200/_cluster/health
output_path=$1
args=(
--include
--location
--fail
)
if ! curl "${args[@]}" $opensearch_url > $output_path; then
return 1
fi
# NOTE(mgoddard): Status may be yellow because no indices have been
# created.
if ! grep -E '"status":"(green|yellow)"' $output_path >/dev/null; then
return 1
fi
}
function check_venus {
local venus_url=${OS_AUTH_URL%:*}:10010/custom_config
output_path=$1
if ! curl --include --fail $venus_url > $output_path; then
return 1
fi
if ! grep -E '"status": "SUPPORTED"' $output_path >/dev/null; then
return 1
fi
}
function test_opensearch {
echo "TESTING: OpenSearch"
output_path=$(mktemp)
attempt=1
while ! check_opensearch $output_path; do
echo "OpenSearch not accessible yet"
attempt=$((attempt+1))
if [[ $attempt -eq 12 ]]; then
echo "FAILED: OpenSearch did not become accessible. Response:"
cat $output_path
return 1
fi
sleep 10
done
echo "SUCCESS: OpenSearch"
}
function test_venus {
echo "TESTING: Venus"
output_path=$(mktemp)
attempt=1
while ! check_venus $output_path; do
echo "Venus not accessible yet"
attempt=$((attempt+1))
if [[ $attempt -eq 12 ]]; then
echo "FAILED: Venus did not become accessible. Response:"
cat $output_path
return 1
fi
sleep 10
done
echo "SUCCESS: Venus"
}
function test_venus_scenario_logged {
. /etc/kolla/admin-openrc.sh
test_opensearch
test_venus
}
function test_venus_scenario {
echo "Testing Venus and OpenSearch"
test_venus_scenario_logged > /tmp/logs/ansible/test-venus-scenario 2>&1
result=$?
if [[ $result != 0 ]]; then
echo "Testing Venus scenario failed. See ansible/test-venus-scenario for details"
else
echo "Successfully tested Venus scenario. See ansible/test-venus-scenario for details"
fi
return $result
}
test_venus_scenario