conftest.py revision 8a53449ad0353d5c18296b79b52a2a7b957f6421
7cb128dc4cae2a03a742f63ba7afee23c78e3af0Phil Carmodyfrom sssd.testlib.common.qe_class import session_multihost, create_testdir
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainenfrom sssd.testlib.common.libkrb5 import krb5srv
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainenfrom sssd.testlib.common.utils import sssdTools, PkiTools
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainenfrom sssd.testlib.common.libdirsrv import DirSrvWrap
65cca8364f483126b396aeb2036dc879ad45ab8dTimo Sirainenfrom sssd.testlib.common.exceptions import PkiLibException
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainenfrom sssd.testlib.common.authconfig import RedHatAuthConfig
472369cba85d9f7c995dda60e7cd01d78b4a960aTimo Sirainenfrom sssd.testlib.common.utils import LdapOperations
1bf1a24a902d5861f577df3d39e27b373b12c719Timo Sirainendef config_authconfig(session_multihost, request):
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen """ Run authconfig to configure Kerberos and SSSD auth on remote host """
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen authconfig = RedHatAuthConfig(session_multihost.master[0])
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].log.info("Take backup of current authconfig")
1bf1a24a902d5861f577df3d39e27b373b12c719Timo Sirainen kerberos_server = session_multihost.master[0].sys_hostname
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen authconfig.add_parameter("krb5kdc", kerberos_server)
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen authconfig.add_parameter("krb5adminserver", kerberos_server)
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen authconfig.add_parameter("krb5realm", krbrealm)
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen """ Restore authconfig """
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen serverList = [session_multihost.master[0].sys_hostname]
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen certdb = pki_inst.createselfsignedcerts(serverList)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainendef setup_ldap(session_multihost, nssdir, request):
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen ds_obj = DirSrvWrap(session_multihost.master[0], ssl=True, ssldb=nssdir)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen ds_obj.create_ds_instance('example1', 'dc=example,dc=test')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainendef setup_kerberos(session_multihost, request):
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen tools = sssdTools(session_multihost.master[0])
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen krb = krb5srv(session_multihost.master[0], 'EXAMPLE.TEST')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen ldap_uri = 'ldap://%s' % (session_multihost.master[0].sys_hostname)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen krb5_server = session_multihost.master[0].sys_hostname
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen cacert_loc = '/etc/openldap/cacerts/cacert.pem'
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set('sssd', 'domains', 'EXAMPLE.TEST')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set('sssd', 'config_file_version', '2')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set('sssd', 'services', 'nss, pam, ifp')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set(domain_section, 'enumerate', 'false')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set(domain_section, 'id_provider', 'ldap')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set(domain_section, 'ldap_uri', ldap_uri)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.set(domain_section, 'ldap_search_base', 'dc=example,dc=test')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set(domain_section, 'ldap_tls_cacert', cacert_loc)
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set(domain_section, 'auth_provider', 'krb5')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set(domain_section, 'krb5_server', krb5_server)
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set(domain_section, 'krb5_kpasswd', krb5_server)
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set(domain_section, 'krb5_realm', 'EXAMPLE.TEST')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set(domain_section, 'debug_level', '9')
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen temp_fd, temp_file_path = tempfile.mkstemp(suffix='conf', prefix='sssd')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].transport.put_file(temp_file_path,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].run_command(chg_perm)
db8b0a3f74a20528d66a3c4be7df920e5c4554c2Timo Sirainen session_multihost.master[0].service_sssd('restart')
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen journalctl_cmd = "journalctl -x -n 50 --no-pager"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen session_multihost.master[0].run_command(journalctl_cmd)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen tools = sssdTools(session_multihost.master[0])
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].run_command(['systemctl', 'start', 'sssd-kcm'])
1701e3f91107051b1704721bf1dc1e32491faaf9Timo Sirainen session_multihost.master[0].service_sssd('stop')
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen session_multihost.master[0].run_command(['systemctl',
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen sssd_cache = ['cache_%s.ldb' % ('EXAMPLE.TEST'), 'config.ldb',
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen 'sssd.ldb', 'timestamps_%s.ldb' % ('EXAMPLE.TEST')]
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen session_multihost.master[0].run_command(['rm', '-f', db_file])
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen secrets_db = '/var/lib/sss/secrets/secrets.ldb'
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen session_multihost.master[0].run_command(['rm', '-f', secrets_db])
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainendef create_posix_usersgroups(session_multihost):
1701e3f91107051b1704721bf1dc1e32491faaf9Timo Sirainen ldap_uri = 'ldap://%s' % (session_multihost.master[0].sys_hostname)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ldap_inst = LdapOperations(ldap_uri, ds_rootdn, ds_rootpw)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen krb = krb5srv(session_multihost.master[0], 'EXAMPLE.TEST')
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen if ldap_inst.posix_user("ou=People", "dc=example,dc=test", user_info):
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen krb.add_principal('foo%d' % i, 'user', 'Secret123')
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen print("Unable to add ldap User %s" % (user_info))
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen memberdn = 'uid=%s,ou=People,dc=example,dc=test' % ('foo0')
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen ldap_inst.posix_group("ou=Groups", "dc=example,dc=test", group_info)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen group_dn = 'cn=ldapusers,ou=Groups,dc=example,dc=test'
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen user_dn = 'uid=foo%d,ou=People,dc=example,dc=test' % i
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen add_member = [(ldap.MOD_ADD, 'uniqueMember', user_dn)]
5214b67a7dabab87da74e04bb8b227f94b95bce4Timo Sirainen (ret, _) = ldap_inst.modify_ldap(group_dn, add_member)
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen print("\n............Session Setup...............")
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen reqd_packages = '389-ds-base authconfig krb5-server krb5-workstation '\
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen 'sssd-kcm openldap-clients'
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen install_cmd = 'dnf -y install %s' % reqd_packages
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen self.multihost.master[0].run_command(install_cmd)
e5acc283bf030b0b5c79ca4e52d315c516a299faPascal Volk print("\n............Session Ends.................")