def get_snapshot(self, delta): # get the active network snapshot first, so we can compute deltas global_dbs = bunch.Bunch({ 'prefixes': {}, 'adjs': {}, 'interfaces': {}, 'publications': {}, # map(key -> (version, originatorId)) }) if delta: resp = self.client.dump_all_with_prefix() global_dbs.prefixes = utils.build_global_prefix_db(resp) global_dbs.adjs = utils.build_global_adj_db(resp) global_dbs.interfaces = utils.build_global_interface_db(resp) for (key, value) in resp.keyVals.items(): global_dbs.publications[key] = (value.version, value.originatorId) return global_dbs
def process_snapshot(self, resp: kv_store_types.Publication, area: str) -> Dict: global_dbs = bunch.Bunch( { "prefixes": {}, "adjs": {}, "publications": {}, # map(key -> kv_store_types.Value) } ) # Filter key-vals based for an area if specified if area: resp.keyVals = {k: v for k, v in resp.keyVals.items() if v.area == area} # Populate global_dbs global_dbs.prefixes = utils.build_global_prefix_db(resp) global_dbs.adjs = utils.build_global_adj_db(resp) for key, value in resp.keyVals.items(): global_dbs.publications[key] = value print("Done. Loaded {} initial key-values".format(len(resp.keyVals))) return global_dbs
def get_snapshot(self, delta): # get the active network snapshot first, so we can compute deltas global_dbs = bunch.Bunch( { "prefixes": {}, "adjs": {}, "publications": {}, # map(key -> (version, originatorId)) } ) if delta: print("Retrieving KvStore snapshot ... ") resp = self.client.dump_all_with_filter() global_dbs.prefixes = utils.build_global_prefix_db(resp) global_dbs.adjs = utils.build_global_adj_db(resp) for key, value in resp.keyVals.items(): global_dbs.publications[key] = (value.version, value.originatorId) print("Done. Loaded {} initial key-values".format(len(resp.keyVals))) else: print("Skipping retrieval of KvStore snapshot") return global_dbs
def get_snapshot(self, client: OpenrCtrl.Client, delta: Any) -> Dict: # get the active network snapshot first, so we can compute deltas global_dbs = bunch.Bunch( { "prefixes": {}, "adjs": {}, "publications": {}, # map(key -> (version, originatorId)) } ) if delta: print("Retrieving KvStore snapshot ... ") keyDumpParams = self.buildKvStoreKeyDumpParams(Consts.ALL_DB_MARKER) resp = client.getKvStoreKeyValsFiltered(keyDumpParams) global_dbs.prefixes = utils.build_global_prefix_db(resp) global_dbs.adjs = utils.build_global_adj_db(resp) for key, value in resp.keyVals.items(): global_dbs.publications[key] = (value.version, value.originatorId) print("Done. Loaded {} initial key-values".format(len(resp.keyVals))) else: print("Skipping retrieval of KvStore snapshot") return global_dbs