-#!/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
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:
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']:
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()