support links in the pgv2 rspec
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Sat, 15 Oct 2011 00:38:54 +0000 (20:38 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Sat, 15 Oct 2011 00:38:54 +0000 (20:38 -0400)
sfa/rspecs/versions/pgv2.py

index 4272b9a..177b32c 100644 (file)
@@ -219,7 +219,26 @@ class PGv2(BaseVersion):
         pass
 
     def add_links(self, links, no_dupes=False):
-        pass
+        for link in links:
+            link_elem = etree.SubElement(self.xml.root, 'link' )
+            link_elem.set('component_name', link.component_name) 
+            link_elem.set('component_id', link.component_id)
+            cm_elem = etree.SubElement(link_elem, 'component_manager')
+            cm_elem.set('name', link.component_manager_name)
+            for endpoint in [link.endpoint1, link.enpoint2]:
+                interface_ref = etree.SubElement(link_elem, 'interface_ref', component_id=endpoint.id)
+                
+            property_attrs = {'capicity': link.capacity, 
+                              'latency': link.latency, 
+                              'packet_loss': link.packet_loss}    
+            property1 = etree.SubElement(link_elem, 'property', source_id=link.endpoint1.id, \
+              dest_id = link.endpoint2.id, capacity = link.capacity, latency=link.latency, \
+              packet_loss = link.packet_loss)
+            
+            property2 = etree.SubElement(link_elem, 'property', source_id=link.endpoint2.id, \
+              dest_id = link.endpoint1.id, capacity = link.capacity, latency=link.latency, \
+              packet_loss = link.packet_loss)
+            link_type = etree.SubElement(link_elem, 'link_type', name=link.type)
 
     def merge(self, in_rspec):
         """