Ensure async wrapper and status return consistent fields
This commit is contained in:
parent
72cd76e023
commit
204e83aeed
2 changed files with 8 additions and 4 deletions
|
@ -76,11 +76,13 @@ def main():
|
||||||
# no remote kill mode currently exists, but probably should
|
# no remote kill mode currently exists, but probably should
|
||||||
# consider log_path + ".pid" file and also unlink that above
|
# consider log_path + ".pid" file and also unlink that above
|
||||||
|
|
||||||
data = file(log_path).read()
|
data = None
|
||||||
try:
|
try:
|
||||||
|
data = file(log_path).read()
|
||||||
|
import q; q(data)
|
||||||
data = json.loads(data)
|
data = json.loads(data)
|
||||||
except Exception:
|
except Exception:
|
||||||
if data == '':
|
if not data:
|
||||||
# file not written yet? That means it is running
|
# file not written yet? That means it is running
|
||||||
module.exit_json(results_file=log_path, ansible_job_id=jid, started=1, finished=0)
|
module.exit_json(results_file=log_path, ansible_job_id=jid, started=1, finished=0)
|
||||||
else:
|
else:
|
||||||
|
@ -90,6 +92,8 @@ def main():
|
||||||
if not 'started' in data:
|
if not 'started' in data:
|
||||||
data['finished'] = 1
|
data['finished'] = 1
|
||||||
data['ansible_job_id'] = jid
|
data['ansible_job_id'] = jid
|
||||||
|
elif 'finished' not in data:
|
||||||
|
data['finished'] = 0
|
||||||
|
|
||||||
# Fix error: TypeError: exit_json() keywords must be strings
|
# Fix error: TypeError: exit_json() keywords must be strings
|
||||||
data = dict([(str(k), v) for k, v in data.iteritems()])
|
data = dict([(str(k), v) for k, v in data.iteritems()])
|
||||||
|
|
|
@ -74,7 +74,7 @@ def _run_module(wrapped_cmd, jid, job_path):
|
||||||
|
|
||||||
tmp_job_path = job_path + ".tmp"
|
tmp_job_path = job_path + ".tmp"
|
||||||
jobfile = open(tmp_job_path, "w")
|
jobfile = open(tmp_job_path, "w")
|
||||||
jobfile.write(json.dumps({ "started" : 1, "ansible_job_id" : jid }))
|
jobfile.write(json.dumps({ "started" : 1, "finished" : 0, "ansible_job_id" : jid }))
|
||||||
jobfile.close()
|
jobfile.close()
|
||||||
os.rename(tmp_job_path, job_path)
|
os.rename(tmp_job_path, job_path)
|
||||||
jobfile = open(tmp_job_path, "w")
|
jobfile = open(tmp_job_path, "w")
|
||||||
|
@ -161,7 +161,7 @@ if __name__ == '__main__':
|
||||||
# this probably could be done with some IPC later. Modules should always read
|
# this probably could be done with some IPC later. Modules should always read
|
||||||
# the argsfile at the very first start of their execution anyway
|
# the argsfile at the very first start of their execution anyway
|
||||||
notice("Return async_wrapper task started.")
|
notice("Return async_wrapper task started.")
|
||||||
print(json.dumps({ "started" : 1, "ansible_job_id" : jid, "results_file" : job_path }))
|
print(json.dumps({ "started" : 1, "finished" : 0, "ansible_job_id" : jid, "results_file" : job_path }))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
Loading…
Reference in a new issue