Install tempest plugins

This commit does the following:

- updates os_tempest to work in non-integrated environments, giving us
  the ability to use it in environments where all services may not be
  installed
- adds the ability to install tempest plugins, and installs
  designate-tempest-plugin for use in the os_designate role

Change-Id: I30a877f6c84f66ca05381969d015850078532e1f
This commit is contained in:
Matt Thompson 2016-04-21 15:18:12 +01:00
parent 18cb511a58
commit 3a38e54735
5 changed files with 97 additions and 3 deletions

View File

@ -24,6 +24,15 @@ tempest_git_repo: https://git.openstack.org/openstack/tempest
tempest_git_install_branch: master
tempest_developer_mode: false
## Tempest Plugins
# By default, no tempest plugins are installed. Override ``tempest_plugins``
# as follows:
# tempest_plugins:
# - name: designate_tempest_plugin
# repo: https://github.com/openstack/designate-tempest-plugin
# branch: master
tempest_plugins: []
tempest_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/tempest.tgz
tempest_fatal_deprecations: False

View File

@ -123,3 +123,32 @@
tags:
- tempest-pip-packages
- tempest-pip-install
- name: Get tempest plugins from git
git:
repo: "{{ item.repo }}"
dest: "/opt/{{ item.name }}_{{ item.branch|replace('/', '_') }}"
version: "{{ item.branch }}"
force: yes
with_items: "{{ tempest_plugins) }}"
register: git_clone
until: git_clone|success
retries: 5
delay: 2
tags:
- git-clone
- name: Install tempest plugins
pip:
name: "/opt/{{ item.name }}_{{ item.branch|replace('/', '_') }}"
state: present
virtualenv: "{{ tempest_git_dest }}"
virtualenv_site_packages: "no"
extra_args: "{{ pip_install_options|default('') }}"
with_items: "{{ tempest_plugins }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
tags:
- pip-install

View File

@ -57,6 +57,7 @@
dest: "{{ tempest_image_dir }}"
sha256sum: "{{ item.sha256 }}"
with_items: tempest_images
when: tempest_service_available_glance | bool
tags:
- tempest-config
- tempest-image
@ -65,6 +66,7 @@
shell: |
ls -1 {{ tempest_image_dir }} | grep '.gz'
register: tempest_archives
when: tempest_service_available_glance | bool
tags:
- tempest-config
- tempest-image
@ -76,6 +78,7 @@
dest: "{{ tempest_image_dir }}"
copy: "no"
with_items: tempest_archives.stdout
when: tempest_service_available_glance | bool
tags:
- tempest-config
- tempest-image

View File

