本文整理汇总了Python中membase.api.rest_client.RestConnection.get_nodes_services方法的典型用法代码示例。如果您正苦于以下问题:Python RestConnection.get_nodes_services方法的具体用法?Python RestConnection.get_nodes_services怎么用?Python RestConnection.get_nodes_services使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类membase.api.rest_client.RestConnection
的用法示例。
在下文中一共展示了RestConnection.get_nodes_services方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_online_upgrade_with_failover
# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import get_nodes_services [as 别名]
def test_online_upgrade_with_failover(self):
upgrade_nodes = self.servers[:self.nodes_init]
if self.disable_plasma_upgrade:
self._install(self.nodes_in_list, version=self.upgrade_to)
rebalance = self.cluster.async_rebalance(self.servers[:self.nodes_init],
[self.nodes_in_list[0]], [],
services=["index"])
rebalance.result()
self.sleep(100)
self.disable_upgrade_to_plasma(self.nodes_in_list[0])
for node in upgrade_nodes:
node_rest = RestConnection(node)
node_info = "{0}:{1}".format(node.ip, node.port)
node_services_list = node_rest.get_nodes_services()[node_info]
if "index" in node_services_list:
self._create_equivalent_indexes(node)
failover_task = self.cluster.async_failover([self.master], failover_nodes=[node], graceful=False)
failover_task.result()
self.sleep(100)
log.info("Node Failed over...")
upgrade_th = self._async_update(self.upgrade_to, [node])
for th in upgrade_th:
th.join()
log.info("==== Upgrade Complete ====")
self.sleep(120)
rest = RestConnection(self.master)
nodes_all = rest.node_statuses()
for cluster_node in nodes_all:
if cluster_node.ip == node.ip:
log.info("Adding Back: {0}".format(node))
rest.add_back_node(cluster_node.id)
rest.set_recovery_type(otpNode=cluster_node.id, recoveryType="full")
log.info("Adding node back to cluster...")
active_nodes = [srvr for srvr in self.servers if srvr.ip != node.ip]
rebalance = self.cluster.async_rebalance(active_nodes, [], [])
rebalance.result()
self.sleep(100)
self._remove_equivalent_indexes(node)
self.sleep(60)
msg = "Cluster is not healthy after upgrade"
self.assertTrue(self.wait_until_cluster_is_healthy(), msg)
log.info("Cluster is healthy")
self.add_built_in_server_user()
self.sleep(20)
if self.initial_version.split("-")[0] in UPGRADE_VERS:
self.multi_drop_index()
self.sleep(100)
self._create_indexes()
self.sleep(100)
self.assertTrue(self.wait_until_indexes_online(), "Some indexes are not online")
log.info("All indexes are online")
self._query_index("post_upgrade")
self._verify_post_upgrade_results()
self._update_int64_dataset()
self._query_for_long_num()
示例2: test_online_upgrade_with_rebalance
# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import get_nodes_services [as 别名]
def test_online_upgrade_with_rebalance(self):
upgrade_nodes = self.servers[:self.nodes_init]
if self.disable_plasma_upgrade:
self._install(self.nodes_in_list, version=self.upgrade_to)
rebalance = self.cluster.async_rebalance(
self.servers[:self.nodes_init],
[self.nodes_in_list[0]], [],
services=["index"])
rebalance.result()
self.sleep(100)
self.disable_upgrade_to_plasma(self.nodes_in_list[0])
for node in upgrade_nodes:
node_rest = RestConnection(node)
node_info = "{0}:{1}".format(node.ip, node.port)
node_services_list = node_rest.get_nodes_services()[node_info]
node_services = [",".join(node_services_list)]
log.info("Rebalancing the node out...")
rebalance = self.cluster.async_rebalance(self.servers[:self.nodes_init],[], [node])
rebalance.result()
self.sleep(100)
active_nodes = [srvr for srvr in self.servers if srvr.ip != node.ip]
log.info("Upgrading the node...")
upgrade_th = self._async_update(self.upgrade_to, [node])
for th in upgrade_th:
th.join()
self.sleep(120)
log.info("==== Upgrade Complete ====")
log.info("Adding node back to cluster...")
rebalance = self.cluster.async_rebalance(active_nodes,
[node], [],
services=node_services)
rebalance.result()
self.sleep(100)
node_version = RestConnection(node).get_nodes_versions()
log.info("{0} node Upgraded to: {1}".format(node.ip, node_version))
msg = "Cluster is not healthy after upgrade"
self.assertTrue(self.wait_until_cluster_is_healthy(), msg)
log.info("Cluster is healthy")
self.add_built_in_server_user()
self.sleep(20)
if self.initial_version.split("-")[0] in UPGRADE_VERS:
self.multi_drop_index()
self.sleep(100)
self._create_indexes()
self.sleep(100)
else:
self._create_indexes()
self.sleep(100)
self.assertTrue(self.wait_until_indexes_online(), "Some indexes are not online")
log.info("All indexes are online")
self._query_index("post_upgrade")
self._verify_post_upgrade_results()
self._update_int64_dataset()
self._query_for_long_num()
示例3: verify_items_count
# 需要导入模块: from membase.api.rest_client import RestConnection [as 别名]
# 或者: from membase.api.rest_client.RestConnection import get_nodes_services [as 别名]
def verify_items_count(master, bucket, num_attempt=3, timeout=2):
#get the #of buckets from rest
rest = RestConnection(master)
if isinstance(bucket, Bucket):
bucket = bucket.name
bucket_info = rest.get_bucket(bucket, num_attempt, timeout)
replica_factor = bucket_info.numReplicas
vbucket_active_sum = 0
vbucket_replica_sum = 0
vbucket_pending_sum = 0
kv_nodes = 0
all_server_stats = []
stats_received = True
nodes = rest.get_nodes()
nodes_services = rest.get_nodes_services()
for node in nodes_services:
if 'kv' in nodes_services[node]:
kv_nodes += 1
for server in nodes:
#get the stats
server_stats = rest.get_bucket_stats_for_node(bucket, server)
if not server_stats:
log.info("unable to get stats from {0}:{1}".format(server.ip, server.port))
stats_received = False
all_server_stats.append((server, server_stats))
if not stats_received:
raise StatsUnavailableException()
sum = 0
for server, single_stats in all_server_stats:
if not single_stats or "curr_items" not in single_stats:
continue
sum += single_stats["curr_items"]
log.info("curr_items from {0}:{1} : {2}".format(server.ip, server.port, \
single_stats["curr_items"]))
if 'vb_pending_num' in single_stats:
vbucket_pending_sum += single_stats['vb_pending_num']
log.info(
"vb_pending_num from {0}:{1} : {2}".format(server.ip, server.port, \
single_stats["vb_pending_num"]))
if 'vb_active_num' in single_stats:
vbucket_active_sum += single_stats['vb_active_num']
log.info(
"vb_active_num from {0}:{1} : {2}".format(server.ip, server.port, \
single_stats["vb_active_num"]))
if 'vb_replica_num' in single_stats:
vbucket_replica_sum += single_stats['vb_replica_num']
log.info(
"vb_replica_num from {0}:{1} : {2}".format(server.ip, server.port, \
single_stats["vb_replica_num"]))
msg = "summation of vb_active_num : {0} vb_pending_num : {1} vb_replica_num : {2}"
log.info(msg.format(vbucket_active_sum, vbucket_pending_sum, vbucket_replica_sum))
msg = 'sum : {0} and sum * (replica_factor + 1) ({1}) : {2}'
log.info(msg.format(sum, replica_factor + 1, (sum * (replica_factor + 1))))
master_stats = rest.get_bucket_stats(bucket)
if "curr_items_tot" in master_stats:
log.info('curr_items_tot from master: {0}'.format(master_stats["curr_items_tot"]))
else:
raise Exception("bucket {0} stats doesnt contain 'curr_items_tot':".format(bucket))
if replica_factor >= kv_nodes:
log.warn("the number of nodes is less than replica requires")
delta = sum * (kv_nodes) - master_stats["curr_items_tot"]
else:
delta = sum * (replica_factor + 1) - master_stats["curr_items_tot"]
delta = abs(delta)
if delta > 0:
if sum == 0:
missing_percentage = 0
else:
missing_percentage = delta * 1.0 / (sum * (replica_factor + 1))
log.info("Nodes stats are: {0}".format([node.ip for node in nodes]))
else:
missing_percentage = 1
log.info("delta : {0} missing_percentage : {1} replica_factor : {2}".format(delta, \
missing_percentage, replica_factor))
# If no items missing then, return True
kv_nodes = 0
if not delta:
return True
return False