From 1634e61085a950b5e60b7d304d88f01c6ffde758 Mon Sep 17 00:00:00 2001 From: smbaker Date: Tue, 30 Apr 2013 09:44:32 -0700 Subject: [PATCH] guard against no setns.so in get_sliver_ifconfig, check for existence of princeton_syndicate in syndicate plugin, fix syndicate sliver not exiting when no syndicate sliver IP --- plugins/syndicate.py | 16 +++++++++++++--- tools.py | 5 +++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/plugins/syndicate.py b/plugins/syndicate.py index 04462be..355590e 100644 --- a/plugins/syndicate.py +++ b/plugins/syndicate.py @@ -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']: diff --git a/tools.py b/tools.py index 059b282..feb3e33 100644 --- 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") -- 2.43.0