URL: https://github.com/freeipa/freeipa/pull/989 Author: felipevolpone Title: #989: Removing part of circular dependency of ipaplatformin ipalib Action: opened
PR body: """ After commit cac3475a0454b730d6e5b2093c2e63d395acd387, 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 functions that use it. https://pagure.io/freeipa/issue/7108 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/989/head:pr989 git checkout pr989
From 6d4d51faf1c8afde6886c9d38f95ceaedb71328f Mon Sep 17 00:00:00 2001 From: Felipe Volpone <fbarr...@redhat.com> Date: Fri, 18 Aug 2017 15:48:45 -0300 Subject: [PATCH] Removing part of circular dependency of ipaplatformin ipalib 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 functions that use it. https://pagure.io/freeipa/issue/7108 --- ipaplatform/base/tasks.py | 2 +- ipaplatform/redhat/tasks.py | 12 ++++-------- 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(+), 15 deletions(-) diff --git a/ipaplatform/base/tasks.py b/ipaplatform/base/tasks.py index 4175ea261a..e8766fdb81 100644 --- a/ipaplatform/base/tasks.py +++ b/ipaplatform/base/tasks.py @@ -204,7 +204,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 d98f8c1691..3996c64be0 100644 --- a/ipaplatform/redhat/tasks.py +++ b/ipaplatform/redhat/tasks.py @@ -49,10 +49,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 - logger = logging.getLogger(__name__) _ffi = FFI() @@ -455,7 +451,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, @@ -463,7 +459,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, ) ) @@ -518,9 +514,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 0b67d6093c..b8afc41734 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 @@ -233,7 +234,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 a4e3d22b43..a946883946 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, @@ -723,7 +723,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: @@ -1052,7 +1052,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 6f3b2ace1b..bdd7a330fb 100644 --- a/ipaserver/install/server/replicainstall.py +++ b/ipaserver/install/server/replicainstall.py @@ -1356,7 +1356,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 5e1d74b79b..a3a93d6838 100644 --- a/ipaserver/install/server/upgrade.py +++ b/ipaserver/install/server/upgrade.py @@ -29,6 +29,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 @@ -1928,7 +1929,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