diff options
author | Christian Heimes <cheimes@redhat.com> | 2017-03-21 16:33:34 +0100 |
---|---|---|
committer | Tomas Krizek <tkrizek@redhat.com> | 2017-03-22 13:42:04 +0100 |
commit | 24161a619049e0fb3b954592f64ee6d561320d2c (patch) | |
tree | ab17ea01c2f8bec7bc6dd2e2773e7b6934e77d46 | |
parent | 5587a37e2345de4e76813e00f4b2751d24c618fc (diff) | |
download | freeipa-24161a619049e0fb3b954592f64ee6d561320d2c.tar.gz freeipa-24161a619049e0fb3b954592f64ee6d561320d2c.tar.xz freeipa-24161a619049e0fb3b954592f64ee6d561320d2c.zip |
Move remaining util functions to tasks module
https://pagure.io/freeipa/issue/6798
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Milan Kubik <mkubik@redhat.com>
-rw-r--r-- | ipatests/pytest_plugins/integration/tasks.py | 37 | ||||
-rw-r--r-- | ipatests/test_integration/test_sudo.py | 7 | ||||
-rw-r--r-- | ipatests/test_integration/test_trust.py | 5 | ||||
-rw-r--r-- | ipatests/test_integration/util.py | 50 |
4 files changed, 38 insertions, 61 deletions
diff --git a/ipatests/pytest_plugins/integration/tasks.py b/ipatests/pytest_plugins/integration/tasks.py index 3e06c85b6..382028a74 100644 --- a/ipatests/pytest_plugins/integration/tasks.py +++ b/ipatests/pytest_plugins/integration/tasks.py @@ -36,12 +36,14 @@ from ipapython import ipautil from ipaplatform.paths import paths from ipapython.dn import DN from ipapython.ipa_log_manager import log_mgr -from ipatests.pytest_plugins.integration.env_config import env_to_script -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 -from ipalib.constants import DOMAIN_LEVEL_0 +from ipalib.constants import ( + DEFAULT_CONFIG, DOMAIN_SUFFIX_NAME, DOMAIN_LEVEL_0) + +from .env_config import env_to_script +from .host import Host + log = log_mgr.get_logger(__name__) @@ -1285,3 +1287,30 @@ def run_repeatedly(host, command, assert_zero_rc=True, test=None, .format(cmd=' '.join(command), times=timeout // time_step, timeout=timeout)) + + +def get_host_ip_with_hostmask(host): + """ + Detects the IP of the host including the hostmask. + + Returns None if the IP could not be detected. + """ + + ip = host.ip + result = host.run_command(['ip', 'addr']) + full_ip_regex = r'(?P<full_ip>%s/\d{1,2}) ' % re.escape(ip) + match = re.search(full_ip_regex, result.stdout_text) + + if match: + return match.group('full_ip') + + +def ldappasswd_user_change(user, oldpw, newpw, master): + container_user = dict(DEFAULT_CONFIG)['container_user'] + basedn = master.domain.basedn + + userdn = "uid={},{},{}".format(user, container_user, basedn) + + args = [paths.LDAPPASSWD, '-D', userdn, '-w', oldpw, '-a', oldpw, + '-s', newpw, '-x'] + master.run_command(args) diff --git a/ipatests/test_integration/test_sudo.py b/ipatests/test_integration/test_sudo.py index 37d0df8ae..aa4f11c76 100644 --- a/ipatests/test_integration/test_sudo.py +++ b/ipatests/test_integration/test_sudo.py @@ -21,8 +21,7 @@ import pytest from ipatests.test_integration.base import IntegrationTest from ipatests.pytest_plugins.integration.tasks import ( - clear_sssd_cache, modify_sssd_conf) -from ipatests.test_integration import util + clear_sssd_cache, get_host_ip_with_hostmask, modify_sssd_conf) class TestSudo(IntegrationTest): @@ -299,7 +298,7 @@ class TestSudo(IntegrationTest): def test_sudo_rule_restricted_to_one_hostmask_setup(self): # We need to detect the hostmask first - full_ip = util.get_host_ip_with_hostmask(self.client) + full_ip = get_host_ip_with_hostmask(self.client) # Make a note for the next test, which needs to be skipped # if hostmask detection failed @@ -342,7 +341,7 @@ class TestSudo(IntegrationTest): raise pytest.skip("Hostmask could not be detected") # Detect the hostmask first to delete the hostmask based rule - full_ip = util.get_host_ip_with_hostmask(self.client) + full_ip = get_host_ip_with_hostmask(self.client) # Remove the client's hostmask from the rule self.master.run_command(['ipa', '-n', 'sudorule-remove-host', diff --git a/ipatests/test_integration/test_trust.py b/ipatests/test_integration/test_trust.py index 6a5dda8aa..f5648ec53 100644 --- a/ipatests/test_integration/test_trust.py +++ b/ipatests/test_integration/test_trust.py @@ -22,7 +22,6 @@ import re from ipatests.test_integration.base import IntegrationTest from ipatests.pytest_plugins.integration import tasks -from ipatests.test_integration import util from ipaplatform.paths import paths @@ -189,8 +188,8 @@ class TestBasicADTrust(ADTrustBase): stdin_text=original_passwd) # change password for the user to be able to kinit - util.ldappasswd_user_change(ipauser, original_passwd, new_passwd, - self.master) + tasks.ldappasswd_user_change(ipauser, original_passwd, new_passwd, + self.master) # try to kinit as ipauser self.master.run_command( diff --git a/ipatests/test_integration/util.py b/ipatests/test_integration/util.py deleted file mode 100644 index b42111ec1..000000000 --- a/ipatests/test_integration/util.py +++ /dev/null @@ -1,50 +0,0 @@ -# Authors: -# Tomas Babej <tbabej@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/>. - -import re - -from ipaplatform.paths import paths -from ipalib.constants import DEFAULT_CONFIG - - -def get_host_ip_with_hostmask(host): - """ - Detects the IP of the host including the hostmask. - - Returns None if the IP could not be detected. - """ - - ip = host.ip - result = host.run_command(['ip', 'addr']) - full_ip_regex = r'(?P<full_ip>%s/\d{1,2}) ' % re.escape(ip) - match = re.search(full_ip_regex, result.stdout_text) - - if match: - return match.group('full_ip') - - -def ldappasswd_user_change(user, oldpw, newpw, master): - container_user = dict(DEFAULT_CONFIG)['container_user'] - basedn = master.domain.basedn - - userdn = "uid={},{},{}".format(user, container_user, basedn) - - args = [paths.LDAPPASSWD, '-D', userdn, '-w', oldpw, '-a', oldpw, - '-s', newpw, '-x'] - master.run_command(args) |