non-static (get|set)BaseDir for Configurator. fixes #160

ConfigReader's (get|set)BaseDir are no longer static as a result of
.d/ support RFing
pull/163/head
Yaroslav Halchenko 2013-03-27 11:51:07 -04:00
parent 72b06479a5
commit f643e2e907
2 changed files with 31 additions and 8 deletions

View File

@ -43,15 +43,19 @@ class Configurator:
self.__fail2ban = Fail2banReader() self.__fail2ban = Fail2banReader()
self.__jails = JailsReader() self.__jails = JailsReader()
#@staticmethod def setBaseDir(self, folderName):
def setBaseDir(folderName): self.__fail2ban.setBaseDir(folderName)
ConfigReader.setBaseDir(folderName) self.__jails.setBaseDir(folderName)
setBaseDir = staticmethod(setBaseDir)
#@staticmethod def getBaseDir(self):
def getBaseDir(): fail2ban_basedir = self.__fail2ban.getBaseDir()
return ConfigReader.getBaseDir() jails_basedir = self.__jails.getBaseDir()
getBaseDir = staticmethod(getBaseDir) if fail2ban_basedir != jails_basedir:
logSys.error("fail2ban.conf and jails.conf readers have differing "
"basedirs: %r and %r. "
"Returning the one for fail2ban.conf"
% (fail2ban_basedir, jails_basedir))
return fail2ban_basedir
def readEarly(self): def readEarly(self):
self.__fail2ban.read() self.__fail2ban.read()

View File

@ -25,6 +25,7 @@ import os, shutil, tempfile, unittest
from client.configreader import ConfigReader from client.configreader import ConfigReader
from client.jailreader import JailReader from client.jailreader import JailReader
from client.jailsreader import JailsReader from client.jailsreader import JailsReader
from client.configurator import Configurator
class ConfigReaderTest(unittest.TestCase): class ConfigReaderTest(unittest.TestCase):
@ -146,3 +147,21 @@ class JailsReaderTest(unittest.TestCase):
self.assertEqual(comm_commands[-1][0], 'start') self.assertEqual(comm_commands[-1][0], 'start')
# TODO: make sure that all of the jails have actions assigned, # TODO: make sure that all of the jails have actions assigned,
# otherwise it makes little to no sense # otherwise it makes little to no sense
def testConfigurator(self):
configurator = Configurator()
configurator.setBaseDir('config')
self.assertEqual(configurator.getBaseDir(), 'config')
configurator.readEarly()
opts = configurator.getEarlyOptions()
# our current default settings
self.assertEqual(opts['socket'], '/var/run/fail2ban/fail2ban.sock')
self.assertEqual(opts['pidfile'], '/var/run/fail2ban/fail2ban.pid')
# and if we force change configurator's fail2ban's baseDir
# there should be an error message (test visually ;) --
# otherwise just a code smoke test)
configurator._Configurator__jails.setBaseDir('/tmp')
self.assertEqual(configurator._Configurator__jails.getBaseDir(), '/tmp')
self.assertEqual(configurator.getBaseDir(), 'config')