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

Reply via email to