Update testing bits for consistency
Change-Id: I85713b88818bcc1070a905a1e3a407f2d5e02e86 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
parent
f25bf23558
commit
544adfe686
14
.gitignore
vendored
14
.gitignore
vendored
@ -1,7 +1,3 @@
|
|||||||
# Override Files #
|
|
||||||
rpc_deployment/playbooks/lab_plays
|
|
||||||
rpc_deployment/vars/overrides/*.yml
|
|
||||||
|
|
||||||
# Compiled source #
|
# Compiled source #
|
||||||
###################
|
###################
|
||||||
*.com
|
*.com
|
||||||
@ -33,6 +29,7 @@ doc/build/
|
|||||||
*.log
|
*.log
|
||||||
*.sql
|
*.sql
|
||||||
*.sqlite
|
*.sqlite
|
||||||
|
logs/*
|
||||||
|
|
||||||
# OS generated files #
|
# OS generated files #
|
||||||
######################
|
######################
|
||||||
@ -63,5 +60,12 @@ ChangeLog
|
|||||||
# Files created by releasenotes build
|
# Files created by releasenotes build
|
||||||
releasenotes/build
|
releasenotes/build
|
||||||
|
|
||||||
# Vagrant testing artifacts
|
# Test temp files
|
||||||
|
tests/plugins
|
||||||
|
tests/playbooks
|
||||||
|
tests/test.retry
|
||||||
|
|
||||||
|
# Vagrant artifacts
|
||||||
.vagrant
|
.vagrant
|
||||||
|
|
||||||
|
|
||||||
|
33
manual-test.rc
Normal file
33
manual-test.rc
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
export VIRTUAL_ENV=$(pwd)
|
||||||
|
export ANSIBLE_HOST_KEY_CHECKING=False
|
||||||
|
export ANSIBLE_SSH_CONTROL_PATH=/tmp/%%h-%%r
|
||||||
|
|
||||||
|
# TODO (odyssey4me) These are only here as they are non-standard folder
|
||||||
|
# names for Ansible 1.9.x. We are using the standard folder names for
|
||||||
|
# Ansible v2.x. We can remove this when we move to Ansible 2.x.
|
||||||
|
export ANSIBLE_ACTION_PLUGINS=${HOME}/.ansible/plugins/action
|
||||||
|
export ANSIBLE_CALLBACK_PLUGINS=${HOME}/.ansible/plugins/callback
|
||||||
|
export ANSIBLE_FILTER_PLUGINS=${HOME}/.ansible/plugins/filter
|
||||||
|
export ANSIBLE_LOOKUP_PLUGINS=${HOME}/.ansible/plugins/lookup
|
||||||
|
|
||||||
|
# This is required as the default is the current path or a path specified
|
||||||
|
# in ansible.cfg
|
||||||
|
export ANSIBLE_LIBRARY=${HOME}/.ansible/plugins/library
|
||||||
|
|
||||||
|
# This is required as the default is '/etc/ansible/roles' or a path
|
||||||
|
# specified in ansible.cfg
|
||||||
|
export ANSIBLE_ROLES_PATH=${HOME}/.ansible/roles:$(pwd)/..
|
||||||
|
|
||||||
|
export ANSIBLE_SSH_ARGS="-o ControlMaster=no \
|
||||||
|
-o UserKnownHostsFile=/dev/null \
|
||||||
|
-o StrictHostKeyChecking=no \
|
||||||
|
-o ServerAliveInterval=64 \
|
||||||
|
-o ServerAliveCountMax=1024 \
|
||||||
|
-o Compression=no \
|
||||||
|
-o TCPKeepAlive=yes \
|
||||||
|
-o VerifyHostKeyDNS=no \
|
||||||
|
-o ForwardX11=no \
|
||||||
|
-o ForwardAgent=yes"
|
||||||
|
|
||||||
|
echo "Run manual functional tests by executing the following:"
|
||||||
|
echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml -e \"rolename=$(pwd)\""
|
10
run_tests.sh
10
run_tests.sh
@ -24,23 +24,23 @@ if [ ! "$(which pip)" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Install bindep and tox
|
# Install bindep and tox
|
||||||
pip install bindep tox
|
sudo pip install bindep tox
|
||||||
|
|
||||||
# CentOS 7 requires two additional packages:
|
# CentOS 7 requires two additional packages:
|
||||||
# redhat-lsb-core - for bindep profile support
|
# redhat-lsb-core - for bindep profile support
|
||||||
# epel-release - required to install python-ndg_httpsclient/python2-pyasn1
|
# epel-release - required to install python-ndg_httpsclient/python2-pyasn1
|
||||||
if [ "$(which yum)" ]; then
|
if [ "$(which yum)" ]; then
|
||||||
yum -y install redhat-lsb-core epel-release
|
sudo yum -y install redhat-lsb-core epel-release
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install OS packages using bindep
|
# Install OS packages using bindep
|
||||||
if apt-get -v >/dev/null 2>&1 ; then
|
if apt-get -v >/dev/null 2>&1 ; then
|
||||||
apt-get update
|
sudo apt-get update
|
||||||
DEBIAN_FRONTEND=noninteractive \
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
apt-get -q --option "Dpkg::Options::=--force-confold" \
|
sudo apt-get -q --option "Dpkg::Options::=--force-confold" \
|
||||||
--assume-yes install `bindep -b -f bindep.txt test`
|
--assume-yes install `bindep -b -f bindep.txt test`
|
||||||
else
|
else
|
||||||
yum install -y `bindep -b -f bindep.txt test`
|
sudo yum install -y `bindep -b -f bindep.txt test`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# run through each tox env and execute the test
|
# run through each tox env and execute the test
|
||||||
|
67
tox.ini
67
tox.ini
@ -68,14 +68,33 @@ commands =
|
|||||||
deps =
|
deps =
|
||||||
{[testenv]deps}
|
{[testenv]deps}
|
||||||
ansible==2.1.1
|
ansible==2.1.1
|
||||||
|
ansible-lint>=2.7.0,<3.0.0
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv]setenv}
|
{[testenv]setenv}
|
||||||
ANSIBLE_ACTION_PLUGINS = {toxinidir}/action
|
ANSIBLE_HOST_KEY_CHECKING = False
|
||||||
ANSIBLE_CALLBACK_PLUGINS = {toxinidir}/callback
|
ANSIBLE_SSH_CONTROL_PATH = /tmp/%%h-%%r
|
||||||
ANSIBLE_FILTER_PLUGINS = {toxinidir}/filter
|
# TODO (odyssey4me) These are only here as they are non-standard folder
|
||||||
ANSIBLE_LOOKUP_PLUGINS = {toxinidir}/lookup
|
# names for Ansible 1.9.x. We are using the standard folder names for
|
||||||
ANSIBLE_LIBRARY = {toxinidir}/library
|
# Ansible v2.x. We can remove this when we move to Ansible 2.x.
|
||||||
|
ANSIBLE_ACTION_PLUGINS = {homedir}/.ansible/plugins/action
|
||||||
|
ANSIBLE_CALLBACK_PLUGINS = {homedir}/.ansible/plugins/callback
|
||||||
|
ANSIBLE_FILTER_PLUGINS = {homedir}/.ansible/plugins/filter
|
||||||
|
ANSIBLE_LOOKUP_PLUGINS = {homedir}/.ansible/plugins/lookup
|
||||||
|
# This is required as the default is the current path or a path specified
|
||||||
|
# in ansible.cfg
|
||||||
|
ANSIBLE_LIBRARY = {homedir}/.ansible/plugins/library
|
||||||
|
# This is required as the default is '/etc/ansible/roles' or a path
|
||||||
|
# specified in ansible.cfg
|
||||||
|
ANSIBLE_ROLES_PATH = {homedir}/.ansible/roles:{toxinidir}/..
|
||||||
|
ANSIBLE_TRANSPORT = "ssh"
|
||||||
commands =
|
commands =
|
||||||
|
# NOTE(cloudnull): Galaxy INIT it running here because there are no role deps to create the skel
|
||||||
|
ansible-galaxy init {homedir}/.ansible/plugins --force --offline
|
||||||
|
rm -rf {homedir}/.ansible/plugins
|
||||||
|
bash -c "ln -s {toxinidir} {homedir}/.ansible/plugins"
|
||||||
|
rm -rf {toxinidir}/tests/playbooks
|
||||||
|
git clone https://git.openstack.org/openstack/openstack-ansible-tests \
|
||||||
|
{toxinidir}/tests/playbooks
|
||||||
ansible-playbook {toxinidir}/tests/test.yml -i 'localhost,' -vvvv
|
ansible-playbook {toxinidir}/tests/test.yml -i 'localhost,' -vvvv
|
||||||
|
|
||||||
[testenv:linters]
|
[testenv:linters]
|
||||||
@ -88,5 +107,43 @@ commands =
|
|||||||
{[testenv:bashate]commands}
|
{[testenv:bashate]commands}
|
||||||
{[testenv:ansible]commands}
|
{[testenv:ansible]commands}
|
||||||
|
|
||||||
|
|
||||||
|
[testenv:func_base]
|
||||||
|
# NOTE(odyssey4me): this target does not use constraints because
|
||||||
|
# it doesn't work in OpenStack-CI yet. Once that's fixed, we can
|
||||||
|
# drop the install_command.
|
||||||
|
install_command =
|
||||||
|
pip install -U --force-reinstall {opts} {packages}
|
||||||
|
|
||||||
|
|
||||||
|
[testenv:func_logs]
|
||||||
|
commands =
|
||||||
|
bash -c 'mkdir -p {toxinidir}/logs'
|
||||||
|
bash -c 'rsync --archive --verbose --ignore-errors /var/log/ /openstack/log/ {toxinidir}/logs/ || true'
|
||||||
|
bash -c 'find "{toxinidir}/logs/" -type f | sed "p;s|$|.txt|" | xargs -n2 mv'
|
||||||
|
bash -c 'command gzip --best --recursive "{toxinidir}/logs/"'
|
||||||
|
|
||||||
|
|
||||||
|
[testenv:functional]
|
||||||
|
# Ignore_errors is set to true so that the logs are collected at the
|
||||||
|
# end of the run. This will not produce a false positive. Any
|
||||||
|
# exception will be mark the run as failed and exit 1 after all of
|
||||||
|
# the commands have been iterated through.
|
||||||
|
ignore_errors = True
|
||||||
|
# NOTE(odyssey4me): this target does not use constraints because
|
||||||
|
# it doesn't work in OpenStack-CI yet. Once that's fixed, we can
|
||||||
|
# drop the install_command.
|
||||||
|
install_command =
|
||||||
|
{[testenv:func_base]install_command}
|
||||||
|
deps =
|
||||||
|
{[testenv:ansible]deps}
|
||||||
|
setenv =
|
||||||
|
{[testenv:ansible]setenv}
|
||||||
|
commands =
|
||||||
|
{[testenv:ansible]commands}
|
||||||
|
echo '============ No Functional tests to run just yet. ============'
|
||||||
|
{[testenv:func_logs]commands}
|
||||||
|
|
||||||
|
|
||||||
[testenv:releasenotes]
|
[testenv:releasenotes]
|
||||||
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||||||
|
Loading…
Reference in New Issue
Block a user