Execute tempest using updated method
The old method of executing tempest via run_tempest.sh from the root of the git clone has been deprecated and will soon be removed. This patch does the following: - Implements the updated method of executing tempest using the foundation laid down in https://review.openstack.org/382211 TODO in a follow-on patch: When executed in CI, fetch the results for storage with other test artifacts. Change-Id: I8f3c58d670a335323be34ac4318b93c928b878cb
This commit is contained in:
@@ -13,29 +13,12 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
tempest_log_dir: /var/log/utility
|
||||
|
||||
# Set this if ssh access from the utility container to all other hosts is
|
||||
# desired
|
||||
# utility_ssh_private_key: "{{ lookup('file', '/root/.ssh/id_rsa') }}"
|
||||
|
||||
galera_client_drop_config_file: true
|
||||
|
||||
# If cinder has a backup service enabled, make sure that Tempest tests it
|
||||
tempest_volume_backup_enabled: "{{ cinder_service_backup_program_enabled | bool }}"
|
||||
|
||||
# If there are Telemetry hosts in the environment, make sure that Tempest
|
||||
# tests them
|
||||
tempest_service_available_aodh: "{{ groups['aodh_all'] is defined and groups['aodh_all'] | length > 0 }}"
|
||||
tempest_service_available_ceilometer: "{{ groups['ceilometer_all'] is defined and groups['ceilometer_all'] | length > 0 }}"
|
||||
tempest_service_available_cinder: "{{ groups['cinder_all'] is defined and groups['cinder_all'] | length > 0 }}"
|
||||
tempest_service_available_glance: "{{ groups['glance_all'] is defined and groups['glance_all'] | length > 0 }}"
|
||||
tempest_service_available_heat: "{{ groups['heat_all'] is defined and groups['heat_all'] | length > 0 }}"
|
||||
tempest_service_available_horizon: "{{ groups['horizon_all'] is defined and groups['horizon_all'] | length > 0 }}"
|
||||
tempest_service_available_neutron: "{{ groups['neutron_all'] is defined and groups['neutron_all'] | length > 0 }}"
|
||||
tempest_service_available_nova: "{{ groups['nova_all'] is defined and groups['nova_all'] | length > 0 }}"
|
||||
tempest_service_available_swift: "{{ groups['swift_all'] is defined and groups['swift_all'] | length > 0 }}"
|
||||
|
||||
# Ensure that the package state matches the global setting
|
||||
utility_package_state: "{{ package_state }}"
|
||||
utility_pip_package_state: "latest"
|
||||
@@ -50,6 +33,35 @@ utility_pip_packages:
|
||||
- python-memcached
|
||||
- pycrypto
|
||||
|
||||
#
|
||||
# Tempest settings
|
||||
#
|
||||
|
||||
# If cinder has a backup service enabled, make sure that Tempest tests it
|
||||
tempest_volume_backup_enabled: "{{ cinder_service_backup_program_enabled | bool }}"
|
||||
|
||||
# Activate tempest testing based on the inventory content
|
||||
tempest_service_available_aodh: "{{ groups['aodh_all'] is defined and groups['aodh_all'] | length > 0 }}"
|
||||
tempest_service_available_ceilometer: "{{ groups['ceilometer_all'] is defined and groups['ceilometer_all'] | length > 0 }}"
|
||||
tempest_service_available_cinder: "{{ groups['cinder_all'] is defined and groups['cinder_all'] | length > 0 }}"
|
||||
tempest_service_available_glance: "{{ groups['glance_all'] is defined and groups['glance_all'] | length > 0 }}"
|
||||
tempest_service_available_heat: "{{ groups['heat_all'] is defined and groups['heat_all'] | length > 0 }}"
|
||||
tempest_service_available_horizon: "{{ groups['horizon_all'] is defined and groups['horizon_all'] | length > 0 }}"
|
||||
tempest_service_available_neutron: "{{ groups['neutron_all'] is defined and groups['neutron_all'] | length > 0 }}"
|
||||
tempest_service_available_nova: "{{ groups['nova_all'] is defined and groups['nova_all'] | length > 0 }}"
|
||||
tempest_service_available_swift: "{{ groups['swift_all'] is defined and groups['swift_all'] | length > 0 }}"
|
||||
|
||||
tempest_log_dir: /var/log/utility
|
||||
tempest_venv_tag: "{{ openstack_release }}"
|
||||
tempest_venv_bin: "/openstack/venvs/tempest-{{ tempest_venv_tag }}/bin"
|
||||
|
||||
# This sets the tempest group to the utility group
|
||||
tempest_main_group: utility_all
|
||||
|
||||
#
|
||||
# Rally settings
|
||||
#
|
||||
|
||||
rally_galera_user: rally
|
||||
rally_galera_database_name: rally
|
||||
rally_galera_address: "{{ galera_address }}"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
- name: Installation and setup of Tempest
|
||||
hosts: utility_all
|
||||
hosts: utility_all[0]
|
||||
gather_facts: "{{ gather_facts | default(True) }}"
|
||||
max_fail_percentage: 20
|
||||
user: root
|
||||
@@ -34,8 +34,6 @@
|
||||
vars_files:
|
||||
- defaults/repo_packages/openstack_testing.yml
|
||||
vars:
|
||||
# This sets the tempest group to the utility group
|
||||
tempest_main_group: utility_all
|
||||
is_metal: "{{ properties.is_metal|default(false) }}"
|
||||
tags:
|
||||
- tempest
|
||||
|
||||
@@ -36,3 +36,6 @@
|
||||
- include: os-magnum-install.yml
|
||||
- include: os-trove-install.yml
|
||||
- include: os-sahara-install.yml
|
||||
- include: os-tempest-install.yml
|
||||
when: (tempest_install | default(False)) | bool or (tempest_run | default(False)) | bool
|
||||
|
||||
|
||||
@@ -106,10 +106,4 @@ bash "$(dirname "${0}")/run-playbooks.sh"
|
||||
# Log some data about the instance and the rest of the system
|
||||
log_instance_info
|
||||
|
||||
# Run the tempest tests
|
||||
source "$(dirname "${0}")/run-tempest.sh"
|
||||
|
||||
# Log some data about the instance and the rest of the system
|
||||
log_instance_info
|
||||
|
||||
exit_success
|
||||
|
||||
@@ -142,7 +142,6 @@ pushd "playbooks"
|
||||
-a 'find /var/www/repo/os-releases -type l' \
|
||||
-t "${COMMAND_LOGS}/repo_data"
|
||||
|
||||
openstack-ansible os-tempest-install.yml
|
||||
print_report
|
||||
fi
|
||||
popd
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
## Shell Opts ----------------------------------------------------------------
|
||||
set -e -u +x
|
||||
|
||||
|
||||
## Vars ----------------------------------------------------------------------
|
||||
export TEMPEST_SCRIPT_PATH=${TEMPEST_SCRIPT_PATH:-/opt/openstack_tempest_gate.sh}
|
||||
## TODO(someone) this needs to be changed back to the normal tests once someone
|
||||
## is able to dig into tempest/the updated/deprecated config(s). This test should
|
||||
## go back to being the scenario tests.
|
||||
export TEMPEST_SCRIPT_PARAMETERS=${TEMPEST_SCRIPT_PARAMETERS:-"scenario heat_api cinder_backup"}
|
||||
export RUN_TEMPEST_OPTS=${RUN_TEMPEST_OPTS:-'--serial'}
|
||||
export TESTR_OPTS=${TESTR_OPTS:-''}
|
||||
|
||||
## Library Check -------------------------------------------------------------
|
||||
info_block "Checking for required libraries." 2> /dev/null || source "$(dirname "${0}")/scripts-library.sh"
|
||||
|
||||
|
||||
## Main ----------------------------------------------------------------------
|
||||
info_block "Running OpenStack Smoke Tests"
|
||||
|
||||
if [[ -f "/usr/local/bin/openstack-ansible.rc" ]];then
|
||||
source "/usr/local/bin/openstack-ansible.rc"
|
||||
fi
|
||||
|
||||
pushd playbooks
|
||||
# Check that there are utility containers
|
||||
if ! ansible 'utility[0]' --list-hosts;then
|
||||
echo -e "\nERROR: No utility containers have been deployed in your environment\n"
|
||||
exit_state 99
|
||||
fi
|
||||
|
||||
# Check that the utility container already has the required tempest script deployed
|
||||
if ! ansible 'utility[0]' -m shell -a "ls -al ${TEMPEST_SCRIPT_PATH}";then
|
||||
echo -e "\nERROR: Please execute the 'os-tempest-install.yml' playbook prior to this script.\n"
|
||||
exit_state 99
|
||||
fi
|
||||
|
||||
# Execute the tempest tests
|
||||
ansible 'utility[0]' -m shell -a "export RUN_TEMPEST_OPTS=${RUN_TEMPEST_OPTS}; \
|
||||
export TESTR_OPTS=${TESTR_OPTS}; \
|
||||
${TEMPEST_SCRIPT_PATH} ${TEMPEST_SCRIPT_PARAMETERS}"
|
||||
|
||||
# Retrieve tempest test results
|
||||
ansible 'utility[0]' -m fetch -a 'src=/tmp/tempest_results.xml dest=/tmp/ flat=true'
|
||||
|
||||
popd
|
||||
@@ -90,3 +90,7 @@ neutron_plugin_base:
|
||||
- router
|
||||
- metering
|
||||
- neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
|
||||
|
||||
## Always setup tempest, the resources for it, then execute tests
|
||||
tempest_install: yes
|
||||
tempest_run: yes
|
||||
|
||||
Reference in New Issue
Block a user