X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fcodemux.py;h=e919753f62e6b1e811317ab227d32b7e158f9dcd;hb=854fdfe526baa82adf31f14cac8a62223b310050;hp=ef8634ff9d0212bd1906dd56e498eaeedaa4220c;hpb=22d40df4ed31c001fd58966640ed0c5079d486e6;p=nodemanager.git diff --git a/plugins/codemux.py b/plugins/codemux.py index ef8634f..e919753 100644 --- a/plugins/codemux.py +++ b/plugins/codemux.py @@ -1,6 +1,3 @@ -# $Id$ -# $URL$ - """Codemux configurator. Monitors slice attributes and configures CoDemux to mux port 80 based on HOST field in HTTP request. Forwards to localhost port belonging to configured slice.""" import logger @@ -10,12 +7,12 @@ from config import Config CODEMUXCONF="/etc/codemux/codemux.conf" -def start(options, conf): +def start(): logger.log("codemux: plugin starting up...") def GetSlivers(data, config, plc = None): """ - For each sliver with the codemux attribute, parse out "host,port" + For each sliver with the codemux attribute, parse out "host,port" and make entry in conf. Restart service after. """ if 'OVERRIDES' in dir(config): @@ -29,7 +26,7 @@ def GetSlivers(data, config, plc = None): slicesinconf = parseConf() # slices that need to be written to the conf codemuxslices = {} - + # XXX Hack for planetflow if slicesinconf.has_key("root"): _writeconf = False else: _writeconf = True @@ -58,7 +55,7 @@ def GetSlivers(data, config, plc = None): # Check if new or needs updating if (sliver['name'] not in slicesinconf.keys()) \ or (params not in slicesinconf.get(sliver['name'], [])): - logger.log("codemux: Updaiting slice %s using %s" % \ + logger.log("codemux: Updating slice %s using %s" % \ (sliver['name'], params['host'])) # Toggle write. _writeconf = True @@ -74,11 +71,11 @@ def GetSlivers(data, config, plc = None): # Remove slices from conf that no longer have the attribute for deadslice in set(slicesinconf.keys()) - set(codemuxslices.keys()): # XXX Hack for root slice - if deadslice != "root": + if deadslice != "root": logger.log("codemux: Removing %s" % deadslice) - _writeconf = True + _writeconf = True - if _writeconf: writeConf(sortDomains(codemuxslices)) + if _writeconf: writeConf(sortDomains(codemuxslices)) # ensure the service is running startService() @@ -87,9 +84,9 @@ def writeConf(slivers, conf = CODEMUXCONF): '''Write conf with default entry up top. Elements in [] should have lower order domain names first. Restart service.''' f = open(conf, "w") # This needs to be the first entry... - try: + try: f.write("* root 1080 %s\n" % Config().PLC_PLANETFLOW_HOST) - except AttributeError: + except AttributeError: logger.log("codemux: Can't find PLC_CONFIG_HOST in config. Using PLC_API_HOST") f.write("* root 1080 %s\n" % Config().PLC_API_HOST) # Sort items for like domains @@ -117,14 +114,14 @@ def sortDomains(slivers): # make list of slivers sortedslices = [] for host in hosts: sortedslices.append({host: dnames[host]}) - + return sortedslices - + def parseConf(conf = CODEMUXCONF): '''Parse the CODEMUXCONF and return dict of slices in conf. {slice: (host,port)}''' slicesinconf = {} # default - try: + try: f = open(conf) for line in f.readlines(): if line.startswith("#") \