guard against no setns.so in get_sliver_ifconfig, check for existence of princeton_sy...
authorsmbaker <smbaker@fc8-storktest.lan>
Tue, 30 Apr 2013 16:44:32 +0000 (09:44 -0700)
committersmbaker <smbaker@fc8-storktest.lan>
Tue, 30 Apr 2013 16:44:32 +0000 (09:44 -0700)
plugins/syndicate.py
tools.py

index 04462be..355590e 100644 (file)
@@ -56,12 +56,22 @@ def disable_syndicate_mount(sliver, mountpoint, syndicate_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')
+        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.")
-
-    if 'slivers' not in data:
-        logger.log_missing_data("syndicate.GetSlivers",'slivers')
         return
 
     for sliver in data['slivers']:
index 059b282..feb3e33 100644 (file)
--- a/tools.py
+++ b/tools.py
@@ -242,6 +242,11 @@ def get_sliver_ifconfig(slice_name, device="eth0"):
         side effects: adds "/usr/sbin" to sys.path
     """
 
+    # See if setns is installed. If it's not then we're probably not running
+    # LXC.
+    if not os.path.exists("/usr/sbin/setns.so"):
+        return None
+
     # setns is part of lxcsu and is installed to /usr/sbin
     if not "/usr/sbin" in sys.path:
         sys.path.append("/usr/sbin")