X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fsyndicate.py;h=2a34e79c666e88fdc742dc2dd001840b4c0a9b90;hb=HEAD;hp=618b8abef2c6929ca2971d0602a8dcb190056d38;hpb=c6e5602ac3f3630b7af6b7dd6f8caa9b550d088e;p=nodemanager.git diff --git a/plugins/syndicate.py b/plugins/syndicate.py index 618b8ab..2a34e79 100644 --- a/plugins/syndicate.py +++ b/plugins/syndicate.py @@ -1,10 +1,11 @@ -#!/usr/bin/python +#!/usr/bin/python3 """ Syndicate configurator. """ -import httplib +import http.client import os import shutil +import tools from threading import Thread import logger @@ -20,7 +21,7 @@ def syndicate_op(op, mountpoint, syndicate_ip): logger.log("Syndicate: Http op %s on url %s to host %s" % (op, mountpoint, syndicate_ip)) try: - conn = httplib.HTTPSConnection(syndicate_ip, timeout=60) + conn = http.client.HTTPSConnection(syndicate_ip, timeout=60) conn.request(op, mountpoint) r1 = conn.getresponse() except: @@ -52,38 +53,25 @@ def disable_syndicate_mount(sliver, mountpoint, syndicate_ip): except: logger.log_exc("failed to delete syndicate mountpoint", "Syndicate") -def get_syndicate_ip(): - fn = "/vservers/princeton_syndicate/var/lib/dhclient/dhclient-eth0.leases" - if not os.path.exists(fn): - logger.log("Syndicate: cannot find princeton_syndicate's dhclient lease db") - return None - - fixed_address = None - for line in open(fn).readlines(): - line = line.strip() - if line.startswith("fixed-address"): - fixed_address = line - - if not fixed_address: - logger.log("Syndicate: no fixed_address line in dhclient lease db") - return None - - parts=fixed_address.split(" ") - if len(parts)!=2: - logger.log("Syndicate: malformed fixed-address line in dhclient: %s" % line) - return None - - ip = parts[1].strip(";") - - #logger.log("Syndicate ip is %s" % ip) - - return ip - def GetSlivers(data, conf = None, plc = None): node_id = tools.node_id() if 'slivers' not in data: - logger.log_missing_data("syndicate.GetSlivers",'slivers') + logger.log_missing_data("syndicate.GetSlivers", 'slivers') + return + + syndicate_sliver = None + for sliver in data['slivers']: + if sliver['name'] == "princeton_syndicate": + syndicate_sliver = sliver + + if not syndicate_sliver: + logger.log("Syndicate: no princeton_syndicate sliver on this node. aborting.") + return + + syndicate_ip = tools.get_sliver_ip("princeton_syndicate") + if not syndicate_ip: + logger.log("Syndicate: unable to get syndicate sliver ip. aborting.") return for sliver in data['slivers']: @@ -101,13 +89,13 @@ def GetSlivers(data, conf = None, plc = None): if enable_syndicate and (not has_syndicate): logger.log("Syndicate: enabling syndicate for %s" % sliver_name) - #enable_syndicate_mount(sliver, syndicate_mountpoint, get_syndicate_ip()) - t = Thread(target=enable_syndicate_mount, args=(sliver, syndicate_mountpoint, get_syndicate_ip())) + #enable_syndicate_mount(sliver, syndicate_mountpoint, syndicate_ip) + t = Thread(target=enable_syndicate_mount, args=(sliver, syndicate_mountpoint, syndicate_ip)) t.start() elif (not enable_syndicate) and (has_syndicate): logger.log("Syndicate: disabling syndicate for %s" % sliver_name) - #disable_syndicate_mount(sliver, syndicate_mountpoint, get_syndicate_ip()) - t = Thread(target=disable_syndicate_mount, args=(sliver, syndicate_mountpoint, get_syndicate_ip())) + #disable_syndicate_mount(sliver, syndicate_mountpoint, syndicate_ip) + t = Thread(target=disable_syndicate_mount, args=(sliver, syndicate_mountpoint, syndicate_ip)) t.start()