|
@@ -267,28 +267,31 @@ def get_instances_status(ecs_client, instance_ids):
|
|
:param instance_ids: instance_id, type-list
|
|
:param instance_ids: instance_id, type-list
|
|
:return:
|
|
:return:
|
|
"""
|
|
"""
|
|
|
|
+ stopped_instances = []
|
|
instance_id_list_array = [instance_ids[i:i + 100] for i in range(0, len(instance_ids), 100)]
|
|
instance_id_list_array = [instance_ids[i:i + 100] for i in range(0, len(instance_ids), 100)]
|
|
for instance_id_sub_array in instance_id_list_array:
|
|
for instance_id_sub_array in instance_id_list_array:
|
|
- request = DescribeInstanceStatusRequest()
|
|
|
|
- request.set_InstanceIds(instance_id_sub_array)
|
|
|
|
- request.set_PageSize(50)
|
|
|
|
- response = send_request(ecs_client=ecs_client, request=request)
|
|
|
|
- # return response
|
|
|
|
- if response.get('Code') is None:
|
|
|
|
- instances_list = response.get('InstanceStatuses').get('InstanceStatus')
|
|
|
|
- stopped_instances = [instance.get('InstanceId') for instance in instances_list if
|
|
|
|
- instance.get('Status') == 'Stopped']
|
|
|
|
- if len(stopped_instances) == len(instance_id_sub_array):
|
|
|
|
- logging.info(f"Instances stopped status set success, instances: {stopped_instances}")
|
|
|
|
- break
|
|
|
|
|
|
+ while True:
|
|
|
|
+ request = DescribeInstanceStatusRequest()
|
|
|
|
+ request.set_InstanceIds(instance_id_sub_array)
|
|
|
|
+ request.set_PageSize(50)
|
|
|
|
+ response = send_request(ecs_client=ecs_client, request=request)
|
|
|
|
+ # return response
|
|
|
|
+ if response.get('Code') is None:
|
|
|
|
+ instances_list = response.get('InstanceStatuses').get('InstanceStatus')
|
|
|
|
+ stopped_instances_sub = [instance.get('InstanceId') for instance in instances_list if
|
|
|
|
+ instance.get('Status') == 'Stopped']
|
|
|
|
+ if len(stopped_instances_sub) == len(instance_id_sub_array):
|
|
|
|
+ logging.info(f"Instances stopped status set success, instances: {stopped_instances_sub}")
|
|
|
|
+ stopped_instances.extend(stopped_instances_sub)
|
|
|
|
+ break
|
|
|
|
+ else:
|
|
|
|
+ logging.info(f"Stopped instances count = {len(stopped_instances_sub)}, instances: {stopped_instances_sub}")
|
|
|
|
+ time.sleep(5)
|
|
else:
|
|
else:
|
|
- logging.info(f"Stopped instances count = {len(stopped_instances)}, instances: {stopped_instances}")
|
|
|
|
- time.sleep(5)
|
|
|
|
- else:
|
|
|
|
- logging.error(response)
|
|
|
|
- sys.exit()
|
|
|
|
- time.sleep(3)
|
|
|
|
-
|
|
|
|
|
|
+ logging.error(response)
|
|
|
|
+ sys.exit()
|
|
|
|
+ time.sleep(3)
|
|
|
|
+ return stopped_instances
|
|
|
|
|
|
def stop_instances(ecs_client, instance_ids, force_stop=False):
|
|
def stop_instances(ecs_client, instance_ids, force_stop=False):
|
|
"""
|
|
"""
|