ENH: minor, just pythonized some parts of fail2ban-regex summary

pull/38/head
Yaroslav Halchenko 2012-02-10 22:19:44 -05:00
parent 2245ff5b41
commit d2ffee0b2d
1 changed files with 26 additions and 54 deletions

View File

@ -29,7 +29,7 @@ import getopt, sys, time, logging, os
# Inserts our own modules path first in the list
# fix for bug #343821
sys.path.insert(1, "/usr/share/fail2ban")
#sys.path.insert(1, "/usr/share/fail2ban")
from client.configparserinc import SafeConfigParserWithIncludes
from ConfigParser import NoOptionError, NoSectionError, MissingSectionHeaderError
@ -248,50 +248,29 @@ class Fail2banRegex:
print "Results"
print "======="
print
def print_failregexes(title, failregexes):
# Print title
print title
print "|- Regular expressions:"
for cnt, failregex in enumerate(failregexes):
print "| [%d] %s" % (cnt+1, failregex.getFailRegex())
print "|"
# Print stats
total = 0
print "`- Number of matches:"
for cnt, failregex in enumerate(failregexes):
match = failregex.getStats()
total += match
print " [%d] %s match(es)" % (cnt+1, match)
print
return total
# Print title
cnt = 1
print "Failregex"
print "|- Regular expressions:"
for failregex in self.__failregex:
print "| [" + str(cnt) + "] " + failregex.getFailRegex()
cnt += 1
cnt = 1
total = print_failregexes("Failregex", self.__failregex)
_ = print_failregexes("Ignoreregex", self.__ignoreregex)
print "|"
# Print stats
cnt = 1
total = 0
print "`- Number of matches:"
for failregex in self.__failregex:
match = failregex.getStats()
total += match
print " [" + str(cnt) + "] " + str(match) + " match(es)"
cnt += 1
print
# Print title
cnt = 1
print "Ignoreregex"
print "|- Regular expressions:"
for failregex in self.__ignoreregex:
print "| [" + str(cnt) + "] " + failregex.getFailRegex()
cnt += 1
cnt = 1
print "|"
# Print stats
cnt = 1
print "`- Number of matches:"
for failregex in self.__ignoreregex:
match = failregex.getStats()
print " [" + str(cnt) + "] " + str(match) + " match(es)"
cnt += 1
print
print "Summary"
print "======="
print
@ -304,26 +283,19 @@ class Fail2banRegex:
return False
else:
# Print stats
cnt = 1
print "Addresses found:"
for failregex in self.__failregex:
print "[" + str(cnt) + "]"
for cnt, failregex in enumerate(self.__failregex):
print "[%d]" % (cnt+1)
for ip in failregex.getIPList():
timeTuple = time.localtime(ip[1])
timeString = time.strftime("%a %b %d %H:%M:%S %Y", timeTuple)
if ip[2]:
dup = " (already matched)"
else:
dup = ""
print " " + ip[0] + " (" + timeString + ")" + dup
cnt += 1
print " %s (%s)%s" % (
ip[0], timeString, ip[2] and " (already matched)" or "")
print
print "Date template hits:"
for template in self.__filter.dateDetector.getTemplates():
print `template.getHits()` + " hit(s): " + template.getName()
print
print "Success, the total number of match is " + str(total)