Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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