made preexisting nodes a local variable, renamed reuseable to delete_nodes for more clarity

This commit is contained in:
Blake Harnden 2019-11-25 09:52:50 -08:00
parent 4e32c9c13c
commit 27a37c77fc

View file

@ -59,8 +59,7 @@ class CoreClient:
# helpers # helpers
self.interface_to_edge = {} self.interface_to_edge = {}
self.reusable = [] self.deleted_nodes = []
self.preexisting = set()
self.interfaces_manager = InterfaceManager(self.app) self.interfaces_manager = InterfaceManager(self.app)
self.created_nodes = set() self.created_nodes = set()
self.created_links = set() self.created_links = set()
@ -84,8 +83,7 @@ class CoreClient:
# helpers # helpers
self.created_nodes.clear() self.created_nodes.clear()
self.created_links.clear() self.created_links.clear()
self.reusable.clear() self.deleted_nodes.clear()
self.preexisting.clear()
self.interfaces_manager.reset() self.interfaces_manager.reset()
self.interface_to_edge.clear() self.interface_to_edge.clear()
# session data # session data
@ -195,14 +193,15 @@ class CoreClient:
# determine next node id and reusable nodes # determine next node id and reusable nodes
max_id = 1 max_id = 1
existing_nodes = set()
for node in session.nodes: for node in session.nodes:
if node.id > max_id: if node.id > max_id:
max_id = node.id max_id = node.id
self.preexisting.add(node.id) existing_nodes.add(node.id)
self.id = max_id self.id = max_id
for i in range(1, self.id): for i in range(1, self.id):
if i not in self.preexisting: if i not in existing_nodes:
self.reusable.append(i) self.deleted_nodes.append(i)
# draw session # draw session
self.app.canvas.reset_and_redraw(session) self.app.canvas.reset_and_redraw(session)
@ -426,12 +425,12 @@ class CoreClient:
:rtype: int :rtype: int
:return: the next id to be used :return: the next id to be used
""" """
if len(self.reusable) == 0: if self.deleted_nodes:
return self.deleted_nodes.pop(0)
else:
new_id = self.id new_id = self.id
self.id = self.id + 1 self.id = self.id + 1
return new_id return new_id
else:
return self.reusable.pop(0)
def create_node(self, x, y, node_type, model): def create_node(self, x, y, node_type, model):
""" """
@ -484,7 +483,7 @@ class CoreClient:
logging.error("unknown node: %s", node_id) logging.error("unknown node: %s", node_id)
continue continue
del self.canvas_nodes[node_id] del self.canvas_nodes[node_id]
self.reusable.append(node_id) self.deleted_nodes.append(node_id)
if node_id in self.mobility_configs: if node_id in self.mobility_configs:
del self.mobility_configs[node_id] del self.mobility_configs[node_id]
if node_id in self.wlan_configs: if node_id in self.wlan_configs:
@ -526,7 +525,7 @@ class CoreClient:
deleted_cidrs = deleted_cidrs - keep_cidrs deleted_cidrs = deleted_cidrs - keep_cidrs
for cidr in deleted_cidrs: for cidr in deleted_cidrs:
self.interfaces_manager.deleted_cidr(cidr) self.interfaces_manager.deleted_cidr(cidr)
self.reusable.sort() self.deleted_nodes.sort()
def create_interface(self, canvas_node): def create_interface(self, canvas_node):
node = canvas_node.core_node node = canvas_node.core_node