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
e28fa207d1a097fa6e4a867f74ee0761472ef1ceTimo Sirainenimport pytest
37847ec8eaec9ad55c9df10ae109efe7b37ac573Timo Sirainenimport ConfigParser
bd4e36a8cd7257cca7d1434c49a1e343ed7c5100Timo Sirainenimport os
adb6413686e52e00dded4932babcc08ff041876bTimo Sirainenimport tempfile
b1f37113a5760bee842c5a7678bb5fa6f5bd8b60Timo Sirainenimport ldap
1c1cecd3dfaf71b0c9499b044023e631841e88aaTimo Sirainen
94d8e51119003d2bc5a100c663f90141f297385dTimo Sirainen
9393445a6dabd17ce62ebfc12fd73545b0065824Timo Sirainendef pytest_namespace():
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen return {'num_masters': 1,
e28fa207d1a097fa6e4a867f74ee0761472ef1ceTimo Sirainen 'num_ad': 0,
37847ec8eaec9ad55c9df10ae109efe7b37ac573Timo Sirainen 'num_atomic': 0,
ef50336eefcb9ba99f73c6af37420eaf8857a39bTimo Sirainen 'num_replicas': 0,
d2e74f2af690b8e2d536400f02f397cbed1334b7Timo Sirainen 'num_clients': 0,
13d98ffa534f2e7d04a832c9d0153fc9c568b878Timo Sirainen 'num_others': 0}
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen@pytest.fixture(scope="class")
dc5606fb66d30a659459446b6ca1a8b4f1146052Timo Sirainendef multihost(session_multihost, request):
5694eeb99b69dea8033ca77ad69743c6b4871370Timo Sirainen return session_multihost
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
5694eeb99b69dea8033ca77ad69743c6b4871370Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen@pytest.fixture(scope="session")
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 authconfig.backup('/root/authconfig_backup')
1bf1a24a902d5861f577df3d39e27b373b12c719Timo Sirainen krbrealm = 'EXAMPLE.TEST'
1bf1a24a902d5861f577df3d39e27b373b12c719Timo Sirainen kerberos_server = session_multihost.master[0].sys_hostname
1bf1a24a902d5861f577df3d39e27b373b12c719Timo Sirainen authconfig.enable("sssd")
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen authconfig.enable("sssdauth")
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 authconfig.execute()
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen def restore_authconfig():
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen """ Restore authconfig """
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen authconfig.restore('/root/authconfig_backup')
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen request.addfinalizer(restore_authconfig)
220e21750948941dc6e33b8f11b552fa21d7f81eTimo Sirainen
4ee00532a265bdfb38539d811fcd12d51210ac35Timo Sirainen
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainen@pytest.fixture(scope="session")
697ff56bf3cdc9e7989ea2a70accf866b14b64d1Timo Sirainendef nssdir(session_multihost, request):
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen serverList = [session_multihost.master[0].sys_hostname]
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen pki_inst = PkiTools()
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen try:
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen certdb = pki_inst.createselfsignedcerts(serverList)
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen except PkiLibException as err:
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen return (err.msg, err.rval)
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen else:
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen return certdb
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen@pytest.fixture(scope="session")
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 Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen def remove_ldap():
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen ds_obj.remove_ds_instance('example1')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen request.addfinalizer(remove_ldap)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen@pytest.fixture(scope="session")
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainendef setup_kerberos(session_multihost, request):
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen tools = sssdTools(session_multihost.master[0])
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen tools.config_etckrb5('EXAMPLE.TEST')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen krb = krb5srv(session_multihost.master[0], 'EXAMPLE.TEST')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen krb.krb_setup_new()
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen def remove_kerberos():
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen krb.destroy_krb5server()
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen request.addfinalizer(remove_kerberos)
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen
8a0ad174adb1eb5108511b90e97f4e5f9089b0eeTimo Sirainen@pytest.fixture(scope='class', autouse=True)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainendef setup_sssd(session_multihost, request):
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen domain_section = 'domain/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 = ConfigParser.SafeConfigParser()
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.optionxform = str
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen sssdConfig.add_section('sssd')
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.add_section(domain_section)
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')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.add_section('nss')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set('nss', 'debug_level', '9')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.add_section('pam')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set('pam', 'debug_level', '9')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.add_section('secrets')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.set('secrets', 'debug_level', '9')
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen sssdConfig.add_section('kcm')
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen sssdConfig.set('kcm', 'debug_level', '9')
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen temp_fd, temp_file_path = tempfile.mkstemp(suffix='conf', prefix='sssd')
db8b0a3f74a20528d66a3c4be7df920e5c4554c2Timo Sirainen with open(temp_file_path, "wb") as outfile:
db8b0a3f74a20528d66a3c4be7df920e5c4554c2Timo Sirainen sssdConfig.write(outfile)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].transport.put_file(temp_file_path,
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen '/etc/sssd/sssd.conf')
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen chg_perm = 'chmod 600 /etc/sssd/sssd.conf'
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].run_command(chg_perm)
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen os.close(temp_fd)
db8b0a3f74a20528d66a3c4be7df920e5c4554c2Timo Sirainen try:
db8b0a3f74a20528d66a3c4be7df920e5c4554c2Timo Sirainen session_multihost.master[0].service_sssd('restart')
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen except Exception:
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen journalctl_cmd = "journalctl -x -n 50 --no-pager"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen session_multihost.master[0].run_command(journalctl_cmd)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen assert False
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen tools = sssdTools(session_multihost.master[0])
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen tools.enable_kcm()
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen session_multihost.master[0].run_command(['systemctl', 'start', 'sssd-kcm'])
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3Timo Sirainen def stop_sssd():
1701e3f91107051b1704721bf1dc1e32491faaf9Timo Sirainen session_multihost.master[0].service_sssd('stop')
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen session_multihost.master[0].run_command(['systemctl',
63e207529879438e9f4412d97cdc34bdc82a3702Timo Sirainen 'stop',
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen 'sssd-kcm'])
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen sssd_cache = ['cache_%s.ldb' % ('EXAMPLE.TEST'), 'config.ldb',
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen 'sssd.ldb', 'timestamps_%s.ldb' % ('EXAMPLE.TEST')]
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen for cache_file in sssd_cache:
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen db_file = '/var/lib/sss/db/%s' % (cache_file)
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])
2649b237dd4690575e75a30b2bf3b39ebd37b835Timo Sirainen request.addfinalizer(stop_sssd)
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen
a24519c36d5f8fa22f58b2c693ba547e8d175a54Timo Sirainen@pytest.fixture(scope='class', autouse=True)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainendef create_posix_usersgroups(session_multihost):
1701e3f91107051b1704721bf1dc1e32491faaf9Timo Sirainen ldap_uri = 'ldap://%s' % (session_multihost.master[0].sys_hostname)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ds_rootdn = 'cn=Directory Manager'
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ds_rootpw = 'Secret123'
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ldap_inst = LdapOperations(ldap_uri, ds_rootdn, ds_rootpw)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen krb = krb5srv(session_multihost.master[0], 'EXAMPLE.TEST')
76b91bac787101e6b0075122ab6478dd98c8a884Timo Sirainen for i in range(10):
76b91bac787101e6b0075122ab6478dd98c8a884Timo Sirainen user_info = {'cn': 'foo%d' % i,
76b91bac787101e6b0075122ab6478dd98c8a884Timo Sirainen 'uid': 'foo%d' % i,
3fe67ec75ccae1230bb9eb9f16affc48377f6441Timo Sirainen 'uidNumber': '1458310%d' % i,
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen 'gidNumber': '14564100'}
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 else:
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen print("Unable to add ldap User %s" % (user_info))
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen assert False
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen memberdn = 'uid=%s,ou=People,dc=example,dc=test' % ('foo0')
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen group_info = {'cn': 'ldapusers',
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen 'gidNumber': '14564100',
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen 'uniqueMember': memberdn}
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen try:
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen ldap_inst.posix_group("ou=Groups", "dc=example,dc=test", group_info)
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen except Exception:
2a6dcd984104fed84bed8795ccdfabb20e41ce52Timo Sirainen assert False
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen group_dn = 'cn=ldapusers,ou=Groups,dc=example,dc=test'
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen for i in range(1, 10):
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)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen assert ret == 'Success'
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
27586e4785d56aeb76e1fd96af8db799688dc64aTimo Sirainen@pytest.fixture(scope="session", autouse=True)
360123b1b41b7aa8af6c4a91c39046be646cd349Timo Sirainendef setup_session(request, session_multihost,
12b4dbf933ee54f7b96968ba150095baa985fdafTimo Sirainen config_authconfig,
12b4dbf933ee54f7b96968ba150095baa985fdafTimo Sirainen setup_ldap,
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen setup_kerberos):
5214b67a7dabab87da74e04bb8b227f94b95bce4Timo Sirainen tp = TestPrep(session_multihost)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen tp.setup()
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen def teardown_session():
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen tp.teardown()
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen request.addfinalizer(teardown_session)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainenclass TestPrep(object):
1c1cecd3dfaf71b0c9499b044023e631841e88aaTimo Sirainen def __init__(self, multihost):
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen self.multihost = multihost
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen
917498e6f84969d2b93410c1e479735abe8e0ed7Timo Sirainen def setup(self):
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)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62Timo Sirainen def teardown(self):
e5acc283bf030b0b5c79ca4e52d315c516a299faPascal Volk print("\n............Session Ends.................")
e5acc283bf030b0b5c79ca4e52d315c516a299faPascal Volk