В клиенте Python couchbase отсутствует метод flush?

Я не нашел кнопку сброса для корзины в интерфейсе администратора couchbase на порту 8091 . Возможно, из-за этого http://www.couchbase.com/issues/browse/MB-5351.

Тогда я увидел это Как удалить все предметы в ведре? поэтому я хотел сделать flush в клиенте Python.

import sys
from couchbase import Couchbase
from couchbase.exceptions import CouchbaseError
try:
    client = Couchbase.connect(bucket='production',host='localhost',port=8091)
except CouchbaseError as e:
    print " Sorry , we could not create connection to bucket specified , due to " , e
else :
    print "Successfully made the connection to bucket "

Здесь клиент я не нашел метод, чтобы сбросить. Я попробовал intellisense в IDE .

Пожалуйста, помогите мне очистить ведро через клиент Python.

1 ответ

Похоже, что Python SDK для couchbase в настоящее время не предоставляет метод flush(). Но поскольку метод flush предоставляется через API REST couchbase, вы можете использовать его для очистки вашего сегмента.

Ссылка: Couchbase REST API, Buckets API - http://docs.couchbase.com/admin/admin/REST/rest-bucket-intro.html

Python SDK предоставляет объект Admin, который вы можете использовать для выполнения задач администратора с помощью REST, используя метод http_request. исходный код: https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/admin.py

описание класса Admin (из источника):

Административное подключение к кластеру Couchbase.

With this object, you can do things which affect the cluster, such as
modifying buckets, allocating nodes, or retrieving information about
the cluster.

This object should **not** be used to perform Key/Value operations. The
:class:`couchbase.bucket.Bucket` is used for that.

Описание метода Admin.http_request (из источника):

    Perform an administrative HTTP request. This request is sent out to
    the administrative API interface (i.e. the "Management/REST API")
    of the cluster.

    See <LINK?> for a list of available comments.

    Note that this is a fairly low level function. This class will with
    time contain more and more wrapper methods for common tasks such
    as bucket creation or node allocation, and this method should
    mostly be used if a wrapper is not available.

Пример:

Сначала убедитесь, что для вашего сегмента включена опция Flush.

Я создал тестовую корзину с именем "default" для примера и создал 2 документа в корзине.

import sys
from couchbase import Couchbase
from couchbase.exceptions import CouchbaseError

#import Admin module
from couchbase.admin import Admin


#make an administrative connection using Admin object
try:
    admin = Admin(username='Administrator',password='password',host='localhost',port=8091)
except CouchbaseError as e:
    print " Sorry , we could not create admin connection , due to " , e
else :
    print "Successfully made an admin connection "


#retrieve bucket information for bucket named "default" 
#   "default" is just the name of the bucket I set up for trying this out
try:
    htres = admin.http_request("/pools/default/buckets/default")
except Exception as e:
    print "ERROR: ", e
    sys.exit()


#print the current number of items in the "default" bucket
#   "default" is just the name of the bucket I set up for trying this out
print "# of items before flush: ", htres.value['basicStats']['itemCount']


#flush bucket
try:
    #the bucket information request returned the path to the REST flush method for this bucket
    #   the flush method requires a POST request
    htres = admin.http_request(htres.value['controllers']['flush'],"POST")
except Exception as e:
    print "ERROR: ", e
    sys.exit()


#re-retrieve bucket information for bucket named "default" 
try:
    htres = admin.http_request("/pools/default/buckets/default")
except Exception as e:
    print "ERROR: ", e
    sys.exit()


#print the number of items in the "default" bucket (after flush)
print "# of items after flush: ", htres.value['basicStats']['itemCount']

результат:

Successfully made an admin connection 
# of items before flush:  2
# of items after flush:  0
Другие вопросы по тегам