From cc71003acbc457f6451a6cbc7b82bcefe19915eb Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Mon, 11 Jul 2016 23:39:20 -0500 Subject: [PATCH] Updated tests and role for Xenial support These changes allow the role to be tested on Xenial hosts while also ensuring that the tests are testing everything within the container as expected. Overview: * Included in this PR is a manual-test.rc. This has been added to allow developers to run tests locally without having to invoke tox. This RC file was lifed from the os_keystone role. * The git package was added to the install list. This is needed on the target when the role is running with developer mode enabled. * Connection settings within the container create prep playbook were removed. A``connection: local`` setting forces all commands to be executed against the host regardless of a delegated task. * A task has been added to the horizon role to when SSL is enabled. This task ensures that that ca certificates are updated. Without this change, when running on Xenial, tempest will fail due to the following error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) By updating the ca certificats on tempest is able to verify the certificate and pass the tests. NOTE: This fix came from the puppet-OpenStack community where they ran into the same problems in Xenial as discussed here: [0] [0] - https://irclogs.ubuntu.com/2016/05/18/%23ubuntu-server.html#t13:37 Change-Id: I1e6808c49a8faaba5b2748918be5d6b5a59fd3d1 Signed-off-by: Kevin Carter --- manual-test.rc | 22 ++++++++++++++++++++++ meta/main.yml | 1 + tasks/main.yml | 6 ++++++ tests/test-container-create.yml | 3 +-- tests/test-vars.yml | 4 ++-- vars/debian.yml | 1 + 6 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 manual-test.rc diff --git a/manual-test.rc b/manual-test.rc new file mode 100644 index 00000000..fa1cdf95 --- /dev/null +++ b/manual-test.rc @@ -0,0 +1,22 @@ +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)/.. + +echo "Run manual functional tests by executing the following:" +echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml -e \"rolename=$(pwd)\"" diff --git a/meta/main.yml b/meta/main.yml index 99fa0677..8d1fe00c 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -23,6 +23,7 @@ galaxy_info: - name: Ubuntu versions: - trusty + - xenial categories: - cloud - python diff --git a/tasks/main.yml b/tasks/main.yml index 657d62eb..05589eeb 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -40,6 +40,12 @@ - include: horizon_ssl_user_provided.yml when: not horizon_external_ssl|bool +- name: Update the ca certificates + command: "update-ca-certificates -f" + when: not horizon_external_ssl|bool + tags: + - horizon-ssl + - include: horizon_service_setup.yml - include: horizon_apache.yml diff --git a/tests/test-container-create.yml b/tests/test-container-create.yml index 6e2fe833..850a6b4a 100644 --- a/tests/test-container-create.yml +++ b/tests/test-container-create.yml @@ -15,7 +15,6 @@ - name: Create test containers hosts: all_containers - connection: local gather_facts: false pre_tasks: - name: Destroy test containers @@ -51,4 +50,4 @@ port: "{{ ansible_ssh_port | default('22') }}" host: "{{ ansible_ssh_host | default(inventory_hostname) }}" search_regex: OpenSSH - delay: 1 \ No newline at end of file + delay: 1 diff --git a/tests/test-vars.yml b/tests/test-vars.yml index 56ed7d0f..84275477 100644 --- a/tests/test-vars.yml +++ b/tests/test-vars.yml @@ -61,8 +61,8 @@ memcached_servers: 127.0.0.1 openrc_os_auth_url: "http://127.0.0.1:5000/v3" openrc_os_domain_name: "Default" openrc_os_password: "{{ keystone_auth_admin_password }}" -tempest_dashboard_login_url: "https://10.100.100.4/auth/login/" -tempest_dashboard_url: "https://10.100.100.4/" +tempest_dashboard_login_url: "https://{{ ansible_hostname }}/auth/login/" +tempest_dashboard_url: "https://{{ ansible_hostname }}/" tempest_developer_mode: True tempest_git_install_branch: master tempest_venv_tag: "{{ tempest_git_install_branch }}" diff --git a/vars/debian.yml b/vars/debian.yml index 837f71b7..94610d47 100644 --- a/vars/debian.yml +++ b/vars/debian.yml @@ -20,6 +20,7 @@ horizon_apt_packages: - apache2 - apache2-utils - cron # required by the Ansible cron module + - git - libapache2-mod-wsgi - libssl-dev - libxslt1.1