当前位置: 首页>>代码示例>>Python>>正文


Python RestConnection.all_docs方法代码示例

本文整理汇总了Python中membase.api.rest_client.RestConnection.all_docs方法的典型用法代码示例。如果您正苦于以下问题:Python RestConnection.all_docs方法的具体用法?Python RestConnection.all_docs怎么用?Python RestConnection.all_docs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在membase.api.rest_client.RestConnection的用法示例。


在下文中一共展示了RestConnection.all_docs方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: verify_es_num_docs

# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import all_docs [as 别名]
    def verify_es_num_docs(self, src_server, dest_server, kv_store=1, retry=10, verification_count=10000):
        cb_rest = RestConnection(src_server)
        es_rest = RestConnection(dest_server)
        buckets = self.xd_ref._get_cluster_buckets(src_server)
        wait = 20
        for bucket in buckets:
            all_cb_docs = cb_rest.all_docs(bucket.name)
            cb_valid = [str(row["id"]) for row in all_cb_docs["rows"]]
            cb_num_items = cb_rest.get_bucket_stats(bucket.name)["curr_items"]
            es_num_items = es_rest.get_bucket(bucket.name).stats.itemCount
            _retry = retry
            while _retry > 0 and cb_num_items != es_num_items:
                self._log.info(
                    "elasticsearch items %s, expected: %s....retry after %s seconds"
                    % (es_num_items, cb_num_items, wait)
                )
                time.sleep(wait)
                last_es_items = es_num_items
                es_num_items = es_rest.get_bucket(bucket.name).stats.itemCount
                if es_num_items == last_es_items:
                    _retry = _retry - 1
                    # if index doesn't change reduce retry count
                elif es_num_items <= last_es_items:
                    self._log.info("%s items removed from index " % (es_num_items - last_es_items))
                    _retry = retry
                elif es_num_items >= last_es_items:
                    self._log.info("%s items added to index" % (es_num_items - last_es_items))
                    _retry = retry

            if es_num_items != cb_num_items:
                self.xd_ref.fail(
                    "Error: Couchbase has %s docs, ElasticSearch has %s docs " % (cb_num_items, es_num_items)
                )

            # query for all es keys
            es_valid = es_rest.all_docs(keys_only=True, indices=[bucket.name], size=cb_num_items)

            if len(es_valid) != cb_num_items:
                self._log.info(
                    "WARNING: Couchbase has %s docs, ElasticSearch all_docs returned %s docs "
                    % (cb_num_items, len(es_valid))
                )
            for _id in cb_valid[:verification_count]:  # match at most 10k keys
                id_found = _id in es_valid

                if id_found == False:
                    # document missing from all_docs query do manual term search
                    doc = es_rest.search_all_nodes(_id, indices=[bucket.name])
                    if doc is None:
                        self.xd_ref.fail("Document %s Missing from ES Index (%s)" % (_id, bucket.name))

            self._log.info(
                "Verified couchbase bucket (%s) replicated (%s) docs to elasticSearch with matching keys"
                % (bucket.name, cb_num_items)
            )
开发者ID:DavidAlphaFox,项目名称:couchbase,代码行数:57,代码来源:esbasetests.py

示例2: _verify_es_values

# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import all_docs [as 别名]
    def _verify_es_values(self, src_server, dest_server, kv_store=1, verification_count=10000):
        cb_rest = RestConnection(src_server)
        es_rest = RestConnection(dest_server)
        buckets = self.xd_ref._get_cluster_buckets(src_server)
        for bucket in buckets:
            mc = VBucketAwareMemcached(cb_rest, bucket)
            es_valid = es_rest.all_docs(indices=[bucket.name], size=verification_count)

            # compare values of es documents to documents in couchbase
            for row in es_valid[:verification_count]:
                key = str(row["meta"]["id"])

                try:
                    _, _, doc = mc.get(key)
                    val_src = str(json.loads(doc)["site_name"])
                    val_dest = str(row["doc"]["site_name"])
                    if val_src != val_dest:
                        self.xd_ref.fail(
                            "Document %s has unexpected value (%s) expected (%s)" % (key, val_src, val_dest)
                        )
                except MemcachedError as e:
                    self.xd_ref.fail("Error during verification.  Index contains invalid key: %s" % key)

            self._log.info(
                "Verified doc values in couchbase bucket (%s) match values in elastic search" % (bucket.name)
            )
