3 """ Syndicate configurator. """
13 logger.log('syndicate plugin starting up...')
15 def syndicate_op(op, mountpoint):
16 # here is where the magic happens
19 def enable_syndicate_mount(sliver, mountpoint):
20 if not os.path.exists(mountpoint):
24 logger.log_exc("failed to mkdir syndicate mountpoint", "Syndicate")
27 syndicate_op("PUT", mountpoint)
29 def dsiable_syndicate_mount(sliver, mountpoint):
30 syndicate_op("DELETE", mountpoint)
32 if os.path.exists(mountpoint):
36 logger.log_exc("failed to delete syndicate mountpoint", "Syndicate")
38 def GetSlivers(data, conf = None, plc = None):
39 node_id = tools.node_id()
41 if 'slivers' not in data:
42 logger.log_missing_data("syndicate.GetSlivers",'slivers')
45 for sliver in data['slivers']:
46 enable_syndicate = False
48 # build a dict of attributes, because it's more convenient
50 for attribute in sliver['attributes']:
51 attributes[attribute['tagname']] = attribute['value']
53 sliver_name = sliver['name']
54 syndicate_mountpoint = os.path.join("/vservers", sliver_name, "syndicate")
55 enable_syndicate = attributes.get("enable_syndicate", False)
56 has_syndicate = os.path.exists(syndicate_mountpoint)
58 if enable_syndicate and (not has_syndicate):
59 logger.log("Syndicate: enabling syndicate for %s" % sliver_name)
60 enable_syndicate_mount(sliver, syndicate_mountpoint)
62 elif (not enable_syndicate) and (has_syndicate):
63 logger.log("Syndicate: disabling syndicate for %s" % sliver_name)
64 disable_syndicate_mount(sliver, syndicate_mountpoint)