install-scripts: avoid using --list with chkconfig

This option does not behave properly in F15 as chkconfig does not list services
moved to use systemd service files.

Plus there are more direct ways than parsing its output, which are more
reliable.

Also just testing for the availability of the service calling 'chkconfig name'
is enough.

https://fedorahosted.org/freeipa/ticket/1206
This commit is contained in:
Simo Sorce 2011-05-04 10:21:27 -04:00 committed by Martin Kosek
parent a4aba826a0
commit d1fd695467
2 changed files with 2 additions and 24 deletions

View File

@ -169,12 +169,6 @@ def chkconfig(name, status):
chkconfig returns 1 if the service is unknown, 0 otherwise
"""
(sout, serr, returncode) = run(['/sbin/chkconfig', name, '--list'], raiseonerr=False)
# If the service isn't installed return with no error
if returncode == 1:
return
args = ['/sbin/chkconfig', name, status]
(sout, serr, returncode) = run(args, raiseonerr=False)

View File

@ -73,24 +73,8 @@ def chkconfig_del(service_name):
ipautil.run(["/sbin/chkconfig", "--del", service_name])
def is_enabled(service_name):
(stdout, stderr, returncode) = ipautil.run(["/sbin/chkconfig", "--list", service_name])
runlevels = {}
for runlevel in range(0, 7):
runlevels[runlevel] = False
for line in stdout.split("\n"):
parts = line.split()
if parts[0] == service_name:
for s in parts[1:]:
(runlevel, status) = s.split(":")[0:2]
try:
runlevels[int(runlevel)] = status == "on"
except ValueError:
pass
break
return (runlevels[3] and runlevels[4] and runlevels[5])
(stdout, stderr, returncode) = ipautil.run(["/sbin/chkconfig", service_name], raiseonerr=False)
return (returncode == 0)
def print_msg(message, output_fd=sys.stdout):
logging.debug(message)