import logger
import os
import curlwrapper
-import xmlrpclib
+import xmlrpc.client
try:
from hashlib import sha1 as sha
except ImportError:
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]
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:
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)