It is hard to reason about TEManager because of the amount of state it keeps around, and because of the ways to add/update topologies to it. For example, we instantiate and use TEManager like so:
manager = TEManager(topology1, request)
manager.add_topology(topology2)
manager.add_topology(topology3)
...
manager.update_topology(updated_topology1)
...
graph = temanager.generate_graph_te()
traffic_matrix = temanager.generate_connection_te()
...
It would be nicer to use TEManager like so:
manager = TEManager()
for topology in [topology1, topology2, topology3]
manager.add_topology(topology)
...
# Remove/hide update_topology(). Instead, add_topology() will do the update if a topology already exists.
manager.add_topology(updated_topology1)
...
graph = temanager.generate_graph_te()
traffic_matrix = temanager.generate_connection_te(request)
...
This is related to this TODO item:
|
# TODO: a nicer thing to do would be to keep less state around. |
It is hard to reason about TEManager because of the amount of state it keeps around, and because of the ways to add/update topologies to it. For example, we instantiate and use TEManager like so:
It would be nicer to use TEManager like so:
This is related to this TODO item:
pce/src/sdx/pce/topology/temanager.py
Line 34 in d18c67e