From 8ff66f974c351e1f8bcfcd43244c9e20ae9ff05b Mon Sep 17 00:00:00 2001 From: Faiyaz Ahmed Date: Mon, 24 Mar 2008 21:29:32 +0000 Subject: [PATCH] * Now callback in NM by default * Clean up after slice is removed --- codemux.py | 14 ++++++++++++-- nm.py | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/codemux.py b/codemux.py index 2dd23bf..851fd24 100644 --- a/codemux.py +++ b/codemux.py @@ -16,6 +16,7 @@ def start(options, config): def GetSlivers(data): """For each sliver with the codemux attribute, parse out "host,port" and make entry in conf. Restart service after.""" + logger.log("codemux: Starting.", 2) # slices already in conf slicesinconf = parseConf() # slices that need to be written to the conf @@ -47,13 +48,20 @@ def GetSlivers(data): except: logger.log("codemux: sliver %s not running yet. Deferring."\ % sliver['name']) + + logger.log_exc(name = "codemux") pass + # Remove slices from conf that no longer have the attribute + for deadslice in Set(slicesinconf.keys()) - Set(codemuxslices.keys()): + logger.log("codemux: Removing %s" % deadslice) + _writeconf = True + if _writeconf: writeConf(codemuxslices) def writeConf(slivers, conf = CODEMUXCONF): '''Write conf with default entry up top. Restart service.''' - f.open(conf) + f = open(conf, "w") f.write("* root 1080") for (host, slice, port) in slivers.iteritems(): f.write("%s %s %s" % [host, slice, port]) @@ -69,9 +77,11 @@ def parseConf(conf = CODEMUXCONF): try: f = open(conf) for line in f.readlines(): - if line.startswith("#") or (len(line.split()) != 3): + if line.startswith("#") or (len(line.split()) != 3)\ + or line.startswith("*"): continue (host, slice, port) = line.split()[:3] + logger.log("codemux: found %s in conf" % slice, 2) slicesinconf[slice] = {"host": host, "port": port} f.close() except: logger.log_exc() diff --git a/nm.py b/nm.py index 9e8c209..b61ae1a 100755 --- a/nm.py +++ b/nm.py @@ -20,7 +20,7 @@ import net id="$Id$" savedargv = sys.argv[:] -known_modules=['proper', 'conf_files', 'sm', 'bwmon', 'vsys'] +known_modules=['proper', 'conf_files', 'sm', 'bwmon', 'vsys', 'codemux'] parser = optparse.OptionParser() parser.add_option('-d', '--daemon', action='store_true', dest='daemon', default=False, help='run daemonized') -- 2.43.0