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

Reply via email to