|
@@ -2,6 +2,8 @@ import os
|
|
|
|
|
|
import testinfra.utils.ansible_runner
|
|
|
|
|
|
from helpers import parse_ldif
|
|
|
|
|
|
|
|
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
|
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-*')
|
|
@@ -13,7 +15,7 @@ def test_installed_packages(host):
|
|
|
"""
|
|
|
|
|
|
assert host.package('slapd').is_installed
|
|
|
assert host.package('python-ldap').is_installed
|
|
|
assert host.package('python3-pyldap').is_installed
|
|
|
|
|
|
|
|
|
def test_ldap_user_group(host):
|
|
@@ -111,20 +113,25 @@ def test_basic_directory_structure(host):
|
|
|
Tests if the base LDAP directory structure has been set-up correctly.
|
|
|
"""
|
|
|
|
|
|
with host.sudo():
|
|
|
|
|
|
ous = ["people", "groups", "services"]
|
|
|
|
|
|
for ou in ous:
|
|
|
expected_entries = parse_ldif("""
|
|
|
dn: ou=people,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: people
|
|
|
|
|
|
entry = host.run('ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s base -b ou=%s,dc=local' % ou)
|
|
|
dn: ou=groups,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: groups
|
|
|
|
|
|
assert entry.rc == 0
|
|
|
assert entry.stdout == """dn: ou=%(ou)s,dc=local
|
|
|
dn: ou=services,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: %(ou)s
|
|
|
ou: services
|
|
|
""")
|
|
|
|
|
|
""" % {'ou': ou}
|
|
|
entry = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -b dc=local "
|
|
|
"'(|(entrydn=ou=people,dc=local)(entrydn=ou=groups,dc=local)(entrydn=ou=services,dc=local))'")
|
|
|
|
|
|
assert entry.rc == 0
|
|
|
assert parse_ldif(entry.stdout) == expected_entries
|
|
|
|
|
|
|
|
|
def test_mail_service_entries(host):
|
|
@@ -134,29 +141,23 @@ def test_mail_service_entries(host):
|
|
|
|
|
|
with host.sudo():
|
|
|
|
|
|
entry = host.run('ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s base -b ou=mail,ou=services,dc=local')
|
|
|
assert entry.rc == 0
|
|
|
assert entry.stdout == """dn: ou=mail,ou=services,dc=local
|
|
|
expected_entries = parse_ldif("""
|
|
|
dn: ou=mail,ou=services,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: mail
|
|
|
|
|
|
"""
|
|
|
dn: ou=aliases,ou=mail,ou=services,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: aliases
|
|
|
|
|
|
entry = host.run('ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s base -b ou=domains,ou=mail,ou=services,dc=local')
|
|
|
assert entry.rc == 0
|
|
|
assert entry.stdout == """dn: ou=domains,ou=mail,ou=services,dc=local
|
|
|
dn: ou=domains,ou=mail,ou=services,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: domains
|
|
|
""")
|
|
|
|
|
|
"""
|
|
|
|
|
|
entry = host.run('ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s base -b ou=aliases,ou=mail,ou=services,dc=local')
|
|
|
entry = host.run('ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -b ou=mail,ou=services,dc=local')
|
|
|
assert entry.rc == 0
|
|
|
assert entry.stdout == """dn: ou=aliases,ou=mail,ou=services,dc=local
|
|
|
objectClass: organizationalUnit
|
|
|
ou: aliases
|
|
|
|
|
|
"""
|
|
|
assert parse_ldif(entry.stdout) == expected_entries
|
|
|
|
|
|
|
|
|
def test_firewall_configuration_file(host):
|