|
#coding=utf-8
#author:evil
import os
import time
import json
import requests
Data_Fail_List=['UNREACHABLE','SKIPPED']
def log(host, category,task_id, data):
if type(data) == dict:
if 'verbose_override' in data:
# avoid logging extraneous data from facts
data = 'omitted'
else:
data = data.copy()
invocation = data.pop('invocation', None)
task_status='success'
task_res=data['stdout']
task_id=task_id
task_host=host
payload={'task_status':'success','task_res':task_res,'task_id':task_id,'task_host':task_host}
requests.post("http://10.13.168.153:8000/task_callback/", data=payload)
else:
task_status='fail'
task_res=data
task_id=task_id
"log_plays.py" 118L, 3419C written
[iyunv@localhost callback_plugins]# cat log_plays.py
#coding=utf-8
#author:evil
import os
import time
import json
import requests
Data_Fail_List=['UNREACHABLE','SKIPPED']
def log(host, category,task_id, data):
if type(data) == dict:
if 'verbose_override' in data:
# avoid logging extraneous data from facts
data = 'omitted'
else:
data = data.copy()
invocation = data.pop('invocation', None)
task_status='success'
task_res=data['stdout']
task_id=task_id
task_host=host
payload={'task_status':'success','task_res':task_res,'task_id':task_id,'task_host':task_host}
requests.post("http://10.13.168.153:8000/task_callback/", data=payload)
else:
task_status='fail'
task_res=data
task_id=task_id
task_host=host
payload={'task_status':'fail','task_res':data,'task_id':task_id,'task_host':task_host}
requests.post("http://10.13.168.153:8000/task_callback/", data=payload)
#path = os.path.join("/export/bjliumeide/log/ansible/hosts", host)
#now = time.strftime(TIME_FORMAT, time.localtime())
#fd = open(path, "a")
#fd.write(MSG_FORMAT % dict(now=now, category=category,task_id=task_id, data=data))
#fd.close()
>
"""
logs playbook results, per host, in /var/log/ansible/hosts
"""
def on_any(self, *args, **kwargs):
pass
def runner_on_failed(self, host, res, ignore_errors=False):
task_obj=getattr(self,'task',None)
task_name=task_obj.name
if task_obj:
log(host, 'FAILED',task_name,res)
def runner_on_ok(self, host, res):
task_obj=getattr(self,'task',None)
task_name=task_obj.name
if task_obj:
log(host, 'OK',task_name, res)
else:
pass
def runner_on_skipped(self, host, item=None):
task_obj=getattr(self,'task',None)
task_name=task_obj.name
if task_obj:
log(host, 'SKIPPED',task_name,'...')
else:
pass
def runner_on_unreachable(self, host, res):
task_obj=getattr(self,'task',None)
if task_obj:
log(host,'UNREACHABLE',task_obj.name,res)
else:
pass
def runner_on_no_hosts(self):
pass
def runner_on_async_poll(self, host, res, jid, clock):
pass
def runner_on_async_ok(self, host, res, jid):
pass
def runner_on_async_failed(self, host, res, jid):
log(host, 'ASYNC_FAILED', res)
def playbook_on_start(self):
pass
def playbook_on_notify(self, host, handler):
pass
def playbook_on_no_hosts_matched(self):
pass
def playbook_on_no_hosts_remaining(self):
pass
def playbook_on_task_start(self, name, is_conditional):
pass
def playbook_on_vars_prompt(self, varname, private=True, prompt=None, encrypt=None, confirm=False, salt_size=None, salt=None, default=None):
pass
def playbook_on_setup(self):
pass
def playbook_on_import_for_host(self, host, imported_file):
log(host, 'IMPORTED', imported_file)
def playbook_on_not_import_for_host(self, host, missing_file):
log(host, 'NOTIMPORTED', missing_file)
def playbook_on_play_start(self, name):
pass
def playbook_on_stats(self, stats):
pass |
|