X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Finterfaces.py;h=fe303a32fd7026bbd01a0bac57c809b4dfbe2d05;hb=48a73b18fd7daed13c645c1adeddb57b560e7a2d;hp=8179c8da23817cf22cc4d9869853711d21ad5100;hpb=84751d320f03b0baae416a9a05926b3aec799ae7;p=nodemanager.git diff --git a/plugins/interfaces.py b/plugins/interfaces.py index 8179c8d..fe303a3 100644 --- a/plugins/interfaces.py +++ b/plugins/interfaces.py @@ -5,7 +5,7 @@ Configure interfaces inside a container by pulling down files via URL. import logger import os import curlwrapper -import xmlrpclib +import xmlrpc.client try: from hashlib import sha1 as sha except ImportError: @@ -26,16 +26,24 @@ def start(): def GetSlivers(data, config=None, plc=None): if 'slivers' not in data: - logger.log_missing_data("interfaces.GetSlivers",'slivers') + logger.log_missing_data("interfaces.GetSlivers", 'slivers') return for sliver in data['slivers']: slicename = sliver['name'] + + if not os.path.exists("/vservers/%s" % slicename): + # Avoid creating slice directory if slice does not exist, as it + # breaks slice creation when sliver_lxc eventually gets around + # to creating the sliver. + logger.log("vserver %s does not exist yet. Skipping interfaces." % slicename) + continue + for tag in sliver['attributes']: if tag['tagname'] == 'interface': interfaces = eval(tag['value']) - if not isinstance(interfaces, (list,tuple)): + if not isinstance(interfaces, (list, tuple)): # if interface is not a list, then make it into a singleton list interfaces = [interfaces] @@ -47,7 +55,7 @@ def GetSlivers(data, config=None, plc=None): url = mydict['url'] try: contents = curlwrapper.retrieve(url) - except xmlrpclib.ProtocolError,e: + except xmlrpc.client.ProtocolError as e: logger.log('interfaces (%s): failed to retrieve %s' % (slicename, url)) continue else: @@ -58,7 +66,7 @@ def GetSlivers(data, config=None, plc=None): logger.log('interfaces (%s): no DEVICE specified' % slicename) continue - for key, value in mydict.items(): + for key, value in list(mydict.items()): if key in ['bridge', 'vlan']: continue contents += '%s="%s"\n' % (key, value)