WIP: Add support for molecule

Change-Id: Icb3d289333abb392d4b9d31917c2309603b28536
Depends-On: https://review.openstack.org/593369
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger 2018-08-19 13:56:55 -04:00
parent 118b914aec
commit f09977a744
15 changed files with 455 additions and 314 deletions

10
.yamllint Normal file
View File

@ -0,0 +1,10 @@
extends: default
rules:
braces:
max-spaces-inside: 1
level: error
brackets:
max-spaces-inside: 1
level: error
line-length: disable

View File

@ -1,11 +1,20 @@
---
- job:
name: ansible-role-zuul-base
parent: unittests
pre-run: tests/playbooks/pre.yaml
run: tests/playbooks/run.yaml
post-run: tests/collect-logs.yaml
post-run:
- tests/playbooks/post.yaml
- tests/collect-logs.yaml
roles:
- zuul: openstack/ansible-role-zuul
vars:
zuul_file_zuul_executor_service_config_src: etc/systemd/system/override.conf.j2
zuul_file_zuul_merger_service_config_src: etc/systemd/system/override.conf.j2
zuul_file_zuul_scheduler_service_config_src: etc/systemd/system/override.conf.j2
zuul_file_zuul_web_service_config_src: etc/systemd/system/override.conf.j2
zuul_user_group: zuul-test
zuul_user_name: zuul-test
# Testing for zuul_install_method: pip
- job:
@ -66,6 +75,7 @@
- ansible-role-zuul-src-ubuntu-bionic
- ansible-role-zuul-src-ubuntu-xenial
- tox-linters
- windmill-tox-molecule
gate:
jobs:
- ansible-role-zuul-fedora-latest
@ -75,3 +85,4 @@
- ansible-role-zuul-src-ubuntu-bionic
- ansible-role-zuul-src-ubuntu-xenial
- tox-linters
- windmill-tox-molecule

View File

@ -1,16 +1,5 @@
# This is a cross-platform list tracking distribution packages needed by tests;
# see http://docs.openstack.org/infra/bindep/ for additional information.
git
libffi-dev [platform:dpkg]
libffi-devel [platform:rpm]
libselinux-python [platform:rpm]
libssl-dev [platform:dpkg]
openssl-devel [platform:rpm]
python2-dnf [platform:fedora]
# NOTE(pabelanger): This is because of a bug in zuul, when zuul-scheduler starts
# it will fail unless it cannot connect to zookeeper. However, zuul should be
# smart enough to try forever to connect.
zookeeperd [platform:dpkg]
zookeeper [platform:fedora]
docker.io [test platform:dpkg]
docker [test platform:fedora]

View File

@ -21,13 +21,13 @@ galaxy_info:
license: Apache
min_ansible_version: 2.4
platforms:
- name: Fedora
versions:
- 27
- name: Ubuntu
versions:
- 16.04
- 18.04
- name: Fedora
versions:
- 27
- name: Ubuntu
versions:
- 16.04
- 18.04
categories:
- system
- system
dependencies: []

View File

@ -0,0 +1,9 @@
# Molecule managed
{% if item.registry is defined %}
FROM {{ item.registry.url }}/{{ item.image }}
{% else %}
FROM {{ item.image }}
{% endif %}
RUN apt-get update && apt-get install -y python sudo bash ca-certificates python-pip python3-pip && apt-get clean;

View File

@ -0,0 +1,37 @@
---
dependency:
name: galaxy
driver:
name: docker
lint:
name: yamllint
platforms:
- name: ubuntu-bionic
image: ubuntu:bionic
provisioner:
name: ansible
config_options:
ssh_connection:
pipelining: true
inventory:
group_vars:
all:
zuul_service_zuul_executor_manage: false
zuul_service_zuul_fingergw_manage: false
zuul_service_zuul_merger_manage: false
zuul_service_zuul_scheduler_manage: false
zuul_service_zuul_web_manage: false
lint:
name: ansible-lint
log: true
playbooks:
converge: ../../tests/playbooks/run.yaml
scenario:
name: default
verifier:
name: testinfra
directory: ../tests
options:
verbose: true
lint:
name: flake8

