mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 23:29:36 +00:00
topogen: configure daemon logging files
Auto configure daemon logging files to the appropriated place. This removes the responsibility from the test developer to set this in the daemon configuration.
This commit is contained in:
parent
36040f453e
commit
f6899d4dd4
@ -43,6 +43,7 @@ import sys
|
|||||||
import json
|
import json
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
import glob
|
import glob
|
||||||
|
import grp
|
||||||
|
|
||||||
from mininet.net import Mininet
|
from mininet.net import Mininet
|
||||||
from mininet.log import setLogLevel
|
from mininet.log import setLogLevel
|
||||||
@ -431,6 +432,7 @@ class TopoRouter(TopoGear):
|
|||||||
self.name = name
|
self.name = name
|
||||||
self.cls = cls
|
self.cls = cls
|
||||||
self.options = {}
|
self.options = {}
|
||||||
|
self.routertype = params.get('routertype', 'frr')
|
||||||
if not params.has_key('privateDirs'):
|
if not params.has_key('privateDirs'):
|
||||||
params['privateDirs'] = self.PRIVATE_DIRS
|
params['privateDirs'] = self.PRIVATE_DIRS
|
||||||
|
|
||||||
@ -461,6 +463,16 @@ class TopoRouter(TopoGear):
|
|||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# Allow unprivileged daemon user (frr/quagga) to create log files
|
||||||
|
try:
|
||||||
|
# Only allow group, if it exist.
|
||||||
|
gid = grp.getgrnam(self.routertype)[2]
|
||||||
|
os.chown(self.logdir, 0, gid)
|
||||||
|
os.chmod(self.logdir, 0775)
|
||||||
|
except KeyError:
|
||||||
|
# Allow anyone, but set the sticky bit to avoid file deletions
|
||||||
|
os.chmod(self.logdir, 01777)
|
||||||
|
|
||||||
# Try to find relevant old logfiles in /tmp and delete them
|
# Try to find relevant old logfiles in /tmp and delete them
|
||||||
map(os.remove, glob.glob('{}/*{}*.log'.format(self.logdir, self.name)))
|
map(os.remove, glob.glob('{}/*{}*.log'.format(self.logdir, self.name)))
|
||||||
# Remove old core files
|
# Remove old core files
|
||||||
@ -492,9 +504,20 @@ class TopoRouter(TopoGear):
|
|||||||
* Clean up files
|
* Clean up files
|
||||||
* Configure interfaces
|
* Configure interfaces
|
||||||
* Start daemons (e.g. FRR/Quagga)
|
* Start daemons (e.g. FRR/Quagga)
|
||||||
|
* Configure daemon logging files
|
||||||
"""
|
"""
|
||||||
self.logger.debug('starting')
|
self.logger.debug('starting')
|
||||||
return self.tgen.net[self.name].startRouter()
|
nrouter = self.tgen.net[self.name]
|
||||||
|
result = nrouter.startRouter()
|
||||||
|
|
||||||
|
# Enable all daemon logging files and set them to the logdir.
|
||||||
|
for daemon, enabled in nrouter.daemons.iteritems():
|
||||||
|
if enabled == 0:
|
||||||
|
continue
|
||||||
|
self.vtysh_cmd('configure terminal\nlog file {}/{}-{}.log'.format(
|
||||||
|
self.logdir, self.name, daemon))
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user