def print_db_delta_prefix(self, kvstore_keyvals, kvstore_prefix_node_names, decision_prefix_dbs, json): """Returns status code. 0 = success, 1 = failure""" prefix_maps = utils.collate_prefix_keys(kvstore_keyvals) for node_name, prefix_db in prefix_maps.items(): kvstore_prefix_node_names.add(node_name) if node_name not in decision_prefix_dbs: print( printing.render_vertical_table([[ "node {}'s prefix db is missing in Decision".format( node_name) ]])) return 1 decision_prefix_db = decision_prefix_dbs[node_name] decision_prefix_set = {} utils.update_global_prefix_db(decision_prefix_set, decision_prefix_db) lines = utils.sprint_prefixes_db_delta(decision_prefix_set, prefix_db) if lines: print( printing.render_vertical_table([[ "node {}'s prefix db in Decision out of sync with " "KvStore's".format(node_name) ]])) print("\n".join(lines)) return 1 return 0
def get_node_to_ips(self, client: OpenrCtrl.Client) -> Dict: """ get the dict of all nodes to their IP in the network """ node_dict = {} keyDumpParams = self.buildKvStoreKeyDumpParams(Consts.PREFIX_DB_MARKER) resp = client.getKvStoreKeyValsFiltered(keyDumpParams) prefix_maps = utils.collate_prefix_keys(resp.keyVals) for node, prefix_db in prefix_maps.items(): node_dict[node] = self.get_node_ip(prefix_db) return node_dict
def get_node_to_ips(self, client: OpenrCtrl.Client, area: str = None) -> Dict: """ get the dict of all nodes to their IP in the network """ node_dict = {} keyDumpParams = self.buildKvStoreKeyDumpParams(Consts.PREFIX_DB_MARKER) resp = kv_store_types.Publication() if not self.area_feature: resp = client.getKvStoreKeyValsFiltered(keyDumpParams) else: if area is None: print(f"Error: Must specify one of the areas: {self.areas}") sys.exit(1) resp = client.getKvStoreKeyValsFilteredArea(keyDumpParams, area) prefix_maps = utils.collate_prefix_keys(resp.keyVals) for node, prefix_db in prefix_maps.items(): node_dict[node] = self.get_node_ip(prefix_db) return node_dict