def _run( self, client: OpenrCtrl.Client, src: str, dst: str, max_hop: int, area: str, *args, **kwargs, ) -> None: if not src or not dst: host_id = client.getMyNodeName() src = src or host_id dst = dst or host_id # pyre-fixme[16]: `PathCmd` has no attribute `prefix_dbs`. self.prefix_dbs: Dict[str, openr_types.PrefixDatabase] = {} area = utils.get_area_id(client, area) # Get prefix_dbs from KvStore params = openr_types.KeyDumpParams(Consts.PREFIX_DB_MARKER) params.keys = [Consts.PREFIX_DB_MARKER] if area is None: pub = client.getKvStoreKeyValsFiltered(params) else: pub = client.getKvStoreKeyValsFilteredArea(params, area) for value in pub.keyVals.values(): utils.parse_prefix_database("", "", self.prefix_dbs, value) paths = self.get_paths(client, src, dst, max_hop) self.print_paths(paths)
def buildKvStoreKeyDumpParams( self, prefix: str = Consts.ALL_DB_MARKER, originator_ids: Optional[List[str]] = None, keyval_hash: Optional[Dict[str, openr_types.Value]] = None, ) -> openr_types.KeyDumpParams: """ Build KeyDumpParams based on input parameter list """ params = openr_types.KeyDumpParams(prefix) # pyre-fixme[8]: Attribute has type `Optional[typing.Set[str]]`; used as # `List[Variable[_T]]`. params.originatorIds = [] params.keyValHashes = None if prefix: params.keys = [prefix] if originator_ids: # pyre-fixme[8]: Attribute has type `Optional[typing.Set[str]]`; used as # `List[str]`. params.originatorIds = originator_ids if keyval_hash: params.keyValHashes = keyval_hash return params
def get_dbs(self, client: OpenrCtrl.Client, area: str) -> Tuple[Dict, Dict, Dict]: # get LSDB from Decision decision_adj_dbs = client.getDecisionAdjacencyDbs() decision_prefix_dbs = client.getDecisionPrefixDbs() area = utils.get_area_id(client, area) # get LSDB from KvStore params = openr_types.KeyDumpParams(Consts.ALL_DB_MARKER) params.keys = [Consts.ALL_DB_MARKER] if area is None: kvstore_keyvals = client.getKvStoreKeyValsFiltered(params).keyVals else: kvstore_keyvals = client.getKvStoreKeyValsFilteredArea(params, area).keyVals return (decision_adj_dbs, decision_prefix_dbs, kvstore_keyvals)
def buildKvStoreKeyDumpParams( self, prefix: str = Consts.ALL_DB_MARKER, originator_ids: Optional[Set[str]] = None, keyval_hash: Optional[Dict[str, openr_types.Value]] = None, ) -> openr_types.KeyDumpParams: """ Build KeyDumpParams based on input parameter list """ params = openr_types.KeyDumpParams(prefix) params.originatorIds = originator_ids if originator_ids else None params.keyValHashes = keyval_hash if keyval_hash else None if prefix: params.keys = [prefix] return params