开发者ID:DavidAlphaFox,项目名称:couchbase,代码行数:28,代码来源:esbasetests.py

示例3: _verify_es_revIds

# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import all_docs [as 别名]
    def _verify_es_revIds(self, src_server, dest_server, kv_store=1, verification_count=10000):
        cb_rest = RestConnection(src_server)
        es_rest = RestConnection(dest_server)
        buckets = self.xd_ref._get_cluster_buckets(src_server)
        for bucket in buckets:

            # retrieve all docs from couchbase and es
            # then represent doc lists from couchbase
            # and elastic search in following format
            # [  (id, rev), (id, rev) ... ]
            all_cb_docs = cb_rest.all_docs(bucket.name)
            cb_id_rev_list = self.get_cb_id_rev_list(all_cb_docs)

            es_valid = es_rest.all_docs(indices=[bucket.name], size=len(cb_id_rev_list))
            es_id_rev_list = self.get_es_id_rev_list(es_valid)

            # verify each (id, rev) pair returned from couchbase exists in elastic search
            for cb_id_rev_pair in cb_id_rev_list:

                try:
                    # lookup es document with matching _id and revid
                    # if no exception thrown then doc was properly indexed
                    es_list_pos = es_id_rev_list.index(cb_id_rev_pair)
                except ValueError:

                    # attempt manual lookup by search term
                    es_doc = es_rest.search_all_nodes(cb_id_rev_pair[0], indices=[bucket.name])

                    if es_doc is None:
                        self.xd_ref.fail(
                            "Error during verification:  %s does not exist in ES index %s"
                            % (cb_id_rev_pair, bucket.name)
                        )

                    # compare
                    es_id_rev_pair = (es_doc["_source"]["meta"]["id"], es_doc["_source"]["meta"]["rev"])
                    if cb_id_rev_pair != es_id_rev_pair:
                        self.xd_ref.fail(
                            "ES document %s Missmatch Couchbase doc (%s). bucket (%s)"
                            % (es_id_rev_pair, cb_id_rev_pair, bucket.name)
                        )

            self._log.info(
                "Verified doc rev-ids in couchbase bucket (%s) match meta rev-ids elastic search" % (bucket.name)
            )
开发者ID:DavidAlphaFox,项目名称:couchbase,代码行数:47,代码来源:esbasetests.py

示例4: _verify_keys

# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import all_docs [as 别名]
    def _verify_keys(self, doc_names, prefix):
        master = self.servers[0]
        rest = RestConnection(master)
        bucket = "default"

        results = rest.all_docs(bucket)
        result_keys = ViewBaseTests._get_keys(self, results)

        # result_keys also contains the design document, but this doesn't
        # matter if we compare like this
        if set(doc_names) - set(result_keys):
            self.fail("returned doc names have different values than expected")
开发者ID:abhinavdangeti,项目名称:testrunner,代码行数:14,代码来源:viewtests.py

示例5: test_all_docs_startkey_endkey_validation

# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import all_docs [as 别名]
    def test_all_docs_startkey_endkey_validation(self):
        """Regression test for MB-6591

        This tests makes sure that the validation of startkey/endkey
        works with _all_docs which uses raw collation. Return results
        when startkey is smaller than endkey. When endkey is smaller than
        the startkey and exception should be raised. With raw collation
        "Foo" < "foo", with Unicode collation "foo" < "Foo".
        """
        bucket = "default"
        master = self.servers[0]
        rest = RestConnection(master)
        ViewBaseTests._setup_cluster(self)

        startkey = '"Foo"'
        endkey = '"foo"'

        params = {"startkey": startkey, "endkey": endkey}
        results = rest.all_docs(bucket, params)
        self.assertTrue('rows' in results, "Results were returned")

        # Flip startkey and endkey
        params = {"startkey": endkey, "endkey": startkey}
        self.assertRaises(Exception, rest.all_docs, bucket, params)
开发者ID:abhinavdangeti,项目名称:testrunner,代码行数:26,代码来源:viewtests.py


注:本文中的membase.api.rest_client.RestConnection.all_docs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。