コード例 #1
0
ファイル: decision.py プロジェクト: edi2212/openr
    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)
コード例 #2
0
ファイル: commands.py プロジェクト: edi2212/openr
    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
コード例 #3
0
ファイル: decision.py プロジェクト: qmiinh/openr
    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)
コード例 #4
0
    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