From: Andy Bavier Date: Wed, 12 Sep 2012 14:56:17 +0000 (-0400) Subject: Generate element in libvirt XML template. X-Git-Tag: nodemanager-2.1-12~7 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=da86cf851cca445bee8da1d495cca83ec196bb13 Generate element in libvirt XML template. --- diff --git a/sliver_libvirt.py b/sliver_libvirt.py index 6f4cce1..778eb10 100644 --- a/sliver_libvirt.py +++ b/sliver_libvirt.py @@ -163,3 +163,28 @@ class Sliver_Libvirt(Account): # Call the upper configure method (ssh keys...) Account.configure(self, rec) + # A placeholder until we get true VirtualInterface objects + @staticmethod + def get_interfaces_xml(rec): + xml = """ + + + +""" + try: + tags = rec['rspec']['tags'] + if 'interface' in tags: + interface = eval(tags['interface']) + if 'bridge' in interface: + xml = """ + + + + +""" % interface['bridge'] + 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']) + + return xml diff --git a/sliver_lxc.py b/sliver_lxc.py index d3e077f..f2521a3 100644 --- a/sliver_lxc.py +++ b/sliver_lxc.py @@ -146,10 +146,13 @@ class Sliver_LXC(Sliver_Libvirt, Initscript): else: logger.log("Cannot find XML template %s"%template_filename_sliceimage) return + + interfaces = Sliver_Libvirt.get_interfaces_xml(rec) + try: with open(template_filename) as f: template = Template(f.read()) - xml = template.substitute(name=name, xid=xid) + xml = template.substitute(name=name, interfaces=interfaces) except IOError: logger.log('Failed to parse or use XML template file %s'%template_filename) return