|
@@ -24,7 +24,7 @@ from alibabacloud_tea_openapi import models as open_api_models
|
|
from alibabacloud_alb20200616 import models as alb_models
|
|
from alibabacloud_alb20200616 import models as alb_models
|
|
from alibabacloud_alb20200616 import models as alb_20200616_models
|
|
from alibabacloud_alb20200616 import models as alb_20200616_models
|
|
from alibabacloud_tea_util import models as util_models
|
|
from alibabacloud_tea_util import models as util_models
|
|
-
|
|
|
|
|
|
+from urllib3 import request
|
|
|
|
|
|
logging.basicConfig(level=logging.INFO,
|
|
logging.basicConfig(level=logging.INFO,
|
|
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
|
|
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
|
|
@@ -446,27 +446,34 @@ def list_server_group_servers(alb_client, server_group_id):
|
|
return []
|
|
return []
|
|
|
|
|
|
|
|
|
|
-async def list_server_group_servers_async(alb_client, server_group_id):
|
|
|
|
- """
|
|
|
|
- 异步列出指定服务器组中的服务器并返回实例ID列表
|
|
|
|
- @param alb_client: ALB客户端
|
|
|
|
- @param server_group_id: 服务器组ID
|
|
|
|
- @return: 实例ID列表
|
|
|
|
- """
|
|
|
|
- list_server_group_servers_request = alb_20200616_models.ListServerGroupServersRequest(
|
|
|
|
- server_group_id=server_group_id,
|
|
|
|
|
|
+def list_server_groups(alb_client, server_group_id):
|
|
|
|
+ list_server_groups_request = alb_20200616_models.ListServerGroupsRequest(
|
|
|
|
+ server_group_ids=server_group_id,
|
|
max_results=100
|
|
max_results=100
|
|
)
|
|
)
|
|
runtime = util_models.RuntimeOptions()
|
|
runtime = util_models.RuntimeOptions()
|
|
-
|
|
|
|
try:
|
|
try:
|
|
- response = await alb_client.list_server_group_servers_with_options_async(list_server_group_servers_request, runtime)
|
|
|
|
- instance_ids = [server.server_id for server in response.body.servers]
|
|
|
|
- return instance_ids
|
|
|
|
- except Exception as error:
|
|
|
|
- print(str(error))
|
|
|
|
- UtilClient.assert_as_string(str(error))
|
|
|
|
- return []
|
|
|
|
|
|
+ retries = 3
|
|
|
|
+ while retries > 0:
|
|
|
|
+ response = alb_client.list_server_groups_with_options(list_server_groups_request, runtime)
|
|
|
|
+ server_groups = response.ServerGroups
|
|
|
|
+ for server_group in server_groups:
|
|
|
|
+ server_group_status = server_group.get("ServerGroupStatus")
|
|
|
|
+ if server_group_status == "Available":
|
|
|
|
+ logging.info(f"Server group {server_group_id} is available.")
|
|
|
|
+ return server_group_status
|
|
|
|
+ else:
|
|
|
|
+ logging.warning(
|
|
|
|
+ f"Server group {server_group_id} is not available. Current status: {server_group_status}.")
|
|
|
|
+ logging.info("Sleeping for 3 seconds...")
|
|
|
|
+ time.sleep(3)
|
|
|
|
+ retries -= 1
|
|
|
|
+ if retries == 0:
|
|
|
|
+ logging.error(f"Server group {server_group_id} is not available after 3 attempts. Exiting.")
|
|
|
|
+ sys.exit()
|
|
|
|
+ except Exception as e:
|
|
|
|
+ logging.error(e)
|
|
|
|
+ sys.exit()
|
|
|
|
|
|
|
|
|
|
def update_server_group_server_weight(alb_client, server_group_id_list, instance_id_list, weight, port):
|
|
def update_server_group_server_weight(alb_client, server_group_id_list, instance_id_list, weight, port):
|
|
@@ -496,7 +503,10 @@ def update_server_group_server_weight(alb_client, server_group_id_list, instance
|
|
runtime = util_models.RuntimeOptions()
|
|
runtime = util_models.RuntimeOptions()
|
|
try:
|
|
try:
|
|
logging.info(f"instance_id_list = {instance_id_list} request = {request}")
|
|
logging.info(f"instance_id_list = {instance_id_list} request = {request}")
|
|
- alb_client.update_server_group_servers_attribute_with_options(request, runtime)
|
|
|
|
|
|
+ server_group_status = list_server_groups(alb_client, server_group_id)
|
|
|
|
+ if server_group_status == "Available":
|
|
|
|
+ logging.info(f"Server group {server_group_id} is available.")
|
|
|
|
+ alb_client.update_server_group_servers_attribute_with_options(request, runtime)
|
|
logging.info(f"Successfully updated servers {instance_id_list} in group {server_group_id} to weight {weight}.")
|
|
logging.info(f"Successfully updated servers {instance_id_list} in group {server_group_id} to weight {weight}.")
|
|
except Exception as e:
|
|
except Exception as e:
|
|
logging.error(e)
|
|
logging.error(e)
|
|
@@ -517,4 +527,3 @@ def update_server_group_servers_attribute(alb_client, server_group_id_list, inst
|
|
update_server_group_server_weight(alb_client, server_group_id_list, instance_id_list, weight, port)
|
|
update_server_group_server_weight(alb_client, server_group_id_list, instance_id_list, weight, port)
|
|
time.sleep(sleep_time)
|
|
time.sleep(sleep_time)
|
|
|
|
|
|
-
|
|
|