X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fcodemux.py;h=b25b70322b932621b15a94aa2816f16d845afddb;hb=ac6786141feadccdc48b819ab21a825a54881ded;hp=7f2200d3b33815188f8707fbef4e40fdbb150aec;hpb=9810ffaa90bac99bbe7a5b18ae914f649193ef8a;p=nodemanager.git diff --git a/plugins/codemux.py b/plugins/codemux.py index 7f2200d..b25b703 100644 --- a/plugins/codemux.py +++ b/plugins/codemux.py @@ -2,8 +2,9 @@ import logger import os -import libvirt + 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 isLXCDomRunning(sliver['name']): + 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 @@ -166,13 +172,3 @@ def stopService(): logger.log_call(["/etc/init.d/codemux", "stop", ]) logger.log_call(["/sbin/chkconfig", "codemux", "off"]) -def isLXCDomRunning(domName): - try: - running = False - conn = libvirt.open('lxc://') - dom = conn.lookupByName(domName) - running = dom.info()[0] == libvirt.VIR_DOMAIN_RUNNING - finally: - conn.close() - return running -