Common testing content for OpenStack-Ansible
Go to file
Jesse Pretorius 5f3cd37d12 Fix idempotency check and add debug logging
The current idempotency check is broken because Ansible
does not produce a log output without the environment
variable being exported.

This patch ensures that each playbook run produces an
individual log, and ensures that the idempotency check
uses the correct log output.

The following are also included:
- The script outputs the full CLI used to execute the test
  playbook. This is useful for debugging purposes.
- The parameters are re-ordered in alphabetical order to
  make them easier to find.
- The log collection now also collects the Ansible logs.
- Instead of repeating the rsync command in the log collection
  a variable is used, reducing the line length and making it
  easier to change/re-use.

Change-Id: Ie379de765c6ebba958ce8e7f9dc27b7a3af74ff8
2016-10-06 11:46:00 +01:00
common-tasks Merge "Only override UCA repo url on OpenStack CI" 2016-09-06 13:34:06 +00:00
doc Introduced all the scaffolding for test repo 2016-08-12 14:50:07 +00:00
network_interfaces Merge "Fix postup/postdown on RedHat/CentOS hosts" 2016-09-30 02:43:33 +00:00
releasenotes Update reno for stable/newton 2016-09-30 15:07:09 -04:00
tests Implement centralised test scripts 2016-09-23 16:04:36 +01:00
.gitignore Update testing bits for consistency 2016-09-16 21:19:23 -05:00
.gitreview Introduced all the scaffolding for test repo 2016-08-12 14:50:07 +00:00
ansible-role-requirements-gen.sh Added role requirements file to the tests repo 2016-09-13 11:37:49 +00:00
ansible-role-requirements.yaml Added role requirements file to the tests repo 2016-09-13 11:37:49 +00:00
bindep.txt Compress test execution logs 2016-09-09 10:58:01 +01:00
create-grant-db.yml Allow db user name differing from db name 2016-10-03 13:27:17 -07:00
destroy_containers.yml Fix container destroy/create 2016-09-16 12:47:42 -05:00
ensure-rabbitmq.yml Add convergence test for test repo. 2016-08-30 14:37:25 +00:00
get-ansible-role-requirements.yml Implement git clone of roles 2016-09-30 12:58:14 +00:00
iptables-clear.sh Setup iptables-clear.sh 2016-05-26 11:33:41 +01:00
LICENSE Introduced all the scaffolding for test repo 2016-08-12 14:50:07 +00:00
manual-test.rc Update README description of how to use the tests repo 2016-09-28 13:23:01 +01:00
README.rst Renamed test-vars.yml to rolename-overrides.yml in README.rst 2016-10-03 22:40:52 +05:30
run_tests.sh Implement centralised test scripts 2016-09-23 16:04:36 +01:00
setting-nodepool-variables.yml Add Ironic vars and play to central test repo 2016-09-27 13:35:36 +00:00
setup.cfg modify the home-page info with the developer documentation 2016-09-20 16:32:22 +05:30
setup.py Introduced all the scaffolding for test repo 2016-08-12 14:50:07 +00:00
test-ansible-deps.txt Implement centralised test scripts 2016-09-23 16:04:36 +01:00
test-ansible-env-prep.sh Fix idempotency check and add debug logging 2016-10-06 11:46:00 +01:00
test-ansible-functional.sh Fix idempotency check and add debug logging 2016-10-06 11:46:00 +01:00
test-ansible-lint.sh Implement centralised Ansible test scripts 2016-10-05 09:56:12 +01:00
test-ansible-syntax.sh Implement centralised Ansible test scripts 2016-10-05 09:56:12 +01:00
test-ansible.cfg Implement centralised test scripts 2016-09-23 16:04:36 +01:00
test-bashate.sh Implement centralised Ansible test scripts 2016-10-05 09:56:12 +01:00
test-install-cinder.yml Add Cinder setup/vars to central test repository 2016-10-04 17:04:52 +01:00
test-install-etcd.yml Add vars and plays for neutron to work 2016-09-20 17:01:19 +01:00
test-install-galera.yml Fix up syntax and dir structure 2016-05-19 16:37:18 +01:00
test-install-glance.yml Remove unused hostname var from test playbooks 2016-09-12 09:08:38 -04:00
test-install-infra.yml Fix test-vars and rabbit play 2016-05-23 12:00:39 +01:00
test-install-ironic.yml Add Ironic vars and play to central test repo 2016-09-27 13:35:36 +00:00
test-install-keystone.yml Modularize networking 2016-09-16 17:07:15 +01:00
test-install-memcached.yml Fix up syntax and dir structure 2016-05-19 16:37:18 +01:00
test-install-neutron.yml Fix CentOS package installation 2016-10-03 10:22:39 -04:00
test-install-nova.yml Fix CentOS package installation 2016-10-03 10:22:39 -04:00
test-install-openstack-hosts.yml Add tests for the openstack_hosts role 2016-08-26 00:05:28 +00:00
test-install-rabbitmq.yml Fix up syntax and dir structure 2016-05-19 16:37:18 +01:00
test-install-sahara.yml Add sahara vars and playbook 2016-10-03 14:11:05 +01:00
test-install-swift.yml Remove swift_storage/replication_address pretasks 2016-09-26 14:16:33 +01:00
test-install-tempest.yml Add rolename setting for tempest 2016-09-26 21:56:47 +01:00
test-log-collect.sh Fix idempotency check and add debug logging 2016-10-06 11:46:00 +01:00
test-pep8.sh Implement centralised Ansible test scripts 2016-10-05 09:56:12 +01:00
test-prepare-containers.yml Add container logs to the build 2016-09-27 17:35:29 -05:00
test-prepare-host.yml Checksum all traffic traveling though the bridges 2016-10-03 13:54:02 -07:00
test-prepare-keys.yml Address ansible_ssh_* var deprecation 2016-09-19 11:06:48 +01:00
test-requirements.txt Updated from global requirements 2016-09-29 22:37:26 +00:00
test-setup-cinder-localhost.yml Add Cinder setup/vars to central test repository 2016-10-04 17:04:52 +01:00
test-setup-host.yml Add setup-host play 2016-05-20 14:53:54 +01:00
test-setup-swifthosts.yml Fix CentOS package installation 2016-10-03 10:22:39 -04:00
test-vars.yml Fix Typo 2016-10-04 22:18:00 +01:00
tox.ini Implement centralised Ansible test scripts 2016-10-05 09:56:12 +01:00
Vagrantfile Introduced all the scaffolding for test repo 2016-08-12 14:50:07 +00:00

