Beispiel #1
0
    def find_used_tn_vlans():
        tn_vlans = dict()
        slice_monitoring = [
            p for p in db_sync_manager.get_slice_monitoring_info()
        ]
        for slice_mon in slice_monitoring:
            if slice_mon is not None:
                slice_mon_tree = etree.fromstring(slice_mon)
                #slice_mon_tree.xpath("link//link_type[contains(@name, '%s')]" % ("virtual_link"))
                #slice_mon_tree.xpath("link_type[@name='%s']" % ("tn"))
                #slice_mon_tree.xpath("topology_list//topology//link_type[@name='%s']" % ("tn"))
                tn_link = slice_mon_tree.xpath(
                    "topology//link[@type='tn'][contains(@id, 'urn')]")
                if tn_link is None:
                    break

                # Retrieve SRC and DST STP endpoints and their associated VLAN
                link_id = tn_link[0].get("id")
                urn_reg = "urn.*(urn.*)\?vlan=(\d{1,4})-(urn.*)\?vlan=(\d{1,4})+.*"
                groups_reg = re.match(urn_reg, link_id)
                urn_src, vlan_src, urn_dst, vlan_dst = [
                    groups_reg.group(i) for i in xrange(1, 5)
                ]

                if urn_src not in tn_vlans:
                    tn_vlans[urn_src] = set([vlan_src])
                else:
                    tn_vlans[urn_src].add(vlan_src)
                if urn_dst not in tn_vlans:
                    tn_vlans[urn_dst] = set([vlan_dst])
                else:
                    tn_vlans[urn_dst].add(vlan_dst)
        return tn_vlans
Beispiel #2
0
 def send_topology(self, monitoring_server):
     # retrieve slice info from db (the info are already formatted!)
     slices = db_sync_manager.get_slice_monitoring_info()
     logger.debug("Slices: %d" % (len(slices),))
     for s in slices:
         self.__topologies = etree.fromstring(s)
         self.send()
Beispiel #3
0
    def find_used_tn_vlans():
        tn_vlans = dict()
        slice_monitoring = [ p for p in db_sync_manager.get_slice_monitoring_info() ]
        for slice_mon in slice_monitoring:
            if slice_mon is not None:        
                slice_mon_tree = etree.fromstring(slice_mon)
                #slice_mon_tree.xpath("link//link_type[contains(@name, '%s')]" % ("virtual_link"))
                #slice_mon_tree.xpath("link_type[@name='%s']" % ("tn"))
                #slice_mon_tree.xpath("topology_list//topology//link_type[@name='%s']" % ("tn"))
                tn_link = slice_mon_tree.xpath("topology//link[@type='tn'][contains(@id, 'urn')]")
                if tn_link is None:
                    break

                # Retrieve SRC and DST STP endpoints and their associated VLAN
                link_id = tn_link[0].get("id")                
                urn_reg = "urn.*(urn.*)\?vlan=(\d{1,4})-(urn.*)\?vlan=(\d{1,4})+.*"
                groups_reg = re.match(urn_reg, link_id)                
                urn_src, vlan_src, urn_dst, vlan_dst = [ groups_reg.group(i) for i in xrange(1,5) ]
                
                if urn_src not in tn_vlans:
                    tn_vlans[urn_src] = set([vlan_src])
                else:
                    tn_vlans[urn_src].add(vlan_src)
                if urn_dst not in tn_vlans:
                    tn_vlans[urn_dst] = set([vlan_dst])
                else:
                    tn_vlans[urn_dst].add(vlan_dst)
        return tn_vlans