Use stable constraint and update fedora mirror

Stable branches till stable/rocky is using python
version <py3.6. Tempest test those branch in venv
but Tempest tox use the master upper-constraint[1]
which block installation due to dependencies
require >=py3.6. For exmaple, oslo.concurrency 4.0.0
is not compatible for <py3.6.

As we pin Tempest for EM stable brach, we should be
able to use stable constraint for Tempest installation
as well as while running during run-tempest playbook.

tox.ini is hard coded to use master constraint[1] which force
run-tempest to recreate the tox env and use the master constraint.
Fix for that- https://review.opendev.org/#/c/705870/

[1] bc9fe8eca8/tox.ini (L14)

Update pre-upgrade tests set to alias with ocata grenade tests

Also update Fedora image ref for test jobs.
Fedora-Cloud-Base-29-1.2.x86_64 is removed from openstack local mirro.
Update to use Fedora-Cloud-Base-30-1.2.x86_64 for test jobs.

Change-Id: I12e52dcbe306fda7d3b8f28d3b3a25c4c741884f
This commit is contained in:
ricolin 2020-02-14 12:11:30 +08:00
parent e4db219a2a
commit 5352760deb
5 changed files with 56 additions and 15 deletions

View File

@ -36,11 +36,7 @@ function _heat_set_user {
OS_PROJECT_DOMAIN_ID=$DEFAULT_DOMAIN OS_PROJECT_DOMAIN_ID=$DEFAULT_DOMAIN
} }
function _run_heat_api_tests { function _config_tempest {
local devstack_dir=$1
pushd $devstack_dir/../tempest
sed -i -e '/group_regex/c\group_regex=heat_tempest_plugin\\.tests\\.api\\.test_heat_api(?:\\.|_)([^_]+)' .stestr.conf
conf_file=etc/tempest.conf conf_file=etc/tempest.conf
iniset_multiline $conf_file service_available heat_plugin True iniset_multiline $conf_file service_available heat_plugin True
iniset $conf_file heat_plugin username $OS_USERNAME iniset $conf_file heat_plugin username $OS_USERNAME
@ -53,14 +49,57 @@ function _run_heat_api_tests {
iniset $conf_file heat_plugin project_domain_name $OS_PROJECT_DOMAIN_NAME iniset $conf_file heat_plugin project_domain_name $OS_PROJECT_DOMAIN_NAME
iniset $conf_file heat_plugin region $OS_REGION_NAME iniset $conf_file heat_plugin region $OS_REGION_NAME
iniset $conf_file heat_plugin auth_version $OS_IDENTITY_API_VERSION iniset $conf_file heat_plugin auth_version $OS_IDENTITY_API_VERSION
tox -evenv-tempest -- tempest run --regex heat_tempest_plugin.tests.api }
function _write_heat_integrationtests {
local upgrade_tests=$1
cat > $upgrade_tests <<EOF
heat_tempest_plugin.tests.api
EOF
}
function _run_heat_api_tests {
pushd $TARGET_RELEASE_DIR/tempest
sed -i -e '/group_regex/c\group_regex=heat_tempest_plugin\\.tests\\.api\\.test_heat_api(?:\\.|_)([^_]+)' .stestr.conf
# Run set of specified functional tests
UPGRADE_TESTS=upgrade_tests.list
_write_heat_integrationtests $UPGRADE_TESTS
_config_tempest
sudo UPPER_CONSTRAINTS_FILE=$TARGET_RELEASE_DIR/requirements/upper-constraints.txt \
tox -evenv-tempest -- stestr --test-path=$TARGET_RELEASE_DIR/heat/heat_integrationtests \
--top-dir=$TARGET_RELEASE_DIR/heat \
--group_regex='heat_tempest_plugin\.tests\.api\.test_heat_api[._]([^_]+)' run \
--whitelist-file $UPGRADE_TESTS
popd
}
function _run_heat_create_tests {
pushd $BASE_RELEASE_DIR/tempest
_config_tempest
# Old version of tempest is installed in grenade environment, so use
# .testr.conf instead of .stestr.conf
cat <<'EOF' >.testr.conf
[DEFAULT]
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \
OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \
${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} \
${OS_TEST_PATH:-./tempest/test_discover} $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list
group_regex=([^\.]*\.)*
EOF
UPPER_CONSTRAINTS_FILE=$BASE_RELEASE_DIR/requirements/upper-constraints.txt tempest run --regex '(test_create_update.CreateStackTest|test_create_update.UpdateStackTest)'
popd popd
} }
function create { function create {
# run heat api tests instead of tempest smoke before create _run_heat_create_tests
_run_heat_api_tests $BASE_DEVSTACK_DIR
# creates a tenant for the server # creates a tenant for the server
eval $(openstack project create -f shell -c id $HEAT_PROJECT) eval $(openstack project create -f shell -c id $HEAT_PROJECT)
if [[ -z "$id" ]]; then if [[ -z "$id" ]]; then
@ -94,7 +133,7 @@ function verify {
_heat_set_user _heat_set_user
local side="$1" local side="$1"
if [[ "$side" = "post-upgrade" ]]; then if [[ "$side" = "post-upgrade" ]]; then
_run_heat_api_tests $TARGET_DEVSTACK_DIR _run_heat_api_tests
fi fi
stack_name=$(resource_get heat stack_name) stack_name=$(resource_get heat stack_name)
heat stack-show $stack_name heat stack-show $stack_name

View File

@ -30,4 +30,4 @@ openstack flavor delete m1.heat_int
openstack flavor delete m1.heat_micro openstack flavor delete m1.heat_micro
# delete the image created # delete the image created
openstack image delete Fedora-Cloud-Base-29-1.2.x86_64 openstack image delete Fedora-Cloud-Base-30-1.2.x86_64

View File

@ -21,6 +21,8 @@ sudo -E $DEST/heat/heat_integrationtests/prepare_test_env.sh
sudo -E $DEST/heat/heat_integrationtests/prepare_test_network.sh sudo -E $DEST/heat/heat_integrationtests/prepare_test_network.sh
cd $DEST/tempest cd $DEST/tempest
sudo tox -evenv-tempest -- stestr --test-path=$DEST/heat/heat_integrationtests --top-dir=$DEST/heat --group_regex='heat_tempest_plugin\.tests\.api\.test_heat_api[._]([^_]+)' run sudo UPPER_CONSTRAINTS_FILE=${UPPER_CONSTRAINTS_FILE:-$DEST/requirements/upper-constraints.txt} \
tox -evenv-tempest -- stestr --test-path=$DEST/heat/heat_integrationtests --top-dir=$DEST/heat \
--group_regex='heat_tempest_plugin\.tests\.api\.test_heat_api[._]([^_]+)' run
sudo -E $DEST/heat/heat_integrationtests/cleanup_test_env.sh sudo -E $DEST/heat/heat_integrationtests/cleanup_test_env.sh

View File

@ -44,9 +44,9 @@ echo "[[local|localrc]]" >> $localconf
# to network # to network
if [[ -e /etc/ci/mirror_info.sh ]]; then if [[ -e /etc/ci/mirror_info.sh ]]; then
source /etc/ci/mirror_info.sh source /etc/ci/mirror_info.sh
echo "IMAGE_URLS+=${NODEPOOL_FEDORA_MIRROR}/releases/29/Cloud/x86_64/images/Fedora-Cloud-Base-29-1.2.x86_64.qcow2" >> $localconf echo "IMAGE_URLS+=${NODEPOOL_FEDORA_MIRROR}/releases/30/Cloud/x86_64/images/Fedora-Cloud-Base-30-1.2.x86_64.qcow2" >> $localconf
else else
echo "IMAGE_URLS+=https://download.fedoraproject.org/pub/fedora/linux/releases/29/Cloud/x86_64/images/Fedora-Cloud-Base-29-1.2.x86_64.qcow2" >> $localconf echo "IMAGE_URLS+=https://download.fedoraproject.org/pub/fedora/linux/releases/30/Cloud/x86_64/images/Fedora-Cloud-Base-30-1.2.x86_64.qcow2" >> $localconf
fi fi
echo "CEILOMETER_PIPELINE_INTERVAL=60" >> $localconf echo "CEILOMETER_PIPELINE_INTERVAL=60" >> $localconf

View File

@ -48,7 +48,7 @@ function _config_iniset {
iniset $conf_file heat_plugin instance_type m1.heat_int iniset $conf_file heat_plugin instance_type m1.heat_int
iniset $conf_file heat_plugin minimal_instance_type m1.heat_micro iniset $conf_file heat_plugin minimal_instance_type m1.heat_micro
iniset $conf_file heat_plugin image_ref Fedora-Cloud-Base-29-1.2.x86_64 iniset $conf_file heat_plugin image_ref Fedora-Cloud-Base-30-1.2.x86_64
iniset $conf_file heat_plugin minimal_image_ref cirros-0.3.5-x86_64-disk iniset $conf_file heat_plugin minimal_image_ref cirros-0.3.5-x86_64-disk
if [ "$DISABLE_CONVERGENCE" == "true" ]; then if [ "$DISABLE_CONVERGENCE" == "true" ]; then