diff options
author | Martin Basti <mbasti@redhat.com> | 2014-09-01 10:49:28 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2014-10-21 12:23:03 +0200 |
commit | 78018dd67d28fd4c58dbfd68014907cb46f3eff1 (patch) | |
tree | 6ddff5f20d8ef99e5f483a4c47773b981ae5ec29 /ipaplatform | |
parent | b6b19e0cb84e0cf3ca9040ff650a0caa8620e49e (diff) | |
download | freeipa-78018dd67d28fd4c58dbfd68014907cb46f3eff1.tar.gz freeipa-78018dd67d28fd4c58dbfd68014907cb46f3eff1.tar.xz freeipa-78018dd67d28fd4c58dbfd68014907cb46f3eff1.zip |
Add mask, unmask methods for service
This patch allows mask and unmask services in IPA
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipaplatform')
-rw-r--r-- | ipaplatform/base/services.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ipaplatform/base/services.py b/ipaplatform/base/services.py index ea066b283..4861a5a4b 100644 --- a/ipaplatform/base/services.py +++ b/ipaplatform/base/services.py @@ -134,12 +134,21 @@ class PlatformService(object): def is_enabled(self, instance_name=""): return False + def is_masked(self, instance_name=""): + return False + def enable(self, instance_name=""): return def disable(self, instance_name=""): return + def mask(self, instance_name=""): + return + + def unmask(self, instance_name=""): + return + def install(self, instance_name=""): return @@ -327,6 +336,21 @@ class SystemdService(PlatformService): enabled = False return enabled + def is_masked(self, instance_name=""): + masked = False + try: + (sout, serr, rcode) = ipautil.run( + [paths.SYSTEMCTL, + "is-enabled", + self.service_instance(instance_name)]) + + if rcode == 1 and sout == 'masked': + masked = True + + except ipautil.CalledProcessError: + pass + return masked + def enable(self, instance_name=""): if self.lib_path_exists is None: self.lib_path_exists = os.path.exists(self.lib_path) @@ -402,6 +426,18 @@ class SystemdService(PlatformService): else: self.__disable(instance_name) + def mask(self, instance_name=""): + if instance_name != "": + srv_tgt = os.path.join(paths.ETC_SYSTEMD_SYSTEM_DIR, instance_name) + # remove instance file or link before masking + if os.path.islink(srv_tgt): + os.unlink(srv_tgt) + + self.__mask(instance_name) + + def unmask(self, instance_name=""): + self.__unmask(instance_name) + def __enable(self, instance_name=""): try: ipautil.run([paths.SYSTEMCTL, "enable", @@ -416,6 +452,20 @@ class SystemdService(PlatformService): except ipautil.CalledProcessError: pass + def __mask(self, instance_name=""): + try: + ipautil.run([paths.SYSTEMCTL, "mask", + self.service_instance(instance_name)]) + except ipautil.CalledProcessError: + pass + + def __unmask(self, instance_name=""): + try: + ipautil.run([paths.SYSTEMCTL, "unmask", + self.service_instance(instance_name)]) + except ipautil.CalledProcessError: + pass + def install(self): self.enable() |