View File

@ -0,0 +1,27 @@
# Copyright 2018 Red Hat, 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.
import pytest
@pytest.fixture
def platform_docker(host):
return host.file('/.dockerenv').exists
@pytest.fixture(autouse=True)
def skip_platform_docker(request, platform_docker):
marker = request.node.get_marker('skip_if_docker')
if marker and platform_docker:
pytest.skip('Skipping docker')

300
molecule/tests/test_role.py Normal file
View File

@ -0,0 +1,300 @@
# Copyright 2018 Red Hat, 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.
import pytest
def _get_user_and_group(host):
user = 'zuul'
group = 'zuul'
if host.file('/etc/ci/mirror_info.sh').exists:
user = 'zuul-test'
group = 'zuul-test'
return user, group
def test_zuul_user(host):
user, group = _get_user_and_group(host)
u = host.user(user)
assert u.exists
assert u.name == user
assert u.group == group
assert u.home == '/var/lib/zuul'
f = host.file('/var/lib/zuul')
assert f.exists
assert f.is_directory
assert f.user == user
assert f.group == group
# TODO(pabelanger): Validate mode
def test_zuul_config(host):
user, group = _get_user_and_group(host)
f = host.file('/etc/zuul')
assert f.exists
assert f.is_directory
assert f.user == user
assert f.group == group
# TODO(pabelanger): Validate mode
del f
f = host.file('/etc/zuul/zuul.conf')
assert f.exists
assert f.is_directory
assert f.user == user
assert f.group == group
assert f.mode == 0o640
del f
f = host.file('/etc/zuul/main.yaml')
assert f.exists
assert f.is_directory
assert f.user == user
assert f.group == group
assert f.mode == 0o644
def test_zuul_logs_directory(host):
user, group = _get_user_and_group(host)
f = host.file('/var/log/zuul')
assert f.exists
assert f.is_directory
assert f.user == user
assert f.group == group
assert f.mode == 0o755
def test_zuul_executor_logging_config(host):
user, group = _get_user_and_group(host)
f = host.file('/etc/zuul/executor-logging.conf')
assert f.exists
assert f.is_file
assert f.user == user
assert f.group == group
assert f.mode == 0o644
def test_zuul_executor_service_config(host):
f = host.file('/etc/systemd/system/zuul-executor.service')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
del f
f = host.file('/etc/systemd/system/zuul-executor.service.d')
assert f.exists
assert f.is_directory
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o755
del f
f = host.file(
'/etc/systemd/system/zuul-executor.service.d/override.conf')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
@pytest.mark.skip_if_docker()
def test_zuul_executor_service(host):
service = host.service('zuul-executor')
assert service.is_running
assert service.is_enabled
def test_zuul_fingergw_logging_config(host):
user, group = _get_user_and_group(host)
f = host.file('/etc/zuul/fingergw-logging.conf')
assert f.exists
assert f.is_file
assert f.user == user
assert f.group == group
assert f.mode == 0o644
def test_zuul_fingergw_service_config(host):
f = host.file('/etc/systemd/system/zuul-fingergw.service')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
del f
f = host.file('/etc/systemd/system/zuul-fingergw.service.d')
assert f.exists
assert f.is_directory
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o755
del f
f = host.file(
'/etc/systemd/system/zuul-fingergw.service.d/override.conf')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
@pytest.mark.skip_if_docker()
def test_zuul_fingergw_service(host):
service = host.service('zuul-fingergw')
assert service.is_running
assert service.is_enabled
def test_zuul_merger_logging_config(host):
user, group = _get_user_and_group(host)
f = host.file('/etc/zuul/merger-logging.conf')
assert f.exists
assert f.is_file
assert f.user == user
assert f.group == group
assert f.mode == 0o644
def test_zuul_merger_service_config(host):
f = host.file('/etc/systemd/system/zuul-merger.service')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
del f
f = host.file('/etc/systemd/system/zuul-merger.service.d')
assert f.exists
assert f.is_directory
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o755
del f
f = host.file(
'/etc/systemd/system/zuul-merger.service.d/override.conf')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
@pytest.mark.skip_if_docker()
def test_zuul_merger_service(host):
service = host.service('zuul-merger')
assert service.is_running
assert service.is_enabled
def test_zuul_scheduler_logging_config(host):
user, group = _get_user_and_group(host)
f = host.file('/etc/zuul/scheduler-logging.conf')
assert f.exists
assert f.is_file
assert f.user == user
assert f.group == group
assert f.mode == 0o644
def test_zuul_scheduler_service_config(host):
f = host.file('/etc/systemd/system/zuul-scheduler.service')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
del f
f = host.file('/etc/systemd/system/zuul-scheduler.service.d')
assert f.exists
assert f.is_directory
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o755
del f
f = host.file(
'/etc/systemd/system/zuul-scheduler.service.d/override.conf')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
@pytest.mark.skip_if_docker()
def test_zuul_scheduler_service(host):
service = host.service('zuul-scheduler')
assert service.is_running
assert service.is_enabled
def test_zuul_web_logging_config(host):
user, group = _get_user_and_group(host)
f = host.file('/etc/zuul/web-logging.conf')
assert f.exists
assert f.is_file
assert f.user == user
assert f.group == group
assert f.mode == 0o644
def test_zuul_web_service_config(host):
f = host.file('/etc/systemd/system/zuul-web.service')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
del f
f = host.file('/etc/systemd/system/zuul-web.service.d')
assert f.exists
assert f.is_directory
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o755
del f
f = host.file(
'/etc/systemd/system/zuul-web.service.d/override.conf')
assert f.exists
assert f.is_file
assert f.user == 'root'
assert f.group == 'root'
assert f.mode == 0o644
@pytest.mark.skip_if_docker()
def test_zuul_web_service(host):
service = host.service('zuul-web')
assert service.is_running
assert service.is_enabled

