From 3b4ab8b4f224db67613544923a608c51ad476748 Mon Sep 17 00:00:00 2001 From: Tomas Babej Date: Mon, 9 Jun 2014 13:45:48 +0200 Subject: ipaplatform: Move hardcoded paths from Fedora platform files to path namespace Part of: https://fedorahosted.org/freeipa/ticket/4052 Reviewed-By: Petr Viktorin --- ipaplatform/base/paths.py | 7 +++++++ ipaplatform/base/services.py | 30 ++++++++++++++---------------- 2 files changed, 21 insertions(+), 16 deletions(-) (limited to 'ipaplatform/base') diff --git a/ipaplatform/base/paths.py b/ipaplatform/base/paths.py index ac7d274cc..ed7150ed8 100644 --- a/ipaplatform/base/paths.py +++ b/ipaplatform/base/paths.py @@ -86,15 +86,19 @@ class BasePathNamespace(object): SSSD_CONF = "/etc/sssd/sssd.conf" ETC_SYSCONFIG_AUTHCONFIG = "/etc/sysconfig/authconfig" SYSCONFIG_DIRSRV = "/etc/sysconfig/dirsrv" + SYSCONFIG_DIRSRV_SYSTEMD = "/etc/sysconfig/dirsrv.systemd" SYSCONFIG_DIRSRV_INSTANCE = "/etc/sysconfig/dirsrv-%s" SYSCONFIG_DIRSRV_PKI_IPA_DIR = "/etc/sysconfig/dirsrv-PKI-IPA" SYSCONFIG_KRB5KDC_DIR = "/etc/sysconfig/krb5kdc" + SYSCONFIG_NETWORK = "/etc/sysconfig/network" + SYSCONFIG_NETWORK_IPABKP = "/etc/sysconfig/network.ipabkp" SYSCONFIG_NTPD = "/etc/sysconfig/ntpd" SYSCONFIG_PKI = "/etc/sysconfig/pki" SYSCONFIG_PKI_CA_DIR = "/etc/sysconfig/pki-ca" SYSCONFIG_PKI_TOMCAT = "/etc/sysconfig/pki-tomcat" SYSCONFIG_PKI_CA_PKI_CA_DIR = "/etc/sysconfig/pki/ca/pki-ca" SYSCONFIG_PKI_TOMCAT_PKI_TOMCAT_DIR = "/etc/sysconfig/pki/tomcat/pki-tomcat" + ETC_SYSTEMD_SYSTEM_DIR = "/etc/systemd/system/" SYSTEMD_CERTMONGER_SERVICE = "/etc/systemd/system/multi-user.target.wants/certmonger.service" SYSTEMD_IPA_SERVICE = "/etc/systemd/system/multi-user.target.wants/ipa.service" SYSTEMD_SSSD_SERVICE = "/etc/systemd/system/multi-user.target.wants/sssd.service" @@ -106,6 +110,7 @@ class BasePathNamespace(object): ROOT_TMP_CA_P12 = "/root/tmp-ca.p12" IP = "/sbin/ip" NOLOGIN = "/sbin/nologin" + SBIN_RESTORECON = "/sbin/restorecon" SBIN_SERVICE = "/sbin/service" TMP = "/tmp" TMP_CA_P12 = "/tmp/ca.p12" @@ -135,6 +140,7 @@ class BasePathNamespace(object): SETPASSWD = "/usr/bin/setpasswd" SIGNTOOL = "/usr/bin/signtool" SSLGET = "/usr/bin/sslget" + UPDATE_CA_TRUST = "/usr/bin/update-ca-trust" ZIP = "/usr/bin/zip" BIND_LDAP_SO = "/usr/lib/bind/ldap.so" USR_LIB_DIRSRV = "/usr/lib/dirsrv" @@ -144,6 +150,7 @@ class BasePathNamespace(object): BIND_LDAP_SO_64 = "/usr/lib64/bind/ldap.so" USR_LIB_DIRSRV_64 = "/usr/lib64/dirsrv" USR_LIB_DIRSRV_SLAPD_INSTANCE_DIR_TEMPLATE = "/usr/lib64/dirsrv/slapd-%s" + LIB_SYSTEMD_SYSTEMD_DIR = "/usr/lib/systemd/system/" SLAPD_PKI_IPA = "/usr/lib64/dirsrv/slapd-PKI-IPA" LIB64_FIREFOX = "/usr/lib64/firefox" DOGTAG_IPA_CA_RENEW_AGENT_SUBMIT = "/usr/libexec/certmonger/dogtag-ipa-ca-renew-agent-submit" diff --git a/ipaplatform/base/services.py b/ipaplatform/base/services.py index 625bd0dc5..ea066b283 100644 --- a/ipaplatform/base/services.py +++ b/ipaplatform/base/services.py @@ -151,14 +151,12 @@ class PlatformService(object): class SystemdService(PlatformService): - SYSTEMD_ETC_PATH = "/etc/systemd/system/" - SYSTEMD_LIB_PATH = "/lib/systemd/system/" SYSTEMD_SRV_TARGET = "%s.target.wants" def __init__(self, service_name, systemd_name, **kwargs): super(SystemdService, self).__init__(service_name, **kwargs) self.systemd_name = systemd_name - self.lib_path = os.path.join(self.SYSTEMD_LIB_PATH, self.systemd_name) + self.lib_path = os.path.join(paths.LIB_SYSTEMD_SYSTEMD_DIR, self.systemd_name) self.lib_path_exists = None def service_instance(self, instance_name, operation=None): @@ -192,7 +190,7 @@ class SystemdService(PlatformService): else: # No instance name, try with target tgt_name = "%s.target" % (elements[0]) - srv_lib = os.path.join(self.SYSTEMD_LIB_PATH, tgt_name) + srv_lib = os.path.join(paths.LIB_SYSTEMD_SYSTEMD_DIR, tgt_name) if os.path.exists(srv_lib): return tgt_name @@ -231,7 +229,7 @@ class SystemdService(PlatformService): def stop(self, instance_name="", capture_output=True): instance = self.service_instance(instance_name) - args = ["/bin/systemctl", "stop", instance] + args = [paths.SYSTEMCTL, "stop", instance] # The --ignore-dependencies switch is used to avoid possible # deadlock during the shutdown transaction. For more details, see @@ -251,7 +249,7 @@ class SystemdService(PlatformService): update_service_list=update_service_list) def start(self, instance_name="", capture_output=True, wait=True): - ipautil.run(["/bin/systemctl", "start", + ipautil.run([paths.SYSTEMCTL, "start", self.service_instance(instance_name)], capture_output=capture_output) @@ -267,7 +265,7 @@ class SystemdService(PlatformService): update_service_list=update_service_list) def restart(self, instance_name="", capture_output=True, wait=True): - ipautil.run(["/bin/systemctl", "restart", + ipautil.run([paths.SYSTEMCTL, "restart", self.service_instance(instance_name)], capture_output=capture_output) @@ -280,7 +278,7 @@ class SystemdService(PlatformService): while True: try: (sout, serr, rcode) = ipautil.run( - ["/bin/systemctl", "is-active", instance], + [paths.SYSTEMCTL, "is-active", instance], capture_output=True ) except ipautil.CalledProcessError as e: @@ -299,7 +297,7 @@ class SystemdService(PlatformService): def is_installed(self): try: - (sout, serr, rcode) = ipautil.run(["/bin/systemctl", + (sout, serr, rcode) = ipautil.run([paths.SYSTEMCTL, "list-unit-files", "--full"]) if rcode != 0: @@ -318,7 +316,7 @@ class SystemdService(PlatformService): enabled = True try: (sout, serr, rcode) = ipautil.run( - ["/bin/systemctl", + [paths.SYSTEMCTL, "is-enabled", self.service_instance(instance_name)]) @@ -355,7 +353,7 @@ class SystemdService(PlatformService): # @.service to # /lib/systemd/system/@.service - srv_tgt = os.path.join(self.SYSTEMD_ETC_PATH, + srv_tgt = os.path.join(paths.ETC_SYSTEMD_SYSTEM_DIR, self.SYSTEMD_SRV_TARGET % (elements[0])) srv_lnk = os.path.join(srv_tgt, self.service_instance(instance_name)) @@ -375,7 +373,7 @@ class SystemdService(PlatformService): # Link exists and it is broken, make new one os.unlink(srv_lnk) os.symlink(self.lib_path, srv_lnk) - ipautil.run(["/bin/systemctl", "--system", "daemon-reload"]) + ipautil.run([paths.SYSTEMCTL, "--system", "daemon-reload"]) except: pass else: @@ -389,7 +387,7 @@ class SystemdService(PlatformService): # @.service # to /lib/systemd/system/@.service - srv_tgt = os.path.join(self.SYSTEMD_ETC_PATH, + srv_tgt = os.path.join(paths.ETC_SYSTEMD_SYSTEM_DIR, self.SYSTEMD_SRV_TARGET % (elements[0])) srv_lnk = os.path.join(srv_tgt, self.service_instance(instance_name)) @@ -398,7 +396,7 @@ class SystemdService(PlatformService): if ipautil.dir_exists(srv_tgt): if os.path.islink(srv_lnk): os.unlink(srv_lnk) - ipautil.run(["/bin/systemctl", "--system", "daemon-reload"]) + ipautil.run([paths.SYSTEMCTL, "--system", "daemon-reload"]) except: pass else: @@ -406,14 +404,14 @@ class SystemdService(PlatformService): def __enable(self, instance_name=""): try: - ipautil.run(["/bin/systemctl", "enable", + ipautil.run([paths.SYSTEMCTL, "enable", self.service_instance(instance_name)]) except ipautil.CalledProcessError: pass def __disable(self, instance_name=""): try: - ipautil.run(["/bin/systemctl", "disable", + ipautil.run([paths.SYSTEMCTL, "disable", self.service_instance(instance_name)]) except ipautil.CalledProcessError: pass -- cgit