X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sliver_libvirt.py;h=ed430885894c85a7a5312a56836caac849af9a7f;hb=d21e9214c45a1fa8703b8d8dd1900024fb3b8ebc;hp=c5b4bbce9c81385df443b020de48b89c5d5a99ec;hpb=710240acc763663798403b91459873a3d1f0cb84;p=nodemanager.git diff --git a/sliver_libvirt.py b/sliver_libvirt.py index c5b4bbc..ed43088 100644 --- a/sliver_libvirt.py +++ b/sliver_libvirt.py @@ -174,20 +174,33 @@ class Sliver_Libvirt(Account): try: tags = rec['rspec']['tags'] if 'interface' in tags: - interface = eval(tags['interface']) - if 'vlan' in interface: - vlanxml = "" % interface['vlan'] - else: - vlanxml = "" - if 'bridge' in interface: - xml = """ - - - %s - - -""" % (interface['bridge'], vlanxml) - logger.log('sliver_libvirty.py: interface XML is: %s' % xml) + interfaces = eval(tags['interface']) + if not isinstance(interfaces, (list, tuple)): + # if interface is not a list, then make it into a singleton list + interfaces = [interfaces] + tag_xml = "" + for interface in interfaces: + if 'vlan' in interface: + vlanxml = "" % interface['vlan'] + else: + vlanxml = "" + if 'bridge' in interface: + tag_xml = tag_xml + """ + + + %s + + + """ % (interface['bridge'], vlanxml) + else: + tag_xml = tag_xml + """ + + + + """ + xml = tag_xml + logger.log('sliver_libvirty.py: interface XML is: %s' % xml) + except: logger.log('sliver_libvirt.py: ERROR parsing "interface" tag for slice %s' % rec['name']) logger.log('sliver_libvirt.py: tag value: %s' % tags['interface'])