X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fcodemux.py;h=b25b70322b932621b15a94aa2816f16d845afddb;hb=ac6786141feadccdc48b819ab21a825a54881ded;hp=e919753f62e6b1e811317ab227d32b7e158f9dcd;hpb=854fdfe526baa82adf31f14cac8a62223b310050;p=nodemanager.git diff --git a/plugins/codemux.py b/plugins/codemux.py index e919753..b25b703 100644 --- a/plugins/codemux.py +++ b/plugins/codemux.py @@ -2,8 +2,9 @@ import logger import os -import vserver + from config import Config +import slivermanager CODEMUXCONF="/etc/codemux/codemux.conf" @@ -51,7 +52,7 @@ def GetSlivers(data, config, plc = None): try: # Check to see if sliver is running. If not, continue - if vserver.VServer(sliver['name']).is_running(): + if slivermanager.is_running(sliver['name']): # Check if new or needs updating if (sliver['name'] not in slicesinconf.keys()) \ or (params not in slicesinconf.get(sliver['name'], [])): @@ -61,7 +62,7 @@ def GetSlivers(data, config, plc = None): _writeconf = True # Add to dict of codemuxslices. Make list to support more than one # codemuxed host per slice. - codemuxslices.setdefault(sliver['name'],[]) + codemuxslices.setdefault(sliver['name'], []) codemuxslices[sliver['name']].append(params) except: logger.log("codemux: sliver %s not running yet. Deferring."\ @@ -124,14 +125,19 @@ def parseConf(conf = CODEMUXCONF): try: f = open(conf) for line in f.readlines(): - if line.startswith("#") \ - or (len(line.split()) > 4) \ - or (len(line.split()) < 3): + parts = line.split() + if line.startswith("#") or (len(parts) > 4) or (len(parts) < 3): continue - (host, slice, port) = line.split()[:3] - logger.log("codemux: found %s in conf" % slice, 2) - slicesinconf.setdefault(slice, []) - slicesinconf[slice].append({"host": host, "port": port}) + if len(parts) == 4: + (host, slice, port, ip) = parts + logger.log("codemux: found %s in conf" % slice, 2) + slicesinconf.setdefault(slice, []) + slicesinconf[slice].append({"host": host, "port": port, "ip": ip}) + else: + (host, slice, port) = parts[:3] + logger.log("codemux: found %s in conf" % slice, 2) + slicesinconf.setdefault(slice, []) + slicesinconf[slice].append({"host": host, "port": port}) f.close() except IOError: logger.log_exc("codemux.parseConf got IOError") return slicesinconf @@ -147,9 +153,9 @@ def restartService(): if not os.path.exists("/etc/init.d/codemux"): return logger.log("codemux: Restarting codemux service") if isRunning(): - logger.log_call(["/etc/init.d/codemux","condrestart", ]) + logger.log_call(["/etc/init.d/codemux", "condrestart", ]) else: - logger.log_call(["/etc/init.d/codemux","restart", ]) + logger.log_call(["/etc/init.d/codemux", "restart", ]) def startService(): if not os.path.exists("/etc/init.d/codemux"): return @@ -165,3 +171,4 @@ def stopService(): logger.log("codemux: Stopping codemux service") logger.log_call(["/etc/init.d/codemux", "stop", ]) logger.log_call(["/sbin/chkconfig", "codemux", "off"]) +