Files
kayobe/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
Ross Martyn d8ee0fa027 Multiple updates for Kayobe
---

1. Gather facts for localhost in kolla-ansible.yml
2. Don't include unconfigured networks in network_interfaces
3. Added Keystone configuration extra config merge

---

1. Facts are necessary for the kolla-ansible role,
which references the ansible_user_uid fact

2. It is possible to skip configuring a network,
by setting its name to None

This is done in networks.yml as follows:

admin_oc_net_name:

Currently, these networks may still be included in the 'network_interfaces'
list for each host, despite the fact that they are not in use.

A classic example is when ironic is not enabled, it is currently still
necessary to define provisioning and cleaning networks.

This change avoids including any networks that have their name set to None
in network_interfaces.

3. Added support for Keystone custom configuration

Added tests and documentation to add support for keystone extra configuration

Co-Authored-By: Mark Goddard <mark@stackhpc.com

Change-Id: Iaa304221b8093ac71f9cdbb23edc84d1517578da
2019-05-20 15:30:07 +01:00

99 lines
2.5 KiB
Python

# Copyright (c) 2018 StackHPC Ltd.
#
# 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 os
import os.path
from kayobe.tests.molecule import utils
import pytest
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
@pytest.mark.parametrize(
'path',
['ceph',
'cinder',
'designate',
'fluentd/filter',
'fluentd/input',
'fluentd/output',
'glance',
'grafana',
'heat',
'horizon',
'ironic',
'kafka',
'keystone',
'magnum',
'manila',
'mariadb',
'monasca',
'murano',
'neutron',
'nova',
'octavia',
'sahara',
'storm',
'swift',
'zookeeper'])
def test_service_config_directory(host, path):
path = os.path.join('/etc/kolla/config', path)
utils.test_directory(host, path)
@pytest.mark.parametrize(
'path',
['ceph.conf',
'cinder.conf',
'designate.conf',
'galera.cnf',
'glance.conf',
'grafana.ini',
'heat.conf',
'ironic.conf',
'ironic-inspector.conf',
'kafka.server.properties',
'keystone.conf',
'magnum.conf',
'manila.conf',
'neutron/ml2_conf.ini',
'murano.conf',
'neutron.conf',
'nova.conf',
'octavia.conf',
'sahara.conf',
'zookeeper.cfg'])
def test_service_ini_file(host, path):
# TODO(mgoddard): Check more of config file contents.
path = os.path.join('/etc/kolla/config', path)
extra_section = 'extra-%s' % os.path.basename(path)
expected = {extra_section: {'foo': 'bar'}}
utils.test_ini_file(host, path, expected=expected)
@pytest.mark.parametrize(
'path',
['ironic/ironic-agent.initramfs',
'ironic/ironic-agent.kernel',
'ironic/pxelinux.default'])
def test_service_non_ini_file(host, path):
# TODO(mgoddard): Check config file contents.
path = os.path.join('/etc/kolla/config', path)
utils.test_file(host, path)