URL: https://github.com/freeipa/freeipa/pull/1022 Author: felipevolpone Title: #1022: Backport PR 989 to ipa-4-5 Action: opened
PR body: """ This PR was opened automatically because PR #989 was pushed to master and backport to ipa-4-5 is required. """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/1022/head:pr1022 git checkout pr1022
From 3c0f36477fe45d695b48259a06b8d35c7e7fffe0 Mon Sep 17 00:00:00 2001 From: Felipe Volpone <fbarr...@redhat.com> Date: Wed, 30 Aug 2017 14:13:38 -0300 Subject: [PATCH] Removing part of circular dependency of ipalib in ipaplaform After commit cac3475, ipa-backup is broken due to circular dependencies. This fixes it, removing circular dependency of ipalib. The ipalib.constants.IPAAPI_USER is now passed as parameter to the function that use it. https://pagure.io/freeipa/issue/7108 --- ipaplatform/base/tasks.py | 2 +- ipaplatform/redhat/tasks.py | 11 ++++------- ipaserver/install/httpinstance.py | 3 ++- ipaserver/install/server/install.py | 6 +++--- ipaserver/install/server/replicainstall.py | 2 +- ipaserver/install/server/upgrade.py | 3 ++- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/ipaplatform/base/tasks.py b/ipaplatform/base/tasks.py index 3358b7d257..1ec93e053f 100644 --- a/ipaplatform/base/tasks.py +++ b/ipaplatform/base/tasks.py @@ -203,7 +203,7 @@ def configure_tmpfiles(self): """Configure tmpfiles to be created at boot""" raise NotImplementedError() - def create_tmpfiles_dirs(self): + def create_tmpfiles_dirs(self, ipaapi_user): """Create run dirs for the install phase""" raise NotImplementedError() diff --git a/ipaplatform/redhat/tasks.py b/ipaplatform/redhat/tasks.py index 07efebab97..560f83d1c3 100644 --- a/ipaplatform/redhat/tasks.py +++ b/ipaplatform/redhat/tasks.py @@ -50,9 +50,6 @@ from ipaplatform.redhat.authconfig import RedHatAuthConfig from ipaplatform.base.tasks import BaseTaskNamespace -# pylint: disable=ipa-forbidden-import -from ipalib.constants import IPAAPI_USER -# pylint: enable=ipa-forbidden-import _ffi = FFI() _ffi.cdef(""" @@ -460,7 +457,7 @@ def configure_httpd_service_ipa_conf(self): ipautil.run([paths.SYSTEMCTL, "--system", "daemon-reload"], raiseonerr=False) - def configure_http_gssproxy_conf(self): + def configure_http_gssproxy_conf(self, ipaapi_user): ipautil.copy_template_file( os.path.join(paths.USR_SHARE_IPA_DIR, 'gssproxy.conf.template'), paths.GSSPROXY_CONF, @@ -468,7 +465,7 @@ def configure_http_gssproxy_conf(self): HTTP_KEYTAB=paths.HTTP_KEYTAB, HTTP_CCACHE=paths.HTTP_CCACHE, HTTPD_USER=constants.HTTPD_USER, - IPAAPI_USER=IPAAPI_USER, + IPAAPI_USER=ipaapi_user, ) ) @@ -523,9 +520,9 @@ def _create_tmpfiles_dir(self, name, mode, uid, gid): os.chmod(name, mode) os.chown(name, uid, gid) - def create_tmpfiles_dirs(self): + def create_tmpfiles_dirs(self, ipaapi_user): parent = os.path.dirname(paths.IPA_CCACHES) - pent = pwd.getpwnam(IPAAPI_USER) + pent = pwd.getpwnam(ipaapi_user) self._create_tmpfiles_dir(parent, 0o711, 0, 0) self._create_tmpfiles_dir(paths.IPA_CCACHES, 0o770, pent.pw_uid, pent.pw_gid) diff --git a/ipaserver/install/httpinstance.py b/ipaserver/install/httpinstance.py index f637b97db8..50a1069ce0 100644 --- a/ipaserver/install/httpinstance.py +++ b/ipaserver/install/httpinstance.py @@ -46,6 +46,7 @@ import ipapython.errors from ipaserver.install import sysupgrade from ipalib import api +from ipalib.constants import IPAAPI_USER from ipaplatform.constants import constants from ipaplatform.tasks import tasks from ipaplatform.paths import paths @@ -238,7 +239,7 @@ def __configure_http(self): os.chmod(target_fname, 0o644) def configure_gssproxy(self): - tasks.configure_http_gssproxy_conf() + tasks.configure_http_gssproxy_conf(IPAAPI_USER) services.knownservices.gssproxy.restart() def change_mod_nss_port_from_http(self): diff --git a/ipaserver/install/server/install.py b/ipaserver/install/server/install.py index dced253e7f..97cbc6d8c8 100644 --- a/ipaserver/install/server/install.py +++ b/ipaserver/install/server/install.py @@ -24,7 +24,7 @@ from ipaplatform.paths import paths from ipaplatform.tasks import tasks from ipalib import api, errors, x509 -from ipalib.constants import DOMAIN_LEVEL_0 +from ipalib.constants import DOMAIN_LEVEL_0, IPAAPI_USER from ipalib.util import ( validate_domain_name, no_matching_interface_for_ip_address_warning, @@ -721,7 +721,7 @@ def install(installer): update_hosts_file(ip_addresses, host_name, fstore) # Make sure tmpfiles dir exist before installing components - tasks.create_tmpfiles_dirs() + tasks.create_tmpfiles_dirs(IPAAPI_USER) # Create a directory server instance if not options.external_cert_files: @@ -1050,7 +1050,7 @@ def uninstall(installer): # further steps assumes that temporary directories exists so rather # ensure they are created - tasks.create_tmpfiles_dirs() + tasks.create_tmpfiles_dirs(IPAAPI_USER) print("Shutting down all IPA services") try: diff --git a/ipaserver/install/server/replicainstall.py b/ipaserver/install/server/replicainstall.py index 814925de15..ca5b7e02ac 100644 --- a/ipaserver/install/server/replicainstall.py +++ b/ipaserver/install/server/replicainstall.py @@ -1354,7 +1354,7 @@ def install(installer): ccache = os.environ['KRB5CCNAME'] # Make sure tmpfiles dir exist before installing components - tasks.create_tmpfiles_dirs() + tasks.create_tmpfiles_dirs(constants.IPAAPI_USER) if promote: if installer._add_to_ipaservers: diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py index 732776f2cf..479d4ea122 100644 --- a/ipaserver/install/server/upgrade.py +++ b/ipaserver/install/server/upgrade.py @@ -24,6 +24,7 @@ import SSSDConfig import ipalib.util import ipalib.errors +from ipalib import constants as ipalib_constants from ipaclient.install.client import sssd_enable_service from ipaplatform import services from ipaplatform.tasks import tasks @@ -1881,7 +1882,7 @@ def upgrade_check(options): def upgrade(): # Do this early so that any code depending on these dirs will not fail - tasks.create_tmpfiles_dirs() + tasks.create_tmpfiles_dirs(ipalib_constants.IPAAPI_USER) tasks.configure_tmpfiles() realm = api.env.realm
_______________________________________________ FreeIPA-devel mailing list -- freeipa-devel@lists.fedorahosted.org To unsubscribe send an email to freeipa-devel-le...@lists.fedorahosted.org