|
@@ -2,7 +2,7 @@ import asyncio
|
|
import sys
|
|
import sys
|
|
import time
|
|
import time
|
|
import requests
|
|
import requests
|
|
-import alb_utils
|
|
+import utils
|
|
import logging
|
|
import logging
|
|
import os
|
|
import os
|
|
import docker
|
|
import docker
|
|
@@ -25,7 +25,7 @@ def server_health_check(ecs_client, instance_id):
|
|
:return:
|
|
:return:
|
|
"""
|
|
"""
|
|
global health_instances
|
|
global health_instances
|
|
- ip_address = alb_utils.get_ip_address(ecs_client=ecs_client, instance_id=instance_id)
|
|
+ ip_address = utils.get_ip_address(ecs_client=ecs_client, instance_id=instance_id)
|
|
while True:
|
|
while True:
|
|
health_check_url = f"http://{ip_address}:8080/longvideoapi/test"
|
|
health_check_url = f"http://{ip_address}:8080/longvideoapi/test"
|
|
try:
|
|
try:
|
|
@@ -54,7 +54,7 @@ async def ess_instance(ecs_client, alb_client, ess_count, max_workers, version,
|
|
:return:
|
|
:return:
|
|
"""
|
|
"""
|
|
|
|
|
|
- ess_instance_ids = alb_utils.create_multiple_instances(
|
|
+ ess_instance_ids = utils.create_multiple_instances(
|
|
amount=ess_count,
|
|
amount=ess_count,
|
|
ecs_client=ecs_client,
|
|
ecs_client=ecs_client,
|
|
**longvideoapi_config.instance_config_k,
|
|
**longvideoapi_config.instance_config_k,
|
|
@@ -62,12 +62,12 @@ async def ess_instance(ecs_client, alb_client, ess_count, max_workers, version,
|
|
time.sleep(60)
|
|
time.sleep(60)
|
|
|
|
|
|
|
|
|
|
- alb_utils.send_file_to_ecs(ecs_client=ecs_client, instance_id_list=ess_instance_ids, **longvideoapi_config.start_sh)
|
|
+ utils.send_file_to_ecs(ecs_client=ecs_client, instance_id_list=ess_instance_ids, **longvideoapi_config.start_sh)
|
|
logging.info(f"send start shell file finished, instances: {ess_instance_ids}")
|
|
logging.info(f"send start shell file finished, instances: {ess_instance_ids}")
|
|
|
|
|
|
server_start_sh = os.path.join(longvideoapi_config.start_sh['target_dir'], longvideoapi_config.start_sh['name'])
|
|
server_start_sh = os.path.join(longvideoapi_config.start_sh['target_dir'], longvideoapi_config.start_sh['name'])
|
|
server_start_commend = f"sh {server_start_sh} {version}"
|
|
server_start_commend = f"sh {server_start_sh} {version}"
|
|
- alb_utils.run_command(ecs_client=ecs_client, instance_ids=ess_instance_ids, command=server_start_commend)
|
|
+ utils.run_command(ecs_client=ecs_client, instance_ids=ess_instance_ids, command=server_start_commend)
|
|
|
|
|
|
global health_instances
|
|
global health_instances
|
|
health_instances = []
|
|
health_instances = []
|
|
@@ -86,11 +86,11 @@ async def ess_instance(ecs_client, alb_client, ess_count, max_workers, version,
|
|
health_instance_ids = [instance_id for instance_id, _ in health_instances]
|
|
health_instance_ids = [instance_id for instance_id, _ in health_instances]
|
|
for server_group_id in longvideoapi_config.server_group_id_list:
|
|
for server_group_id in longvideoapi_config.server_group_id_list:
|
|
for instance_id in health_instance_ids:
|
|
for instance_id in health_instance_ids:
|
|
- alb_utils.add_servers_to_server_group(alb_client, server_group_id, instance_id, weight=0, port=port)
|
|
+ utils.add_servers_to_server_group(alb_client, server_group_id, instance_id, weight=0, port=port)
|
|
logging.info(f"Successfully added instance {instance_id} to server group {server_group_id}.")
|
|
logging.info(f"Successfully added instance {instance_id} to server group {server_group_id}.")
|
|
|
|
|
|
add_weight_list = [(10, 5), (20, 5), (40, 5), (60, 5), (80, 5), (100, 5)]
|
|
add_weight_list = [(10, 5), (20, 5), (40, 5), (60, 5), (80, 5), (100, 5)]
|
|
- alb_utils.update_server_group_servers_attribute(alb_client,
|
|
+ utils.update_server_group_servers_attribute(alb_client,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
instance_id_list=health_instance_ids,
|
|
instance_id_list=health_instance_ids,
|
|
weight_list=add_weight_list,
|
|
weight_list=add_weight_list,
|
|
@@ -115,7 +115,7 @@ def remove_container_image(ecs_client, instance_id, container_name_list):
|
|
:param container_name: 容器名称 type-string
|
|
:param container_name: 容器名称 type-string
|
|
:return:
|
|
:return:
|
|
"""
|
|
"""
|
|
- ip_address = alb_utils.get_ip_address(ecs_client=ecs_client, instance_id=instance_id)
|
|
+ ip_address = utils.get_ip_address(ecs_client=ecs_client, instance_id=instance_id)
|
|
logging.info(f"服务器信息:{instance_id}/{ip_address}")
|
|
logging.info(f"服务器信息:{instance_id}/{ip_address}")
|
|
client = docker.DockerClient(base_url=f'tcp://{ip_address}:2375', timeout=60)
|
|
client = docker.DockerClient(base_url=f'tcp://{ip_address}:2375', timeout=60)
|
|
|
|
|
|
@@ -176,7 +176,7 @@ async def update_instance(ecs_client, alb_client, instance_ids, max_workers, ver
|
|
for instance_id_list in instance_ids_group:
|
|
for instance_id_list in instance_ids_group:
|
|
logging.info(f"update instances: {instance_id_list}")
|
|
logging.info(f"update instances: {instance_id_list}")
|
|
|
|
|
|
- alb_utils.update_server_group_servers_attribute(alb_client=alb_client,
|
|
+ utils.update_server_group_servers_attribute(alb_client=alb_client,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
instance_id_list=instance_id_list,
|
|
instance_id_list=instance_id_list,
|
|
weight_list=[(0, 20)],
|
|
weight_list=[(0, 20)],
|
|
@@ -201,12 +201,12 @@ async def update_instance(ecs_client, alb_client, instance_ids, max_workers, ver
|
|
f"request count: {len(instance_id_list)}, removed count: {len(remove_container_instances)}")
|
|
f"request count: {len(instance_id_list)}, removed count: {len(remove_container_instances)}")
|
|
sys.exit()
|
|
sys.exit()
|
|
|
|
|
|
- alb_utils.send_file_to_ecs(ecs_client=ecs_client, instance_id_list=instance_id_list, **longvideoapi_config.start_sh)
|
|
+ utils.send_file_to_ecs(ecs_client=ecs_client, instance_id_list=instance_id_list, **longvideoapi_config.start_sh)
|
|
logging.info(f"send start shell file finished, instances: {instance_id_list}, count: {len(instance_id_list)}")
|
|
logging.info(f"send start shell file finished, instances: {instance_id_list}, count: {len(instance_id_list)}")
|
|
|
|
|
|
server_start_sh = os.path.join(longvideoapi_config.start_sh['target_dir'], longvideoapi_config.start_sh['name'])
|
|
server_start_sh = os.path.join(longvideoapi_config.start_sh['target_dir'], longvideoapi_config.start_sh['name'])
|
|
server_start_commend = f"sh {server_start_sh} {version}"
|
|
server_start_commend = f"sh {server_start_sh} {version}"
|
|
- alb_utils.run_command(ecs_client=ecs_client, instance_ids=instance_id_list, command=server_start_commend)
|
|
+ utils.run_command(ecs_client=ecs_client, instance_ids=instance_id_list, command=server_start_commend)
|
|
|
|
|
|
global health_instances
|
|
global health_instances
|
|
health_instances = []
|
|
health_instances = []
|
|
@@ -225,7 +225,7 @@ async def update_instance(ecs_client, alb_client, instance_ids, max_workers, ver
|
|
health_instance_ids = [instance_id for instance_id, _ in health_instances]
|
|
health_instance_ids = [instance_id for instance_id, _ in health_instances]
|
|
|
|
|
|
add_weight_list = [(10, 5), (20, 5), (40, 5), (60, 5), (80, 5), (100, 5)]
|
|
add_weight_list = [(10, 5), (20, 5), (40, 5), (60, 5), (80, 5), (100, 5)]
|
|
- alb_utils.update_server_group_servers_attribute(alb_client,
|
|
+ utils.update_server_group_servers_attribute(alb_client,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
instance_id_list=health_instance_ids,
|
|
instance_id_list=health_instance_ids,
|
|
weight_list=add_weight_list,
|
|
weight_list=add_weight_list,
|
|
@@ -250,7 +250,7 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
|
|
|
|
|
|
weight_list = [(0, 20)]
|
|
weight_list = [(0, 20)]
|
|
try:
|
|
try:
|
|
- alb_utils.update_server_group_servers_attribute(alb_client,
|
|
+ utils.update_server_group_servers_attribute(alb_client,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
server_group_id_list=longvideoapi_config.server_group_id_list,
|
|
instance_id_list=instance_ids,
|
|
instance_id_list=instance_ids,
|
|
weight_list=weight_list,
|
|
weight_list=weight_list,
|
|
@@ -263,7 +263,7 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
|
|
|
|
|
|
for server_group_id in longvideoapi_config.server_group_id_list:
|
|
for server_group_id in longvideoapi_config.server_group_id_list:
|
|
try:
|
|
try:
|
|
- alb_utils.remove_servers_from_server_group(alb_client=alb_client, server_group_id=server_group_id,
|
|
+ utils.remove_servers_from_server_group(alb_client=alb_client, server_group_id=server_group_id,
|
|
instance_ids=instance_ids, port=port)
|
|
instance_ids=instance_ids, port=port)
|
|
logging.info(f"Successfully removed instances from server group {server_group_id}.")
|
|
logging.info(f"Successfully removed instances from server group {server_group_id}.")
|
|
except Exception as e:
|
|
except Exception as e:
|
|
@@ -272,7 +272,7 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
|
|
logging.info(f"Remove from ALB finished, instances: {instance_ids}")
|
|
logging.info(f"Remove from ALB finished, instances: {instance_ids}")
|
|
|
|
|
|
|
|
|
|
- stop_response = alb_utils.stop_instances(ecs_client=ecs_client, instance_ids=instance_ids)
|
|
+ stop_response = utils.stop_instances(ecs_client=ecs_client, instance_ids=instance_ids)
|
|
if stop_response.get('Code') is None:
|
|
if stop_response.get('Code') is None:
|
|
logging.info(f"Instances stop finished, instances: {instance_ids}")
|
|
logging.info(f"Instances stop finished, instances: {instance_ids}")
|
|
else:
|
|
else:
|
|
@@ -281,7 +281,7 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
|
|
|
|
|
|
|
|
|
|
while True:
|
|
while True:
|
|
- response = alb_utils.get_instances_status(ecs_client=ecs_client, instance_ids=instance_ids)
|
|
+ response = utils.get_instances_status(ecs_client=ecs_client, instance_ids=instance_ids)
|
|
if response.get('Code') is None:
|
|
if response.get('Code') is None:
|
|
instances_list = response.get('InstanceStatuses').get('InstanceStatus')
|
|
instances_list = response.get('InstanceStatuses').get('InstanceStatus')
|
|
stopped_instances = [instance.get('InstanceId') for instance in instances_list if
|
|
stopped_instances = [instance.get('InstanceId') for instance in instances_list if
|
|
@@ -296,7 +296,7 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
|
|
logging.error(response)
|
|
logging.error(response)
|
|
sys.exit()
|
|
sys.exit()
|
|
|
|
|
|
- release_response = alb_utils.release_instances(ecs_client=ecs_client, instance_ids=stopped_instances)
|
|
+ release_response = utils.release_instances(ecs_client=ecs_client, instance_ids=stopped_instances)
|
|
if release_response.get('Code') is None:
|
|
if release_response.get('Code') is None:
|
|
logging.info(f"Release instances finished, instances: {stopped_instances}")
|
|
logging.info(f"Release instances finished, instances: {stopped_instances}")
|
|
else:
|
|
else:
|
|
@@ -307,17 +307,17 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
|
|
def main():
|
|
def main():
|
|
try:
|
|
try:
|
|
version = sys.argv[1]
|
|
version = sys.argv[1]
|
|
- alb_client = alb_utils.connect_alb_client(
|
|
+ alb_client = utils.connect_alb_client(
|
|
access_key_id=longvideoapi_config.alb_client_params['access_key_id'],
|
|
access_key_id=longvideoapi_config.alb_client_params['access_key_id'],
|
|
access_key_secret=longvideoapi_config.alb_client_params['access_key_secret'],
|
|
access_key_secret=longvideoapi_config.alb_client_params['access_key_secret'],
|
|
endpoint=longvideoapi_config.alb_client_params['endpoint']
|
|
endpoint=longvideoapi_config.alb_client_params['endpoint']
|
|
)
|
|
)
|
|
- ecs_client = alb_utils.connect_client(access_key_id=longvideoapi_config.ecs_client_params['access_key_id'],
|
|
+ ecs_client = utils.connect_client(access_key_id=longvideoapi_config.ecs_client_params['access_key_id'],
|
|
access_key_secret=longvideoapi_config.ecs_client_params['access_key_secret'],
|
|
access_key_secret=longvideoapi_config.ecs_client_params['access_key_secret'],
|
|
region_id=longvideoapi_config.ecs_client_params['region_id'])
|
|
region_id=longvideoapi_config.ecs_client_params['region_id'])
|
|
|
|
|
|
|
|
|
|
- online_instance_ids = alb_utils.list_server_group_servers(alb_client=alb_client, server_group_id=longvideoapi_config.server_group_id_list[0])
|
|
+ online_instance_ids = utils.list_server_group_servers(alb_client=alb_client, server_group_id=longvideoapi_config.server_group_id_list[0])
|
|
online_instance_count = len(online_instance_ids)
|
|
online_instance_count = len(online_instance_ids)
|
|
logging.info(f"online instance count: {online_instance_count}.")
|
|
logging.info(f"online instance count: {online_instance_count}.")
|
|
logging.info(f"online instance ids: {online_instance_ids}")
|
|
logging.info(f"online instance ids: {online_instance_ids}")
|