diff options
| author | Christian Heimes <cheimes@redhat.com> | 2017-03-20 11:36:24 +0100 |
|---|---|---|
| committer | Tomas Krizek <tkrizek@redhat.com> | 2017-03-22 13:42:04 +0100 |
| commit | 8867412adc0ffd0cacf555a5c3693e04074fed5b (patch) | |
| tree | 607720cae7c57563d3e2b780596dbd6677ae0dd1 /ipatests/pytest_plugins | |
| parent | 313ae46b573b4cac1075dc1b5bd7294424fabfdb (diff) | |
Move hosts module to ipatests.pytest_plugins.integration.hosts
https://pagure.io/freeipa/issue/6798
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Milan Kubik <mkubik@redhat.com>
Diffstat (limited to 'ipatests/pytest_plugins')
| -rw-r--r-- | ipatests/pytest_plugins/integration/config.py | 2 | ||||
| -rw-r--r-- | ipatests/pytest_plugins/integration/host.py | 70 | ||||
| -rw-r--r-- | ipatests/pytest_plugins/integration/tasks.py | 2 |
3 files changed, 72 insertions, 2 deletions
diff --git a/ipatests/pytest_plugins/integration/config.py b/ipatests/pytest_plugins/integration/config.py index 94c833d8e..3d026e340 100644 --- a/ipatests/pytest_plugins/integration/config.py +++ b/ipatests/pytest_plugins/integration/config.py @@ -120,7 +120,7 @@ class Domain(pytest_multihost.config.Domain): raise LookupError(self.type) def get_host_class(self, host_dict): - from ipatests.test_integration.host import Host, WinHost + from ipatests.pytest_plugins.integration.host import Host, WinHost if self.type == 'IPA': return Host diff --git a/ipatests/pytest_plugins/integration/host.py b/ipatests/pytest_plugins/integration/host.py new file mode 100644 index 000000000..45a2ea286 --- /dev/null +++ b/ipatests/pytest_plugins/integration/host.py @@ -0,0 +1,70 @@ +# Authors: +# Petr Viktorin <pviktori@redhat.com> +# +# Copyright (C) 2013 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +"""Host class for integration testing""" + +import pytest_multihost.host + +from ipapython import ipaldap + + +class Host(pytest_multihost.host.Host): + """Representation of a remote IPA host""" + + @staticmethod + def _make_host(domain, hostname, role, ip, external_hostname): + # We need to determine the type of the host, this depends on the domain + # type, as we assume all Unix machines are in the Unix domain and + # all Windows machine in a AD domain + + if domain.type == 'AD': + cls = WinHost + else: + cls = Host + + return cls(domain, hostname, role, ip, external_hostname) + + def ldap_connect(self): + """Return an LDAPClient authenticated to this host as directory manager + """ + self.log.info('Connecting to LDAP at %s', self.external_hostname) + ldap_uri = ipaldap.get_ldap_uri(self.external_hostname) + ldap = ipaldap.LDAPClient(ldap_uri) + binddn = self.config.dirman_dn + self.log.info('LDAP bind as %s' % binddn) + ldap.simple_bind(binddn, self.config.dirman_password) + return ldap + + @classmethod + def from_env(cls, env, domain, hostname, role, index, domain_index): + from ipatests.pytest_plugins.integration.env_config import host_from_env + return host_from_env(env, domain, hostname, role, index, domain_index) + + def to_env(self, **kwargs): + from ipatests.pytest_plugins.integration.env_config import host_to_env + return host_to_env(self, **kwargs) + + +class WinHost(pytest_multihost.host.WinHost): + """ + Representation of a remote Windows host. + + This serves as a sketch class once we move from manual preparation of + Active Directory to the automated setup. + """ diff --git a/ipatests/pytest_plugins/integration/tasks.py b/ipatests/pytest_plugins/integration/tasks.py index f92ab5e02..d95354924 100644 --- a/ipatests/pytest_plugins/integration/tasks.py +++ b/ipatests/pytest_plugins/integration/tasks.py @@ -38,7 +38,7 @@ from ipapython.dn import DN from ipapython.ipa_log_manager import log_mgr from ipatests.test_integration import util from ipatests.pytest_plugins.integration.env_config import env_to_script -from ipatests.test_integration.host import Host +from ipatests.pytest_plugins.integration.host import Host from ipalib import errors from ipalib.util import get_reverse_zone_default, verify_host_resolvable from ipalib.constants import DOMAIN_SUFFIX_NAME |