@ -27,6 +27,7 @@
until: cirros_image_create | success
retries: 5
delay: 15
when: tempest_service_available_glance | bool
tags:
- tempest-setup
- tempest-config
@ -34,6 +35,17 @@
- name: Store cirros image id
set_fact:
tempest_glance_image_id: "{{ glance_images.cirros.id }}"
when: tempest_service_available_glance | bool
tags:
- tempest-setup
- tempest-config
# This fact is used in tempest.conf.j2; we set an empty string if it doesn't get
# set above to ensure the template will parse correctly.
- name: Store empty tempest_glance_image_id fact
set_fact:
tempest_glance_image_id: ''
when: not tempest_service_available_glance | bool
tags:
- tempest-setup
- tempest-config
@ -48,6 +60,7 @@
image_disk_format: qcow2
image_is_public: True
insecure: "{{ keystone_service_internaluri_insecure }}"
when: tempest_service_available_glance | bool
tags:
- tempest-setup
- tempest-config
@ -55,6 +68,17 @@
- name: Store alt cirros image id
set_fact:
tempest_glance_image_alt_id: "{{ glance_images.cirros_alt.id }}"
when: tempest_service_available_glance | bool
tags:
- tempest-setup
- tempest-config
# This fact is used in tempest.conf.j2; we set an empty string if it doesn't get
# set above to ensure the template will parse correctly.
- name: Store empty tempest_glance_image_alt_id fact
set_fact:
tempest_glance_image_alt_id: ''
when: not tempest_service_available_glance | bool
tags:
- tempest-setup
- tempest-config
@ -186,6 +210,7 @@
net_name: private
tenant_id: "{{ keystone_demo_tenant_id }}"
insecure: "{{ keystone_service_internaluri_insecure }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
- tempest-config
@ -193,6 +218,7 @@
- name: Store neutron private network id
set_fact:
tempest_neutron_private_network_id: "{{ neutron_networks.private.id }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
- tempest-config
@ -206,6 +232,7 @@
provider_physical_network: flat
router_external: true
insecure: "{{ keystone_service_internaluri_insecure }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
- tempest-config
@ -213,6 +240,17 @@
- name: Store neutron public network id
set_fact:
tempest_neutron_public_network_id: "{{ neutron_networks.public.id }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
- tempest-config
# This fact is used in tempest.conf.j2; we set an empty string if it doesn't get
# set above to ensure the template will parse correctly.
- name: Store empty tempest_neutron_public_network_id fact
set_fact:
tempest_neutron_public_network_id: ''
when: not tempest_service_available_neutron | bool
tags:
- tempest-setup
- tempest-config
@ -226,6 +264,7 @@
cidr: "{{ tempest_private_subnet_cidr }}"
tenant_id: "{{ keystone_demo_tenant_id }}"
insecure: "{{ keystone_service_internaluri_insecure }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
@ -238,6 +277,7 @@
cidr: "{{ tempest_public_subnet_cidr }}"
insecure: "{{ keystone_service_internaluri_insecure }}"
allocation_pools: "{{ tempest_public_subnet_allocation_pools }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
@ -249,6 +289,7 @@
external_gateway_info: public
tenant_id: "{{ keystone_demo_tenant_id }}"
insecure: "{{ keystone_service_internaluri_insecure }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
@ -259,6 +300,7 @@
router_name: router
subnet_name: private-subnet
insecure: "{{ keystone_service_internaluri_insecure }}"
when: tempest_service_available_neutron | bool
tags:
- tempest-setup
@ -269,6 +311,7 @@
register: tempest1
failed_when: False
changed_when: tempest1.rc != 0
when: tempest_service_available_nova | bool
tags:
- tempest-setup
@ -276,7 +319,9 @@
shell: |
. /root/openrc
nova flavor-create tempest1 201 256 1 1
when: tempest1.rc != 0
when:
- tempest_service_available_nova | bool
- tempest1.rc != 0
tags:
- tempest-setup
@ -287,6 +332,7 @@
register: tempest2
failed_when: False
changed_when: tempest2.rc != 0
when: tempest_service_available_nova | bool
tags:
- tempest-setup
@ -294,6 +340,8 @@
shell: |
. /root/openrc
nova flavor-create tempest2 202 512 1 1
when: tempest2.rc != 0
when:
- tempest_service_available_nova | bool
- tempest2.rc != 0
tags:
- tempest-setup

View File

@ -80,6 +80,11 @@ function gen_test_list_smoke {
grep smoke | grep -v tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_router_admin_state
}
# Run designate scenario tests
function gen_test_list_designate_scenario {
egrep 'designate_tempest_plugin\.tests\.scenario'
}
# Run all tests
function gen_test_list_all {
cat
@ -171,7 +176,7 @@ set +o pipefail
# every test list function.
truncate --size 0 tmp_test_list
for test_list_name in ${test_lists}; do
grep '^tempest\.' < full_test_list \
egrep '^(tempest|.*_tempest_plugin)\.' < full_test_list \
| gen_test_list_${test_list_name} >> tmp_test_list \
|| exit_msg "Filter $test_list_name failed. Output: $(cat test_list)" 1
done