Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    def _run(self, client: OpenrCtrl.Client, src: str, dst: str, max_hop: int,
             area: str) -> None:
        if not src or not dst:
            host_id = client.getMyNodeName()
            src = src or host_id
            dst = dst or host_id

        self.prefix_dbs: Dict[str, lsdb_types.PrefixDatabase] = {}
        area = utils.get_area_id(self.cli_opts, area)
        # Get prefix_dbs from KvStore
        if area is None:
            pub = client.getKvStoreKeyValsFiltered(
                kv_store_types.KeyDumpParams(Consts.PREFIX_DB_MARKER))
        else:
            pub = client.getKvStoreKeyValsFilteredArea(
                kv_store_types.KeyDumpParams(Consts.PREFIX_DB_MARKER), 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)