X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Finterfaces.py;h=bc24b4e6cac67f91016391ba0e7f056dd03916b7;hb=ac6786141feadccdc48b819ab21a825a54881ded;hp=fb7c6e3c5ed10f531b3235dd3518d4464fa13c02;hpb=7b9bd49e22a1eab64f52dfec41b1dc71fce2369d;p=nodemanager.git diff --git a/plugins/interfaces.py b/plugins/interfaces.py index fb7c6e3..bc24b4e 100644 --- a/plugins/interfaces.py +++ b/plugins/interfaces.py @@ -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 xmlrpclib.ProtocolError as e: logger.log('interfaces (%s): failed to retrieve %s' % (slicename, url)) continue else: @@ -81,7 +89,7 @@ def GetSlivers(data, config=None, plc=None): logger.log('interfaces (%s): error writing file %s' % (slicename, dest)) continue - result = logger.log_call(['/usr/sbin/lxcsu', slicename, '/sbin/service network restart']) + result = logger.log_call(['/usr/sbin/lxcsu', slicename, '/sbin/service', 'network', 'restart']) if not result: logger.log('interfaces (%s): error restarting network service' % slicename) # try: