Apply logging of arguments to modules (issue #122)

The ohai and facter modules use /usr/bin/logger to log the fact that
they have been invoked.  I added 'import os' to the ping module
so that it could have the same syslog statements as the other modules.
I separated the condensed:
    shlex.split(open(argfile, 'r').read())
into two separate statements similar to the other modules.
This commit is contained in:
Stephen Fromm 2012-05-09 15:08:45 -07:00
parent 7d52ace295
commit 67ee30f135
17 changed files with 61 additions and 3 deletions

3
apt
View file

@ -25,6 +25,7 @@ import os
import sys import sys
import shlex import shlex
import subprocess import subprocess
import syslog
import traceback import traceback
APT_PATH = "/usr/bin/apt-get" APT_PATH = "/usr/bin/apt-get"
@ -113,6 +114,8 @@ if not os.path.exists(APT_PATH):
argfile = sys.argv[1] argfile = sys.argv[1]
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
fail_json(msg='the module requires arguments -a') fail_json(msg='the module requires arguments -a')

View file

@ -28,13 +28,18 @@ import subprocess
import sys import sys
import datetime import datetime
import traceback import traceback
import syslog
# =========================================== # ===========================================
# FIXME: better error handling # FIXME: better error handling
argsfile = sys.argv[1] argsfile = sys.argv[1]
items = shlex.split(file(argsfile).read()) args = open(argsfile, 'r').read()
items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
params = {} params = {}
for x in items: for x in items:

View file

@ -30,6 +30,7 @@ import datetime
import traceback import traceback
import signal import signal
import time import time
import syslog
def daemonize_self(): def daemonize_self():
# daemonizing code: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66012 # daemonizing code: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66012
@ -76,6 +77,9 @@ wrapped_module = sys.argv[3]
argsfile = sys.argv[4] argsfile = sys.argv[4]
cmd = "%s %s" % (wrapped_module, argsfile) cmd = "%s %s" % (wrapped_module, argsfile)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % " ".join(sys.argv[1:]))
# setup logging directory # setup logging directory
logdir = os.path.expanduser("~/.ansible_async") logdir = os.path.expanduser("~/.ansible_async")
log_path = os.path.join(logdir, jid) log_path = os.path.join(logdir, jid)

View file

@ -29,9 +29,12 @@ import datetime
import traceback import traceback
import shlex import shlex
import os import os
import syslog
argfile = sys.argv[1] argfile = sys.argv[1]
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
shell = False shell = False

7
copy
View file

@ -21,6 +21,7 @@
import sys import sys
import os import os
import shlex import shlex
import syslog
# =========================================== # ===========================================
# convert arguments of form a=b c=d # convert arguments of form a=b c=d
@ -32,7 +33,11 @@ if len(sys.argv) == 1:
argfile = sys.argv[1] argfile = sys.argv[1]
if not os.path.exists(argfile): if not os.path.exists(argfile):
sys.exit(1) sys.exit(1)
items = shlex.split(open(argfile, 'r').read())
args = open(argfile, 'r').read()
items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
params = {} params = {}

1
facter
View file

@ -22,4 +22,5 @@
# facter # facter
# ruby-json # ruby-json
/usr/bin/logger -t ansible-facter Invoked as-is
/usr/bin/facter --json 2>/dev/null /usr/bin/facter --json 2>/dev/null

3
file
View file

@ -25,6 +25,7 @@ import shutil
import stat import stat
import grp import grp
import pwd import pwd
import syslog
try: try:
import selinux import selinux
HAVE_SELINUX=True HAVE_SELINUX=True
@ -125,6 +126,8 @@ def selinux_context(path):
argfile = sys.argv[1] argfile = sys.argv[1]
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
fail_kv(msg='the module requires arguments -a') fail_kv(msg='the module requires arguments -a')

3
git
View file

@ -31,6 +31,7 @@ import os
import sys import sys
import shlex import shlex
import subprocess import subprocess
import syslog
# =========================================== # ===========================================
# Basic support methods # Basic support methods
@ -57,6 +58,8 @@ if not os.path.exists(argfile):
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
fail_json(msg="the command module requires arguments (-a)") fail_json(msg="the command module requires arguments (-a)")

3
group
View file

