Clean up tests a bit
1. Remove tests/test-configure-octavia.yml because the 'shade' package does not need to be installed again - this is already done by the role test preparation. 2. Remove the key generation as the keys are already generated in the common tests playbook 'test-prepare-keys.yml'. 3. Add some spacing between tasks to make it more readable. 4. Implement the extra packages needed in test-requirements.txt instead of trying to use a task to install them, because doing it in Ansible makes understanding the venv in relation to the inventory complicated.. 5. Move the vars_files argument to the top of the play to make it easier to find and more uniform with other plays in OSA. 6. Switch from using octavia_ansible_endpoint_type to a hard-coded endpoint, then remove the octavia_ansible_endpoint_type var. 7. Switch from using the 'endpoint_type' argument for the openstack modules to using the more modern 'interface' argument. 8. Remove the 'run_once' argument on the 'Upload key to nova' task because only localhost is targeted, so the argument is moot. 9. Remove the 'Set VIP fact' task in favor of just using the 'vip_output' register in the 'Test the Listener' task. Setting a fact is pointless. 10. To help the existing patches pass, we add python-pip to the distro packages. This will be reverted later once the required changes to remove this requirement have merged. Depends-On: https://review.openstack.org/589248 Change-Id: I46962090f7baf4227e838e125fd318245f2bcb85
This commit is contained in:
parent
1a5eeb06d8
commit
bd9f0c0723
7
test-requirements.txt
Normal file
7
test-requirements.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# These requirements are used in addition to the test-requirements.txt
|
||||||
|
# set out in the openstack-ansible-tests repository. Requirements here
|
||||||
|
# should *only* be for the purpose of including in the runtime venv
|
||||||
|
# for test purposes. Anything that is destined to be used in production
|
||||||
|
# should not be here, but instead in a *_pip_packages list.
|
||||||
|
|
||||||
|
python-octaviaclient>=1.6.0 # Apache-2.0
|
@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
# Copyright 2016, 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.
|
|
||||||
|
|
||||||
- name: Setup localhost requirements
|
|
||||||
hosts: localhost
|
|
||||||
become: True
|
|
||||||
gather_facts: True
|
|
||||||
tasks:
|
|
||||||
- name: Install pip requirements
|
|
||||||
pip:
|
|
||||||
name: "shade"
|
|
||||||
state: "{{ octavia_pip_package_state }}"
|
|
||||||
extra_args: >-
|
|
||||||
{{ octavia_developer_mode | ternary(pip_install_developer_constraints | default('--constraint /opt/developer-pip-constraints.txt'), '') }}
|
|
||||||
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }}
|
|
||||||
{{ pip_install_options | default('') }}
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages is success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
vars_files:
|
|
||||||
- common/test-vars.yml
|
|
@ -15,14 +15,16 @@
|
|||||||
|
|
||||||
- name: Test Octavia
|
- name: Test Octavia
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
user: root
|
connection: local
|
||||||
gather_facts: false
|
gather_facts: no
|
||||||
|
vars_files:
|
||||||
|
- common/test-vars.yml
|
||||||
vars:
|
vars:
|
||||||
|
ansible_python_interpreter: "{{ ansible_playbook_python }}"
|
||||||
octavia_service_user_name: octavia
|
octavia_service_user_name: octavia
|
||||||
octavia_service_project_name: service
|
octavia_service_project_name: service
|
||||||
octavia_service_user_domain_id: default
|
octavia_service_user_domain_id: default
|
||||||
octavia_service_project_domain_id: default
|
octavia_service_project_domain_id: default
|
||||||
octavia_ansible_endpoint_type: internal
|
|
||||||
env:
|
env:
|
||||||
OS_ENDPOINT_TYPE: internalURL
|
OS_ENDPOINT_TYPE: internalURL
|
||||||
OS_INTERFACE: internalURL
|
OS_INTERFACE: internalURL
|
||||||
@ -38,26 +40,6 @@
|
|||||||
OS_IDENTITY_API_VERSION: 3
|
OS_IDENTITY_API_VERSION: 3
|
||||||
OS_AUTH_VERSION: 3
|
OS_AUTH_VERSION: 3
|
||||||
tasks:
|
tasks:
|
||||||
- name: Install pip requirements
|
|
||||||
pip:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: "{{ octavia_pip_package_state }}"
|
|
||||||
extra_args: >-
|
|
||||||
{{ octavia_developer_mode | ternary(pip_install_developer_constraints | default('--constraint /opt/developer-pip-constraints.txt'), '') }}
|
|
||||||
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }}
|
|
||||||
{{ pip_install_options | default('') }}
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages is success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items:
|
|
||||||
- "python-neutronclient"
|
|
||||||
- "python-glanceclient"
|
|
||||||
- "shade"
|
|
||||||
- "python-octaviaclient"
|
|
||||||
- "python-openstackclient"
|
|
||||||
- "cmd2<0.9.0" # >=0.9.0 is python3 only
|
|
||||||
|
|
||||||
- name: Ensure public network exists
|
- name: Ensure public network exists
|
||||||
os_network:
|
os_network:
|
||||||
auth:
|
auth:
|
||||||
@ -67,12 +49,13 @@
|
|||||||
project_name: "{{ octavia_service_project_name }}"
|
project_name: "{{ octavia_service_project_name }}"
|
||||||
user_domain_name: "{{ octavia_service_user_domain_id }}"
|
user_domain_name: "{{ octavia_service_user_domain_id }}"
|
||||||
project_domain_name: "{{ octavia_service_project_domain_id }}"
|
project_domain_name: "{{ octavia_service_project_domain_id }}"
|
||||||
endpoint_type: "{{ octavia_ansible_endpoint_type }}"
|
interface: admin
|
||||||
state: present
|
state: present
|
||||||
name: "public"
|
name: "public"
|
||||||
provider_network_type: "flat"
|
provider_network_type: "flat"
|
||||||
provider_physical_network: "flat"
|
provider_physical_network: "flat"
|
||||||
external: True
|
external: True
|
||||||
|
|
||||||
- name: Ensure public subnet exists
|
- name: Ensure public subnet exists
|
||||||
os_subnet:
|
os_subnet:
|
||||||
auth:
|
auth:
|
||||||
@ -82,18 +65,12 @@
|
|||||||
project_name: "{{ octavia_service_project_name }}"
|
project_name: "{{ octavia_service_project_name }}"
|
||||||
user_domain_name: "{{ octavia_service_user_domain_id }}"
|
user_domain_name: "{{ octavia_service_user_domain_id }}"
|
||||||
project_domain_name: "{{ octavia_service_project_domain_id }}"
|
project_domain_name: "{{ octavia_service_project_domain_id }}"
|
||||||
endpoint_type: "{{ octavia_ansible_endpoint_type }}"
|
interface: admin
|
||||||
state: present
|
state: present
|
||||||
network_name: "public"
|
network_name: "public"
|
||||||
name: "public-subnet"
|
name: "public-subnet"
|
||||||
cidr: "10.1.3.0/24"
|
cidr: "10.1.3.0/24"
|
||||||
- name: Create ssh-key
|
|
||||||
shell: >
|
|
||||||
cat /dev/zero | ssh-keygen -q -N ""
|
|
||||||
args:
|
|
||||||
creates: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa"
|
|
||||||
tags:
|
|
||||||
- skip_ansible_lint
|
|
||||||
- name: Upload key to nova
|
- name: Upload key to nova
|
||||||
os_keypair:
|
os_keypair:
|
||||||
auth:
|
auth:
|
||||||
@ -103,11 +80,10 @@
|
|||||||
project_name: "{{ octavia_service_project_name }}"
|
project_name: "{{ octavia_service_project_name }}"
|
||||||
user_domain_name: "{{ octavia_service_user_domain_id }}"
|
user_domain_name: "{{ octavia_service_user_domain_id }}"
|
||||||
project_domain_name: "{{ octavia_service_project_domain_id }}"
|
project_domain_name: "{{ octavia_service_project_domain_id }}"
|
||||||
endpoint_type: "{{ octavia_ansible_endpoint_type }}"
|
interface: admin
|
||||||
state: present
|
state: present
|
||||||
name: "octavia_key"
|
name: "octavia_key"
|
||||||
public_key_file: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa.pub"
|
public_key_file: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa.pub"
|
||||||
run_once: true
|
|
||||||
|
|
||||||
- name: Create a loadbalancer
|
- name: Create a loadbalancer
|
||||||
shell: >
|
shell: >
|
||||||
@ -115,6 +91,7 @@
|
|||||||
environment: "{{ env }}"
|
environment: "{{ env }}"
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
|
|
||||||
- name: Wait until LB is active
|
- name: Wait until LB is active
|
||||||
shell: >
|
shell: >
|
||||||
openstack loadbalancer show test-lb -c provisioning_status -f value
|
openstack loadbalancer show test-lb -c provisioning_status -f value
|
||||||
@ -126,12 +103,14 @@
|
|||||||
delay: 10
|
delay: 10
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
|
|
||||||
- name: Create a listener
|
- name: Create a listener
|
||||||
shell: >
|
shell: >
|
||||||
openstack loadbalancer listener create --protocol HTTP --protocol-port 80 --name listener test-lb
|
openstack loadbalancer listener create --protocol HTTP --protocol-port 80 --name listener test-lb
|
||||||
environment: "{{ env }}"
|
environment: "{{ env }}"
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
|
|
||||||
- name: Wait until Listener is active
|
- name: Wait until Listener is active
|
||||||
shell: >
|
shell: >
|
||||||
openstack loadbalancer show test-lb -c provisioning_status -f value
|
openstack loadbalancer show test-lb -c provisioning_status -f value
|
||||||
@ -143,6 +122,7 @@
|
|||||||
delay: 10
|
delay: 10
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
|
|
||||||
- name: Run Show (for debugging)
|
- name: Run Show (for debugging)
|
||||||
shell: >
|
shell: >
|
||||||
openstack loadbalancer show test-lb
|
openstack loadbalancer show test-lb
|
||||||
@ -159,14 +139,13 @@
|
|||||||
register: vip_output
|
register: vip_output
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
- name: Set VIP fact
|
|
||||||
set_fact:
|
|
||||||
vip: "{{ vip_output.stdout }}"
|
|
||||||
- name: Test the Listener
|
- name: Test the Listener
|
||||||
uri:
|
uri:
|
||||||
url: "http://{{ vip }}"
|
url: "http://{{ vip_output.stdout }}"
|
||||||
status_code: 503
|
status_code: 503
|
||||||
when: test_octavia_amphora | bool
|
when: test_octavia_amphora | bool
|
||||||
|
|
||||||
- name: Delete LoadBalancer
|
- name: Delete LoadBalancer
|
||||||
shell: >
|
shell: >
|
||||||
openstack loadbalancer delete --cascade test-lb
|
openstack loadbalancer delete --cascade test-lb
|
||||||
@ -177,5 +156,3 @@
|
|||||||
delay: 15
|
delay: 15
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
vars_files:
|
|
||||||
- common/test-vars.yml
|
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
- include: common/test-install-nova.yml
|
- include: common/test-install-nova.yml
|
||||||
|
|
||||||
# Install Octavia
|
# Install Octavia
|
||||||
- include: test-configure-octavia.yml
|
|
||||||
- include: test-install-octavia.yml
|
- include: test-install-octavia.yml
|
||||||
|
|
||||||
# Test
|
# Test
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
cache_timeout: 600
|
cache_timeout: 600
|
||||||
|
|
||||||
octavia_distro_packages:
|
octavia_distro_packages:
|
||||||
- iptables-persistent
|
|
||||||
- netfilter-persistent
|
|
||||||
- libxml2-dev
|
|
||||||
- git
|
- git
|
||||||
|
- iptables-persistent
|
||||||
|
- libxml2-dev
|
||||||
|
- netfilter-persistent
|
||||||
|
- python-pip
|
||||||
|
Loading…
Reference in New Issue
Block a user