本文整理汇总了Python中membase.helper.spatial_helper.SpatialHelper.generate_matching_docs方法的典型用法代码示例。如果您正苦于以下问题:Python SpatialHelper.generate_matching_docs方法的具体用法?Python SpatialHelper.generate_matching_docs怎么用?Python SpatialHelper.generate_matching_docs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类membase.helper.spatial_helper.SpatialHelper
的用法示例。
在下文中一共展示了SpatialHelper.generate_matching_docs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: SpatialViewQueriesTests
# 需要导入模块: from membase.helper.spatial_helper import SpatialHelper [as 别名]
# 或者: from membase.helper.spatial_helper.SpatialHelper import generate_matching_docs [as 别名]
#.........这里部分代码省略.........
rebalance.result()
servs_in = []
servs_out = []
if servers_in:
servs_in = self.servers[start_cluster:servers_in + 1]
if servers_out:
if start_cluster > 1:
servs_out = self.servers[1:start_cluster]
servs_out = servs_out[-servers_out:]
else:
servs_out = self.servers[-servers_out:]
rebalance = self.cluster.async_rebalance(self.servers, servs_in, servs_out)
self.query_and_verify_result(self.docs, self.params)
rebalance.result()
def test_view_queries_node_pending_state(self):
operation = self.input.param('operation', 'add_node')
rest = RestConnection(self.master)
if operation == 'add_node':
self.log.info("adding the node %s:%s" % (
self.servers[1].ip, self.servers[1].port))
otpNode = rest.add_node(self.master.rest_username, self.master.rest_password,
self.servers[1].ip, self.servers[1].port)
elif operation == 'failover':
nodes = rest.node_statuses()
nodes = [node for node in nodes
if node.ip != self.master.ip or node.port != self.master.port]
rest.fail_over(nodes[0].id)
else:
self.fail("There is no operation %s" % operation)
self.query_and_verify_result(self.docs, self.params)
def test_view_queries_failover(self):
num_nodes = self.input.param('num-nodes', 1)
self.cluster.failover(self.servers,
self.servers[1:num_nodes])
self.cluster.rebalance(self.servers, [], self.servers[1:num_nodes])
self.query_and_verify_result(self.docs, self.params)
def test_views_with_warm_up(self):
warmup_node = self.servers[-1]
shell = RemoteMachineShellConnection(warmup_node)
shell.stop_couchbase()
time.sleep(20)
shell.start_couchbase()
shell.disconnect()
self.query_and_verify_result(self.docs, self.params)
def test_view_queries_during_ddoc_compaction(self):
fragmentation_value = self.input.param("fragmentation_value", 80)
self.disable_compaction()
fragmentation_monitor = self.cluster.async_monitor_view_fragmentation(self.master,
self.ddocs[0].name, fragmentation_value, self.default_bucket_name)
end_time = time.time() + self.wait_timeout * 30
while fragmentation_monitor.state != "FINISHED" and end_time > time.time():
self.docs = self.helper.insert_docs(self.num_items, 'spatial-doc',
return_docs=True)
if end_time < time.time() and fragmentation_monitor.state != "FINISHED":
self.fail("impossible to reach compaction value after %s sec" % (self.wait_timeout * 20))
fragmentation_monitor.result()
compaction_task = self.cluster.async_compact_view(self.master, self.ddocs[0].name,
self.default_bucket_name)
self.query_and_verify_result(self.docs, self.params)
result = compaction_task.result(self.wait_timeout * 10)
self.assertTrue(result, "Compaction didn't finished correctly. Please check diags")
def get_query_params(self):
current_params = {}
for key in self.input.test_params:
if key == 'skip' or key == 'limit':
current_params[key] = int(self.input.test_params[key])
elif key == 'bbox':
current_params[key] = [int(x) for x in
self.input.test_params[key][1:-1].split(",")]
elif key == 'stale':
current_params[key] = self.input.test_params[key]
return current_params
def query_and_verify_result(self, doc_inserted, params, node=None):
try:
rest = RestConnection(self.master)
if node:
rest = RestConnection(node)
expected_ddocs = self.helper.generate_matching_docs(doc_inserted, params)
for ddoc in self.ddocs:
for view in ddoc.spatial_views:
result_ddocs = self.helper.query_view(rest, ddoc, view,
bucket=self.bucket_name,
extra_params=params,
num_expected=len(expected_ddocs),
num_tries=20)
self.helper.verify_matching_keys(expected_ddocs, result_ddocs)
except Exception as ex:
self.thread_crashed.set()
self.log.error("****ERROR***** \n At least one of threads is crashed: %s" % (ex))
raise ex
finally:
if not self.thread_stopped.is_set():
self.thread_stopped.set()