Set USE_RFC8040 to True
[integration/test.git] / csit / libraries / Topology.py
1 """
2 Library for the robot based system test tool of the OpenDaylight project.
3 Authors: Baohua Yang@IBM, Denghui Huang@IBM
4 Updated: 2013-11-10
5 """
6 from robot.libraries.BuiltIn import BuiltIn
7
8
9 class Topology(object):
10     """
11     Topology class provide topology database and provide many method to get property of topology.
12     """
13
14     topo_nodes_db = [
15         [],
16         [{"type": "OF", "id": "00:00:00:00:00:00:00:01"}],
17         [
18             {"type": "OF", "id": "00:00:00:00:00:00:00:01"},
19             {"type": "OF", "id": "00:00:00:00:00:00:00:02"},
20             {"type": "OF", "id": "00:00:00:00:00:00:00:03"},
21         ],
22     ]
23
24     def __init__(self):
25         self.builtin = BuiltIn()
26
27     def get_nodes_from_topology(self, topo_level):
28         """
29         get nodes from topology database by topology tree level
30         """
31         if isinstance(topo_level, str) or isinstance(topo_level, unicode):
32             if topo_level.isdigit():
33                 topo_level = int(topo_level)
34                 if topo_level <= 0:
35                     return None
36                 return self.topo_nodes_db[topo_level]
37             else:
38                 return None
39         elif isinstance(topo_level, int):
40             if topo_level <= 0:
41                 return None
42             return self.topo_nodes_db[topo_level]
43         else:
44             return None
45
46
47 if __name__ == "__main__":
48     topology = Topology()
49     print(topology.get_nodes_from_topology(2))
50     print(topology.get_nodes_from_topology("2"))