Add support for connecting virtual interfaces to VLANs via Open vSwitch.
authorAndy Bavier <acb@cs.princeton.edu>
Tue, 13 Nov 2012 21:16:14 +0000 (16:16 -0500)
committerAndy Bavier <acb@cs.princeton.edu>
Tue, 13 Nov 2012 21:16:14 +0000 (16:16 -0500)
plugins/interfaces.py
sliver_libvirt.py

index 51c7cf2..8563696 100644 (file)
@@ -53,7 +53,7 @@ def GetSlivers(data, config=None, plc=None):
                         continue
 
                     for key, value in mydict.items():
-                        if key in ['bridge']: 
+                        if key in ['bridge', 'vlan']: 
                             continue
                         contents += '%s="%s"\n' % (key, value)
 
index 778eb10..c5b4bbc 100644 (file)
@@ -175,13 +175,18 @@ class Sliver_Libvirt(Account):
             tags = rec['rspec']['tags']
             if 'interface' in tags:
                 interface = eval(tags['interface'])
+                if 'vlan' in interface:
+                    vlanxml = "<vlan><tag id='%s'/></vlan>" % interface['vlan']
+                else:
+                    vlanxml = ""
                 if 'bridge' in interface:
                     xml = """
     <interface type='bridge'>
       <source bridge='%s'/>
+      %s
       <virtualport type='openvswitch'/>
     </interface>
-""" % interface['bridge']
+""" % (interface['bridge'], vlanxml)
                     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'])