allows to update some configuration options (read with config-readers) with command line option, e. g.:

```bash
## start server with DEBUG log-level (ignore level read from fail2ban.conf):
fail2ban-client --loglevel DEBUG start
## or
fail2ban-server -c /cfg/path --loglevel DEBUG start
## keep server log-level by reload (without restart it)
fail2ban-client --loglevel DEBUG reload
## switch log-level back to INFO:
fail2ban-client set loglevel INFO
```
pull/1557/head
sebres 2016-09-21 09:17:56 +02:00
parent 20b92f3ead
commit 35ce1166b6
3 changed files with 6 additions and 4 deletions

View File

@ -72,8 +72,8 @@ class Configurator:
def getEarlyOptions(self): def getEarlyOptions(self):
return self.__fail2ban.getEarlyOptions() return self.__fail2ban.getEarlyOptions()
def getOptions(self, jail = None): def getOptions(self, jail=None, updateMainOpt=None):
self.__fail2ban.getOptions() self.__fail2ban.getOptions(updateMainOpt)
return self.__jails.getOptions(jail) return self.__jails.getOptions(jail)
def convertToProtocol(self): def convertToProtocol(self):

View File

@ -242,7 +242,7 @@ class Fail2banCmdLine():
try: try:
self.configurator.Reload() self.configurator.Reload()
self.configurator.readAll() self.configurator.readAll()
ret = self.configurator.getOptions(jail) ret = self.configurator.getOptions(jail, self._conf)
self.configurator.convertToProtocol() self.configurator.convertToProtocol()
stream = self.configurator.getConfigStream() stream = self.configurator.getConfigStream()
except Exception as e: except Exception as e:

View File

@ -49,13 +49,15 @@ class Fail2banReader(ConfigReader):
] ]
return ConfigReader.getOptions(self, "Definition", opts) return ConfigReader.getOptions(self, "Definition", opts)
def getOptions(self): def getOptions(self, updateMainOpt=None):
opts = [["string", "loglevel", "INFO" ], opts = [["string", "loglevel", "INFO" ],
["string", "logtarget", "STDERR"], ["string", "logtarget", "STDERR"],
["string", "syslogsocket", "auto"], ["string", "syslogsocket", "auto"],
["string", "dbfile", "/var/lib/fail2ban/fail2ban.sqlite3"], ["string", "dbfile", "/var/lib/fail2ban/fail2ban.sqlite3"],
["string", "dbpurgeage", "1d"]] ["string", "dbpurgeage", "1d"]]
self.__opts = ConfigReader.getOptions(self, "Definition", opts) self.__opts = ConfigReader.getOptions(self, "Definition", opts)
if updateMainOpt:
self.__opts.update(updateMainOpt)
def convert(self): def convert(self):
# Ensure logtarget/level set first so any db errors are captured # Ensure logtarget/level set first so any db errors are captured