|
@@ -351,58 +351,72 @@ def send_file_to_ecs(ecs_client, instance_id_list, target_dir, name, content):
|
|
|
|
|
|
|
|
|
|
|
|
-def add_servers_to_server_group(alb_client, server_group_id, instance_id, weight, port):
|
|
|
+def add_servers_to_server_group(alb_client, server_group_ids, instance_ids, weight, port):
|
|
|
"""
|
|
|
添加服务器到ALB服务器组
|
|
|
:param alb_client: ALB客户端连接
|
|
|
- :param server_group_id: 服务器组ID
|
|
|
- :param instance_id: 实例ID
|
|
|
+ :param server_group_ids: 服务器组ID
|
|
|
+ :param instance_ids: 实例ID
|
|
|
:param weight: 权重
|
|
|
:param port: 后端服务器使用的端口
|
|
|
"""
|
|
|
- server = alb_models.AddServersToServerGroupRequestServers(
|
|
|
- server_id=instance_id,
|
|
|
- server_type='ecs',
|
|
|
- weight=weight,
|
|
|
- port=port
|
|
|
- )
|
|
|
- request = alb_models.AddServersToServerGroupRequest(
|
|
|
- server_group_id=server_group_id,
|
|
|
- servers=[server]
|
|
|
- )
|
|
|
- runtime = util_models.RuntimeOptions()
|
|
|
- try:
|
|
|
- alb_client.add_servers_to_server_group_with_options(request, runtime)
|
|
|
- logging.info(f"Successfully added server {instance_id} to server group {server_group_id} with weight {weight}.")
|
|
|
- except Exception as e:
|
|
|
- logging.error(f"Failed to add server {instance_id} to server group {server_group_id}: {str(e)}")
|
|
|
+ servers = []
|
|
|
+ for i in range(len(instance_ids)):
|
|
|
+ server = alb_models.AddServersToServerGroupRequestServers(
|
|
|
+ server_id=instance_ids[i],
|
|
|
+ server_type='ecs',
|
|
|
+ weight=weight,
|
|
|
+ port=port
|
|
|
+ )
|
|
|
+ servers.append(server)
|
|
|
|
|
|
+ # server = alb_models.AddServersToServerGroupRequestServers(
|
|
|
+ # server_id=instance_id,
|
|
|
+ # server_type='ecs',
|
|
|
+ # weight=weight,
|
|
|
+ # port=port
|
|
|
+ # )
|
|
|
+ for server_group_id in server_group_ids:
|
|
|
+ request = alb_models.AddServersToServerGroupRequest(
|
|
|
+ server_group_id=server_group_id,
|
|
|
+ servers=servers
|
|
|
+ )
|
|
|
+ runtime = util_models.RuntimeOptions()
|
|
|
+ try:
|
|
|
+ alb_client.add_servers_to_server_group_with_options(request, runtime)
|
|
|
+ logging.info(f"Successfully added servers {servers} to server group {server_group_id} with weight {weight}.")
|
|
|
+ except Exception as e:
|
|
|
+ logging.error(f"Failed to add servers {servers} to server group {server_group_id}: {str(e)}")
|
|
|
|
|
|
|
|
|
-def remove_servers_from_server_group(alb_client, server_group_id, instance_ids, port):
|
|
|
+
|
|
|
+def remove_servers_from_server_group(alb_client, server_group_id_list, instance_ids, port):
|
|
|
"""
|
|
|
从ALB服务器组中移除服务器
|
|
|
:param alb_client: ALB客户端连接
|
|
|
- :param server_group_id: 服务器组ID
|
|
|
- :param instance_ids: 实例ID
|
|
|
+ :param server_group_id_list: 服务器组ID list
|
|
|
+ :param instance_ids: 实例ID list
|
|
|
:param port: 后端服务器使用的端口
|
|
|
"""
|
|
|
+ servers = []
|
|
|
for instance_id in instance_ids:
|
|
|
server = alb_models.RemoveServersFromServerGroupRequestServers(
|
|
|
port=port,
|
|
|
server_id=instance_id,
|
|
|
server_type='ecs'
|
|
|
)
|
|
|
+ servers.append(server)
|
|
|
+ for server_group_id in server_group_id_list:
|
|
|
request = alb_models.RemoveServersFromServerGroupRequest(
|
|
|
server_group_id=server_group_id,
|
|
|
- servers=[server]
|
|
|
+ servers=servers
|
|
|
)
|
|
|
runtime = util_models.RuntimeOptions()
|
|
|
try:
|
|
|
alb_client.remove_servers_from_server_group_with_options(request, runtime)
|
|
|
- logging.info(f"Successfully removed server {instance_id} from server group {server_group_id}.")
|
|
|
+ logging.info(f"Successfully removed servers {servers} from server group {server_group_id}.")
|
|
|
except Exception as e:
|
|
|
- logging.error(f"Failed to remove server {instance_id} from server group {server_group_id}: {str(e)}")
|
|
|
+ logging.error(f"Failed to remove servers {servers} from server group {server_group_id}: {str(e)}")
|
|
|
|
|
|
|
|
|
|
|
@@ -451,32 +465,36 @@ 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_list, instance_id_list, weight, port):
|
|
|
"""
|
|
|
更指定服务器在服务器组中的权重
|
|
|
:param alb_client: ALB客户端
|
|
|
- :param server_group_id: 服务器组ID
|
|
|
- :param instance_id: 实例ID
|
|
|
+ :param server_group_id_list: 服务器组ID list
|
|
|
+ :param instance_id_list: 实例ID list
|
|
|
: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)
|
|
|
- logging.info(f"Successfully updated server {instance_id} in group {server_group_id} to weight {weight}.")
|
|
|
- except Exception as e:
|
|
|
- logging.error(e)
|
|
|
- sys.exit()
|
|
|
+ servers = []
|
|
|
+ for i in range(len(instance_id_list)):
|
|
|
+ server = alb_20200616_models.UpdateServerGroupServersAttributeRequestServers(
|
|
|
+ server_type='Ecs',
|
|
|
+ server_id=instance_id_list[i],
|
|
|
+ weight=weight,
|
|
|
+ port=port
|
|
|
+ )
|
|
|
+ servers.append(server)
|
|
|
+ for server_group_id in server_group_id_list:
|
|
|
+ request = alb_20200616_models.UpdateServerGroupServersAttributeRequest(
|
|
|
+ servers=servers,
|
|
|
+ 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 servers {servers} in group {server_group_id} to weight {weight}.")
|
|
|
+ except Exception as e:
|
|
|
+ logging.error(e)
|
|
|
+ sys.exit()
|
|
|
|
|
|
def update_server_group_servers_attribute(alb_client, server_group_id_list, instance_id_list, weight_list, port):
|
|
|
"""
|
|
@@ -487,11 +505,11 @@ 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 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_list, instance_id_list, weight, port)
|
|
|
+ time.sleep(sleep_time)
|
|
|
|
|
|
|
|
|
|