supeng пре 4 месеци
родитељ
комит
cff4626cb2

+ 23 - 21
longvideoapi/longvideoapi_reduce_with_count.py

@@ -57,29 +57,31 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
     #     sys.exit()
 
     # 4. 判断机器运行状态是否为 Stopped
-    while True:
-        response = utils.get_instances_status(ecs_client=ecs_client, instance_ids=instance_ids)
-        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_ids):
-                logging.info(f"Instances stopped status set success, instances: {stopped_instances}")
-                break
-            else:
-                logging.info(f"Stopped instances count = {len(stopped_instances)}, instances: {stopped_instances}")
-                time.sleep(5)
-        else:
-            logging.error(response)
-            sys.exit()
+    stopped_instances = utils.get_instances_status(ecs_client=ecs_client, instance_ids=instance_ids)
+    # while True:
+    #     response = utils.get_instances_status(ecs_client=ecs_client, instance_ids=instance_ids)
+    #     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_ids):
+    #             logging.info(f"Instances stopped status set success, instances: {stopped_instances}")
+    #             break
+    #         else:
+    #             logging.info(f"Stopped instances count = {len(stopped_instances)}, instances: {stopped_instances}")
+    #             time.sleep(5)
+    #     else:
+    #         logging.error(response)
+    #         sys.exit()
 
     # 5. 释放机器
-    release_response = utils.release_instances(ecs_client=ecs_client, instance_ids=stopped_instances)
-    if release_response.get('Code') is None:
-        logging.info(f"Release instances finished, instances: {stopped_instances}")
-    else:
-        logging.error(f"Release instances fail!!!")
-        sys.exit()
+    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:
+    #     logging.info(f"Release instances finished, instances: {stopped_instances}")
+    # else:
+    #     logging.error(f"Release instances fail!!!")
+    #     sys.exit()
 
 
 def main():

+ 1 - 1
longvideoapi/longvideoapi_update_k.py

@@ -285,7 +285,7 @@ def remove_instances(ecs_client, alb_client, instance_ids, port):
 
     # 4. 判断机器运行状态是否为Stopped
     # while True:
-    utils.get_instances_status(ecs_client=ecs_client, instance_ids=instance_ids)
+    stopped_instances = 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:
         #     instances_list = response.get('InstanceStatuses').get('InstanceStatus')

+ 22 - 19
longvideoapi/utils.py

@@ -267,28 +267,31 @@ def get_instances_status(ecs_client, instance_ids):
     :param instance_ids: instance_id, type-list
     :return:
     """
+    stopped_instances = []
     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:
-        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:
-                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):
     """