View File

@ -16,7 +16,7 @@
become: true
pip:
executable: "{{ zuul_pip_executable|default(omit) }}"
editable : "{{ zuul_pip_editable|default(omit) }}"
editable: "{{ zuul_pip_editable|default(omit) }}"
extra_args: "{{ zuul_pip_extra_args|default(omit) }}"
name: "{{ zuul_pip_name }}"
version: "{{ zuul_pip_version|default(omit) }}"

View File

@ -1,5 +1,6 @@
# This file is generated by Ansible
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
#
---
- tenant:
name: example

View File

@ -1,3 +1,3 @@
ansible-lint
hacking<0.11,>=0.10
sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
ara
docker
molecule

View File

@ -0,0 +1,8 @@
- hosts: all
tasks:
- name: Run testinfra validation
include_role:
name: tox
vars:
tox_envlist: testinfra
tox_install_siblings: false

View File

@ -15,13 +15,6 @@
- hosts: all
vars:
rolename: ansible-role-zuul
zuul_file_zuul_executor_service_config_src: etc/systemd/system/override.conf.j2
zuul_file_zuul_merger_service_config_src: etc/systemd/system/override.conf.j2
zuul_file_zuul_scheduler_service_config_src: etc/systemd/system/override.conf.j2
zuul_file_zuul_web_service_config_src: etc/systemd/system/override.conf.j2
zuul_user_name: zuul-test
zuul_user_group: zuul-test
zuul_pip_executable: pip3
roles:
- "{{ rolename }}"
@ -57,35 +50,6 @@
- zuul_service_zuul_scheduler
- zuul_service_zuul_web
- name: Ensure zuul_user_name is zuul.
shell: /usr/bin/getent passwd zuul-test
tags: skip_ansible_lint
- name: Ensure zuul_user_group is zuul.
shell: /usr/bin/getent group zuul-test
tags: skip_ansible_lint
- name: Register zuul_user_home_getent.
shell: '/usr/bin/getent passwd zuul-test | cut -d: -f6'
register: zuul_user_home_getent
tags: skip_ansible_lint
- name: Assert zuul_user_home is /var/lib/zuul.
assert:
that:
- zuul_user_home_getent.stdout == '/var/lib/zuul'
- name: Register zuul_user_home_stat.
stat:
path: /var/lib/zuul
register: zuul_user_home_stat
- name: Assert zuul_user_home tests.
assert:
that:
- zuul_user_home_stat.stat.exists
- zuul_user_home_stat.stat.isdir
- name: Register zuul_git_dest_stat.
stat:
path: /home/zuul/src/git.openstack.org/openstack-infra/zuul
@ -98,237 +62,3 @@
- zuul_git_dest_stat.stat.exists
- zuul_git_dest_stat.stat.isdir
when: zuul_install_method == 'git'
- name: Register /etc/zuul/main.yaml
stat:
path: /etc/zuul/main.yaml
register: zuul_main_yaml_stat
- name: Assert zuul_main_yaml_stat tests.
assert:
that:
- zuul_main_yaml_stat.stat.exists
- zuul_main_yaml_stat.stat.isreg
- zuul_main_yaml_stat.stat.pw_name == 'zuul-test'
- zuul_main_yaml_stat.stat.gr_name == 'zuul-test'
- zuul_main_yaml_stat.stat.mode == '0644'
- name: Register /etc/zuul/zuul.conf
stat:
path: /etc/zuul/zuul.conf
register: zuul_conf_stat
- name: Assert zuul_conf_stat tests.
assert:
that:
- zuul_conf_stat.stat.exists
- zuul_conf_stat.stat.isreg
- zuul_conf_stat.stat.pw_name == 'zuul-test'
- zuul_conf_stat.stat.gr_name == 'zuul-test'
- name: Register /etc/zuul/ssl/root-ca.pem
stat:
path: /etc/zuul/ssl/root-ca.pem
register: _zuul_file_gearman_ssl_ca_stat
- name: Assert _zuul_file_gearman_ssl_ca_stat tests.
assert:
that:
- _zuul_file_gearman_ssl_ca_stat.stat.exists
- _zuul_file_gearman_ssl_ca_stat.stat.isreg
- _zuul_file_gearman_ssl_ca_stat.stat.pw_name == 'zuul-test'
- _zuul_file_gearman_ssl_ca_stat.stat.gr_name == 'zuul-test'
- _zuul_file_gearman_ssl_ca_stat.stat.mode == '0644'
- name: Register /etc/zuul/ssl/client.pem
stat:
path: /etc/zuul/ssl/client.pem
register: _zuul_file_gearman_ssl_cert_stat
- name: Assert _zuul_file_gearman_ssl_cert_stat tests.
assert:
that:
- _zuul_file_gearman_ssl_cert_stat.stat.exists
- _zuul_file_gearman_ssl_cert_stat.stat.isreg
- _zuul_file_gearman_ssl_cert_stat.stat.pw_name == 'zuul-test'
- _zuul_file_gearman_ssl_cert_stat.stat.gr_name == 'zuul-test'
- _zuul_file_gearman_ssl_cert_stat.stat.mode == '0644'
- name: Register /etc/zuul/ssl/client.key
stat:
path: /etc/zuul/ssl/client.key
register: _zuul_file_gearman_ssl_key_stat
- name: Assert _zuul_file_gearman_ssl_key_stat tests.
assert:
that:
- _zuul_file_gearman_ssl_key_stat.stat.exists
- _zuul_file_gearman_ssl_key_stat.stat.isreg
- _zuul_file_gearman_ssl_key_stat.stat.pw_name == 'zuul-test'
- _zuul_file_gearman_ssl_key_stat.stat.gr_name == 'zuul-test'
- _zuul_file_gearman_ssl_key_stat.stat.mode == '0600'
- name: Register /etc/systemd/system/zuul-executor.service.d/override.conf
stat:
path: /etc/systemd/system/zuul-executor.service.d/override.conf
register: zuul_executor_service_config_stat
- name: Assert zuul_executor_service_config_stat tests.
assert:
that:
- zuul_executor_service_config_stat.stat.exists
- zuul_executor_service_config_stat.stat.isreg
- zuul_executor_service_config_stat.stat.pw_name == 'root'
- zuul_executor_service_config_stat.stat.gr_name == 'root'
- zuul_executor_service_config_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-fingergw.service.d/override.conf
stat:
path: /etc/systemd/system/zuul-fingergw.service.d/override.conf
register: zuul_fingergw_service_config_stat
- name: Assert zuul_fingergw_service_config_stat tests.
assert:
that:
- zuul_fingergw_service_config_stat.stat.exists
- zuul_fingergw_service_config_stat.stat.isreg
- zuul_fingergw_service_config_stat.stat.pw_name == 'root'
- zuul_fingergw_service_config_stat.stat.gr_name == 'root'
- zuul_fingergw_service_config_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-merger.service.d/override.conf
stat:
path: /etc/systemd/system/zuul-merger.service.d/override.conf
register: zuul_merger_service_config_stat
- name: Assert zuul_merger_service_config_stat tests.
assert:
that:
- zuul_merger_service_config_stat.stat.exists
- zuul_merger_service_config_stat.stat.isreg
- zuul_merger_service_config_stat.stat.pw_name == 'root'
- zuul_merger_service_config_stat.stat.gr_name == 'root'
- zuul_merger_service_config_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-scheduler.service.d/override.conf
stat:
path: /etc/systemd/system/zuul-scheduler.service.d/override.conf
register: zuul_scheduler_service_config_stat
- name: Assert zuul_scheduler_service_config_stat tests.
assert:
that:
- zuul_scheduler_service_config_stat.stat.exists
- zuul_scheduler_service_config_stat.stat.isreg
- zuul_scheduler_service_config_stat.stat.pw_name == 'root'
- zuul_scheduler_service_config_stat.stat.gr_name == 'root'
- zuul_scheduler_service_config_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-web.service.d/override.conf
stat:
path: /etc/systemd/system/zuul-web.service.d/override.conf
register: zuul_web_service_config_stat
- name: Assert zuul_web_service_config_stat tests.
assert:
that:
- zuul_web_service_config_stat.stat.exists
- zuul_web_service_config_stat.stat.isreg
- zuul_web_service_config_stat.stat.pw_name == 'root'
- zuul_web_service_config_stat.stat.gr_name == 'root'
- zuul_web_service_config_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-executor.service
stat:
path: /etc/systemd/system/zuul-executor.service
register: _zuul_executor_service_systemd_stat
- name: Assert _zuul_executor_service_systemd_stat tests.
assert:
that:
- _zuul_executor_service_systemd_stat.stat.exists
- _zuul_executor_service_systemd_stat.stat.isreg
- _zuul_executor_service_systemd_stat.stat.pw_name == 'root'
- _zuul_executor_service_systemd_stat.stat.gr_name == 'root'
- _zuul_executor_service_systemd_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-fingergw.service
stat:
path: /etc/systemd/system/zuul-fingergw.service
register: _zuul_fingergw_service_systemd_stat
- name: Assert _zuul_fingergw_service_systemd_stat tests.
assert:
that:
- _zuul_fingergw_service_systemd_stat.stat.exists
- _zuul_fingergw_service_systemd_stat.stat.isreg
- _zuul_fingergw_service_systemd_stat.stat.pw_name == 'root'
- _zuul_fingergw_service_systemd_stat.stat.gr_name == 'root'
- _zuul_fingergw_service_systemd_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-merger.service
stat:
path: /etc/systemd/system/zuul-merger.service
register: _zuul_merger_service_systemd_stat
- name: Assert _zuul_merger_service_systemd_stat tests.
assert:
that:
- _zuul_merger_service_systemd_stat.stat.exists
- _zuul_merger_service_systemd_stat.stat.isreg
- _zuul_merger_service_systemd_stat.stat.pw_name == 'root'
- _zuul_merger_service_systemd_stat.stat.gr_name == 'root'
- _zuul_merger_service_systemd_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-scheduler.service
stat:
path: /etc/systemd/system/zuul-scheduler.service
register: _zuul_scheduler_service_systemd_stat
- name: Assert _zuul_scheduler_service_systemd_stat tests.
assert:
that:
- _zuul_scheduler_service_systemd_stat.stat.exists
- _zuul_scheduler_service_systemd_stat.stat.isreg
- _zuul_scheduler_service_systemd_stat.stat.pw_name == 'root'
- _zuul_scheduler_service_systemd_stat.stat.gr_name == 'root'
- _zuul_scheduler_service_systemd_stat.stat.mode == '0644'
- name: Register /etc/systemd/system/zuul-web.service
stat:
path: /etc/systemd/system/zuul-web.service
register: _zuul_web_service_systemd_stat
- name: Assert _zuul_web_service_systemd_stat tests.
assert:
that:
- _zuul_web_service_systemd_stat.stat.exists
- _zuul_web_service_systemd_stat.stat.isreg
- _zuul_web_service_systemd_stat.stat.pw_name == 'root'
- _zuul_web_service_systemd_stat.stat.gr_name == 'root'
- _zuul_web_service_systemd_stat.stat.mode == '0644'
- name: Ensure zuul-executor is running.
become: yes
shell: /usr/sbin/service zuul-executor status
tags: skip_ansible_lint
- name: Ensure zuul-fingergw is running.
become: yes
shell: /usr/sbin/service zuul-fingergw status
tags: skip_ansible_lint
- name: Ensure zuul-merger is running.
become: yes
shell: /usr/sbin/service zuul-merger status
tags: skip_ansible_lint
- name: Ensure zuul-scheduler is running.
become: yes
shell: /usr/sbin/service zuul-scheduler status
tags: skip_ansible_lint
- name: Ensure zuul-web is running.
become: yes
shell: /usr/sbin/service zuul-web status
tags: skip_ansible_lint

