def print_adj_delta(self, key, value, delta, global_adj_db, global_publication_db): _, reported_node_name = key.split(":", 1) new_adj_db = serializer.deserialize_thrift_object( value.value, lsdb_types.AdjacencyDatabase) if delta: old_adj_db = global_adj_db.get(new_adj_db.thisNodeName, None) if old_adj_db is None: lines = ("ADJ_DB_ADDED: {}\n".format(new_adj_db.thisNodeName) + utils.sprint_adj_db_full(global_adj_db, new_adj_db, False)[1]) else: lines = utils.sprint_adj_db_delta(new_adj_db, old_adj_db) lines = "\n".join(lines) else: _, lines = utils.sprint_adj_db_full(global_adj_db, new_adj_db, False) if lines: self.print_timestamp() self.print_publication_delta( "{}'s adjacencies".format(reported_node_name), utils.sprint_pub_update(global_publication_db, key, value), lines, ) utils.update_global_adj_db(global_adj_db, new_adj_db)
def print_adj_delta( self, key: str, value: openr_types.Value, delta: bool, global_adj_db: Dict, global_publication_db: Dict, ): new_adj_db = serializer.deserialize_thrift_object( value.value, openr_types.AdjacencyDatabase) if delta: old_adj_db = global_adj_db.get(new_adj_db.thisNodeName, None) if old_adj_db is None: lines = "ADJ_DB_ADDED: {}\n".format( new_adj_db.thisNodeName) + utils.sprint_adj_db_full( global_adj_db, new_adj_db, False) else: lines = utils.sprint_adj_db_delta(new_adj_db, old_adj_db) lines = "\n".join(lines) else: lines = utils.sprint_adj_db_full(global_adj_db, new_adj_db, False) if lines: self.print_publication_delta( "{}'s adjacencies".format(new_adj_db.thisNodeName), utils.sprint_pub_update(global_publication_db, key, value), lines, timestamp=True, ) utils.update_global_adj_db(global_adj_db, new_adj_db)