|
@@ -283,8 +283,6 @@ def send_request(ecs_client, request):
|
|
|
:param request: 请求配置
|
|
|
:return: response
|
|
|
"""
|
|
|
- print(ecs_client, request)
|
|
|
- print(2222222222)
|
|
|
request.set_accept_format('json')
|
|
|
try:
|
|
|
response = ecs_client.do_action_with_exception(request)
|
|
@@ -455,32 +453,37 @@ async def list_server_group_servers_async(alb_client, server_group_id):
|
|
|
return []
|
|
|
|
|
|
|
|
|
-def update_server_group_server_weight(alb_client, server_group_id, instance_id, weight, port):
|
|
|
+def update_server_group_server_weight(alb_client, server_group_id, instance_id_list, weight, port):
|
|
|
"""
|
|
|
更指定服务器在服务器组中的权重
|
|
|
:param alb_client: ALB客户端
|
|
|
:param server_group_id: 服务器组ID
|
|
|
- :param instance_id: 实例ID
|
|
|
+ :param instance_id_list: 实例ID
|
|
|
:param weight: 权重值
|
|
|
:param port: 后端服务器使用的端口
|
|
|
"""
|
|
|
- server = alb_20200616_models.UpdateServerGroupServersAttributeRequestServers(
|
|
|
- server_type='Ecs',
|
|
|
- server_id=instance_id,
|
|
|
- weight=weight,
|
|
|
- port=port
|
|
|
- )
|
|
|
- request = alb_20200616_models.UpdateServerGroupServersAttributeRequest(
|
|
|
- servers=[server],
|
|
|
- server_group_id=server_group_id
|
|
|
- )
|
|
|
- runtime = util_models.RuntimeOptions()
|
|
|
- try:
|
|
|
- alb_client.update_server_group_servers_attribute_with_options(request, runtime)
|
|
|
- print(f"Successfully updated server {instance_id} in group {server_group_id} to weight {weight}.")
|
|
|
- except Exception as error:
|
|
|
- print(str(error))
|
|
|
- UtilClient.assert_as_string(str(error))
|
|
|
+ # for i in range(0, len(instance_id_list), 20):
|
|
|
+ # instances_list = instance_id_list[i * 20:(i + 1) * 20]
|
|
|
+ # if not instances_list:
|
|
|
+ # return
|
|
|
+ print(instance_id_list)
|
|
|
+ for server_id in instance_id_list:
|
|
|
+ server = alb_20200616_models.UpdateServerGroupServersAttributeRequestServers(
|
|
|
+ server_type='Ecs',
|
|
|
+ server_id=server_id,
|
|
|
+ weight=weight,
|
|
|
+ port=port
|
|
|
+ )
|
|
|
+ request = alb_20200616_models.UpdateServerGroupServersAttributeRequest(
|
|
|
+ servers=[server],
|
|
|
+ server_group_id=server_group_id
|
|
|
+ )
|
|
|
+ runtime = util_models.RuntimeOptions()
|
|
|
+ try:
|
|
|
+ alb_client.update_server_group_servers_attribute_with_options(request, runtime)
|
|
|
+ logging.info(f"Successfully updated server {server_id} in group {server_group_id} to weight {weight}.")
|
|
|
+ except Exception as error:
|
|
|
+ logging.error(f"Failed to update server {server_id}: {str(error)}")
|
|
|
|
|
|
def update_server_group_servers_attribute(alb_client, server_group_id_list, instance_id_list, weight_list, port):
|
|
|
"""
|
|
@@ -491,13 +494,21 @@ def update_server_group_servers_attribute(alb_client, server_group_id_list, inst
|
|
|
:param weight_list: 权重修改列表 type-list [(weight, sleep_time), ...]
|
|
|
:param port: 后端服务器使用的端口
|
|
|
"""
|
|
|
- for server_group_id in server_group_id_list:
|
|
|
- for instance_id in instance_id_list:
|
|
|
- for weight, sleep_time in weight_list:
|
|
|
- update_server_group_server_weight(alb_client, server_group_id, instance_id, weight, port)
|
|
|
- time.sleep(sleep_time)
|
|
|
-
|
|
|
-
|
|
|
+ for weight, sleep_time in weight_list:
|
|
|
+ logging.info(f"修改权重中: weight = {weight}")
|
|
|
+ for server_group_id in server_group_id_list:
|
|
|
+ flag = True
|
|
|
+ while flag:
|
|
|
+ try:
|
|
|
+ update_server_group_server_weight(alb_client=alb_client, server_group_id=server_group_id, instance_id_list=instance_id_list,
|
|
|
+ weight=weight, port=port)
|
|
|
+ logging.info(f"alb: {server_group_id} finished!")
|
|
|
+ flag = False
|
|
|
+ except Exception as e:
|
|
|
+ logging.warning(f"Error updating group {server_group_id}, retrying in 10 seconds: {str(e)}")
|
|
|
+ time.sleep(10)
|
|
|
+ continue
|
|
|
+ time.sleep(sleep_time)
|
|
|
|
|
|
|
|
|
async def update_server_group_server_weight_async(alb_client, server_group_id, instance_id, weight, port):
|