|
@@ -446,36 +446,6 @@ def list_server_group_servers(alb_client, server_group_id):
|
|
|
return []
|
|
|
|
|
|
|
|
|
-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
|
|
|
- )
|
|
|
- runtime = util_models.RuntimeOptions()
|
|
|
- try:
|
|
|
- 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):
|
|
|
"""
|
|
|
更指定服务器在服务器组中的权重
|
|
@@ -526,4 +496,34 @@ def update_server_group_servers_attribute(alb_client, server_group_id_list, inst
|
|
|
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)
|
|
|
+ check_server_group_status(alb_client, server_group_id_list)
|
|
|
+
|
|
|
|
|
|
+def check_server_group_status(alb_client, server_group_id_list):
|
|
|
+ list_server_groups_request = alb_20200616_models.ListServerGroupsRequest(
|
|
|
+ server_group_ids=server_group_id_list,
|
|
|
+ max_results=100
|
|
|
+ )
|
|
|
+ flag = False
|
|
|
+ runtime = util_models.RuntimeOptions()
|
|
|
+ for i in range(10):
|
|
|
+ try:
|
|
|
+ response = alb_client.list_server_groups_with_options(list_server_groups_request, runtime)
|
|
|
+ count = 0
|
|
|
+ if response.body:
|
|
|
+ map = UtilClient.to_map(response.body)
|
|
|
+ logging.info(f"response.body.servers {map}.")
|
|
|
+ server_groups = map.get("ServerGroups")
|
|
|
+ if server_groups:
|
|
|
+ for server_group in server_groups:
|
|
|
+ if server_group.get("ServerGroupStatus") == "Available":
|
|
|
+ logging.info(f"Server group {server_group} is available.")
|
|
|
+ count +=1
|
|
|
+ if count == len(server_group_id_list):
|
|
|
+ flag = True
|
|
|
+ break
|
|
|
+ time.sleep(2)
|
|
|
+ except Exception as e:
|
|
|
+ logging.error(e)
|
|
|
+ if not flag:
|
|
|
+ sys.exit()
|