From 710c89c8144b6ea127c8c0ec29c8894cc4611969 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 4 Feb 2014 14:33:41 +0000 Subject: [PATCH] chpwd, operation.py: Logging for operations. Probably about time we did this, really. --- chpwd | 3 +++ operation.py | 20 +++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/chpwd b/chpwd index 65ae873..2671906 100755 --- a/chpwd +++ b/chpwd @@ -30,6 +30,7 @@ import optparse as OP import os as OS; ENV = OS.environ import shlex as SL import sys as SYS +import syslog as L from auto import HOME, VERSION import cgi as CGI @@ -200,6 +201,8 @@ def cli_errors(): if __name__ == '__main__': + L.openlog(OS.path.basename(SYS.argv[0]), 0, L.LOG_AUTH) + if 'REQUEST_METHOD' in ENV: ## This looks like a CGI request. The heavy lifting for authentication ## over HTTP is done in `dispatch_cgi'. diff --git a/operation.py b/operation.py index f02b462..50d7952 100644 --- a/operation.py +++ b/operation.py @@ -24,6 +24,7 @@ ### . import os as OS +import syslog as L import config as CONF; CFG = CONF.CFG import util as U @@ -201,6 +202,9 @@ class BaseRequest (object): """ return optype(svc, user, **kw) + def describe(me): + return me.OP + def perform(me): """ Perform the queued-up operations. @@ -338,7 +342,15 @@ def operate(op, accts, *args, **kw): * a list of the individual operation objects. """ rq = getattr(CFG.RQCLASS, op)(accts, *args, **kw) - rq.check() + desc = rq.describe() + try: + rq.check() + except U.ExpectedError, e: + L.syslog('REFUSE %s %s: %s' % + (desc, + ', '.join(['%s@%s' % (o.user, o.svc.name) for o in rq.ops]), + e)) + raise ops = rq.perform() nwin = nlose = 0 for o in ops: @@ -350,6 +362,12 @@ def operate(op, accts, *args, **kw): else: if nlose: rc = outcome.FAIL else: rc = outcome.NOTHING + L.syslog('%s %s: %s' % (['OK', 'PARTIAL', 'FAIL', 'NOTHING'][rc], + desc, + '; '.join(['%s@%s %s' % (o.user, o.svc.name, + not o.error and 'OK' or + 'ERR %s' % o.error) + for o in ops]))) ii = [info(v, getattr(rq, k)) for k, v in rq.INFO.iteritems()] return outcome(rc, nwin, nlose), ii, rq, ops -- 2.11.0