OpenStack-Ansible testing

This is the openstack-ansible-tests repository, providing a framework and consolidation of testing configuration and playbooks. This can be used to integrate new projects, and ensure that code duplication is minimized whilst allowing the addition of new testing scenarios with greater ease.

Role Integration

To enable the openstack-ansible-tests repository, ensure that the tox.ini configuration in the role repository matches the galera_client repository tox.ini with the exception of the value for ROLE_NAME. A more advanced configuration which implements multiple functional test scenarios is available in the neutron role tox.ini.

To override variables you can create a ${rolename}-overrides.yml file inside the role's tests folder. This variable file can be includes in the functional tox target configuration in tox.ini as demonstrated in the following extract:

ansible-playbook -i {toxinidir}/tests/inventory \
                 -e @{toxinidir}/tests/${rolename}-overrides.yml \
                 {toxinidir}/tests/test.yml -vvvv

In your repositories tests/test.yml file, you can call any of the included playbooks, for example:

- include: common/test-prepare-keys.yml

Network Settings

The networking can be configured and setup using the bridges variable.

The base option, when only 1 interface is required is to specify just a single base - this is only for backwards compatibility with existing test setup and will default to br-mgmt with an IP of 10.1.0.1.

bridges:
  - "br-mgmt"

To allow a more complicated network setup we can specify ip_addr: The IP address on the interface. netmask: Netmask of the interface (defaults to 255.255.255.0) name: Name of the interface veth_peer: Set up a veth peer for the interface alias: Add an alias IP address

For example, a Nova setup may look like this:

bridges:
  - name: "br-mgmt"
    ip_addr: "10.1.0.1"
  - name: "br-vxlan"
    ip_addr: "10.1.1.1"
  - name: "br-vlan"
    ip_addr: "10.1.2.200"
    veth_peer: "eth12"
    alias: "10.1.2.1"