Merge pull request #625 from jkleint/devel

Service module outputting extra data
pull/626/merge
Michael DeHaan 13 years ago
commit f1148fc26d

@ -75,7 +75,6 @@ def _find_binaries():
def _get_service_status(name): def _get_service_status(name):
rc, status_stdout, status_stderr = _run("%s %s status" % (SERVICE, name)) rc, status_stdout, status_stderr = _run("%s %s status" % (SERVICE, name))
status = status_stdout + status_stderr
# set the running state to None because we don't know it yet # set the running state to None because we don't know it yet
running = None running = None
@ -99,16 +98,18 @@ def _get_service_status(name):
# if the job status is still not known check it by status output keywords # if the job status is still not known check it by status output keywords
if running == None: if running == None:
# first tranform the status output that could irritate keyword matching # first tranform the status output that could irritate keyword matching
cleaned_status_stdout = status_stdout.lower().replace(name.lower(),'') cleanout = status_stdout.lower().replace(name.lower(), '')
if cleaned_status_stdout.find("stop") != -1: if "stop" in cleanout:
running = False running = False
elif cleaned_status_stdout.find("run") != -1 and cleaned_status_stdout.find("not") != -1: elif "run" in cleanout and "not" in cleanout:
running = False running = False
elif cleaned_status_stdout.find("run") != -1 and cleaned_status_stdout.find("not") == -1: elif "run" in cleanout and "not" not in cleanout:
running = True running = True
elif cleaned_status_stdout.find("start") != -1 and cleaned_status_stdout.find("not") == -1: elif "start" in cleanout and "not" not in cleanout:
running = True running = True
elif 'could not access pid file' in cleaned_status_stdout: elif 'could not access pid file' in cleanout:
running = False
elif 'is dead and pid file exists' in cleanout:
running = False running = False
# if the job status is still not known check it by special conditions # if the job status is still not known check it by special conditions
@ -205,8 +206,9 @@ if state or enable:
print json.dumps({ print json.dumps({
"failed" : True, "failed" : True,
"msg" : "failed determining the current service state => state stays unchanged", "msg" : "failed determining the current service state => state stays unchanged",
"changed": False
}) })
print >> sys.stderr, out + err sys.exit(1)
elif state: elif state:
# a state change command has been requested # a state change command has been requested
@ -244,10 +246,9 @@ if state or enable:
if rc != 0: if rc != 0:
print json.dumps({ print json.dumps({
"failed" : 1, "failed" : True,
"rc" : rc, "rc" : rc,
}) })
print >> sys.stderr, out + err
sys.exit(1) sys.exit(1)
@ -261,19 +262,7 @@ if state or enable:
result['status'] = stdout result['status'] = stdout
print json.dumps(result) print json.dumps(result)
elif list_items is not None:
# solo list=status mode, don't change anything, just return
# suitable for /usr/bin/ansible usage or API, playbooks
# not so much
print json.dumps({
"status" : status
})
else: else:
print json.dumps(dict(failed=True, msg="expected state or list parameters")) print json.dumps(dict(failed=True, msg="expected state or list parameters"))

Loading…
Cancel
Save