21
tools/test-setup.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash -ex
# Copyright 2018 Red Hat, 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.
if ! [ $(getent group docker) ]; then
sudo groupadd docker
fi
sudo gpasswd -a ${USER} docker
sudo service docker restart

32
tox.ini
View File

@ -4,13 +4,26 @@ envlist = docs,linters
skipsdist = True
[testenv]
basepython = python3
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:docs]
commands = python setup.py build_sphinx
[testenv:linters]
commands =
molecule lint
[testenv:molecule]
setenv =
ANSIBLE_CALLBACK_PLUGINS = {envsitepackagesdir}/ara/plugins/callbacks
commands =
molecule test
[testenv:testinfra]
commands =
pytest --junit-xml junit.xml --sudo --verbose molecule/tests
[testenv:venv]
commands = {posargs}
@ -20,19 +33,4 @@ commands = {posargs}
show-source = True
ignore = E123,E125
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build
[testenv:linters]
setenv =
ANSIBLE_ROLES_PATH = ..
whitelist_externals = bash
commands =
# PEP8 Lint Check
flake8
# Ansible Lint Check
bash -c "find . -not -path '*/\.*' -type f -regex '.*.y[a]?ml' -print0 | \
xargs -t -n1 -0 ansible-lint"
# Ansible Syntax Check
bash -c "find tests -type f -regex '.*.y[a]?ml' -print | xargs -t -n1 \
ansible-playbook --syntax-check -i tests/inventory \
-e rolename=$(basename $(pwd)) > /dev/null"
exclude=.venv,.git,.tox,dist,doc,*egg,build