@ -26,6 +26,7 @@ import grp
import shlex import shlex
import subprocess import subprocess
import sys import sys
import syslog
GROUPADD = "/usr/sbin/groupadd" GROUPADD = "/usr/sbin/groupadd"
GROUPDEL = "/usr/sbin/groupdel" GROUPDEL = "/usr/sbin/groupdel"
@ -131,6 +132,8 @@ if len(sys.argv) == 2 and os.path.exists(sys.argv[1]):
else: else:
args = ' '.join(sys.argv[1:]) args = ' '.join(sys.argv[1:])
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
fail_json(msg='the module requires arguments -a') fail_json(msg='the module requires arguments -a')

1
ohai
View file

@ -18,4 +18,5 @@
# along with Ansible. If not, see <http://www.gnu.org/licenses/>. # along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# #
/usr/bin/logger -t ansible-ohai Invoked as-is
/usr/bin/ohai /usr/bin/ohai

6
ping
View file

@ -22,4 +22,10 @@ try:
except ImportError: except ImportError:
import simplejson as json import simplejson as json
import os
import syslog
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked as-is')
print json.dumps({ "ping" : "pong" }) print json.dumps({ "ping" : "pong" })

View file

@ -25,6 +25,7 @@ import sys
import shlex import shlex
import subprocess import subprocess
import os.path import os.path
import syslog
# TODO: switch to fail_json and other helper functions # TODO: switch to fail_json and other helper functions
# like other modules are using # like other modules are using
@ -95,6 +96,8 @@ def _do_enable(name, enable):
argfile = sys.argv[1] argfile = sys.argv[1]
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
fail_json(dict(failed=True, msg='this module requires arguments (-a)')) fail_json(dict(failed=True, msg='this module requires arguments (-a)'))

4
setup
View file

@ -31,6 +31,7 @@ import socket
import struct import struct
import subprocess import subprocess
import traceback import traceback
import syslog
try: try:
import json import json
@ -295,6 +296,9 @@ except:
(k,v) = opt.split("=") (k,v) = opt.split("=")
setup_options[k]=v setup_options[k]=v
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % setup_options)
ansible_file = os.path.expandvars(setup_options.get('metadata', DEFAULT_ANSIBLE_SETUP)) ansible_file = os.path.expandvars(setup_options.get('metadata', DEFAULT_ANSIBLE_SETUP))
ansible_dir = os.path.dirname(ansible_file) ansible_dir = os.path.dirname(ansible_file)

7
slurp
View file

@ -21,6 +21,7 @@ import sys
import os import os
import shlex import shlex
import base64 import base64
import syslog
try: try:
import json import json
@ -36,7 +37,11 @@ if len(sys.argv) == 1:
argfile = sys.argv[1] argfile = sys.argv[1]
if not os.path.exists(argfile): if not os.path.exists(argfile):
sys.exit(1) sys.exit(1)
items = shlex.split(open(argfile, 'r').read())
args = open(argfile, 'r').read()
items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
params = {} params = {}
for x in items: for x in items:

3
user
View file

@ -27,6 +27,7 @@ import grp
import shlex import shlex
import subprocess import subprocess
import sys import sys
import syslog
try: try:
import spwd import spwd
HAVE_SPWD=True HAVE_SPWD=True
@ -264,6 +265,8 @@ if not os.path.exists(USERDEL):
argfile = sys.argv[1] argfile = sys.argv[1]
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
fail_json(msg='the module requires arguments -a') fail_json(msg='the module requires arguments -a')

3
virt
View file

@ -27,6 +27,7 @@ except ImportError:
import os import os
import sys import sys
import subprocess import subprocess
import syslog
try: try:
import libvirt import libvirt
except ImportError: except ImportError:
@ -366,6 +367,8 @@ def main():
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
return VIRT_FAILED, msg return VIRT_FAILED, msg

3
yum
View file

@ -27,6 +27,7 @@ import datetime
import shlex import shlex
import re import re
import traceback import traceback
import syslog
try: try:
@ -299,6 +300,8 @@ def main():
args = open(argfile, 'r').read() args = open(argfile, 'r').read()
items = shlex.split(args) items = shlex.split(args)
syslog.openlog('ansible-%s' % os.path.basename(__file__))
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args)
if not len(items): if not len(items):
msg = "the yum module requires arguments (-a)" msg = "the yum module requires arguments (-a)"