Browse Source

update remove_backend_servers_with_slbs & add_backend_servers_with_slbs

liqian 2 năm trước cách đây
mục cha
commit
4d951da619
1 tập tin đã thay đổi với 32 bổ sung20 xóa
  1. 32 20
      utils.py

+ 32 - 20
utils.py

@@ -413,16 +413,22 @@ def add_backend_servers_with_slbs(client, slb_id_list, instances):
     :return:
     """
     try:
-        for slb_id in slb_id_list:
-            request = AddBackendServersRequest()
-            request.set_accept_format('json')
-            request.set_LoadBalancerId(slb_id)
-            backend_servers = [
-                {"ServerId": instance_id, "Weight": "0", "Type": "ecs", "ServerIp": ip_address}
-                for instance_id, ip_address in instances]
-            request.set_BackendServers(backend_servers)
-            response = client.do_action_with_exception(request)
-            logging.info(f"slb: {slb_id} add backend servers finished!")
+        for i in range(len(instances)//20 + 1):
+            instances_list = instances[i*20:(i+1)*20]
+            if len(instances_list) == 0:
+                return
+            for slb_id in slb_id_list:
+                request = AddBackendServersRequest()
+                request.set_accept_format('json')
+                request.set_LoadBalancerId(slb_id)
+                backend_servers = [
+                    {"ServerId": instance_id, "Weight": "0", "Type": "ecs", "ServerIp": ip_address}
+                    for instance_id, ip_address in instances_list]
+                request.set_BackendServers(backend_servers)
+                response = client.do_action_with_exception(request)
+                logging.info(f"slb: {slb_id} add backend servers finished!")
+            logging.info(f"i: {i}, count: {len(instances_list)}, instances: {instances_list} "
+                         f"add backend servers finished!")
     except Exception as e:
         logging.error(e)
         sys.exit()
@@ -437,16 +443,22 @@ def remove_backend_servers_with_slbs(client, slb_id_list, instances):
     :return:
     """
     try:
-        for slb_id in slb_id_list:
-            request = RemoveBackendServersRequest()
-            request.set_accept_format('json')
-            request.set_LoadBalancerId(slb_id)
-            backend_servers = [
-                {"ServerId": instance_id, "Weight": "0", "Type": "ecs"}
-                for instance_id in instances]
-            request.set_BackendServers(backend_servers)
-            response = client.do_action_with_exception(request)
-            logging.info(f"slb: {slb_id} remove backend servers finished!")
+        for i in range(len(instances)//20 + 1):
+            instances_list = instances[i*20:(i+1)*20]
+            if len(instances_list) == 0:
+                return
+            for slb_id in slb_id_list:
+                request = RemoveBackendServersRequest()
+                request.set_accept_format('json')
+                request.set_LoadBalancerId(slb_id)
+                backend_servers = [
+                    {"ServerId": instance_id, "Weight": "0", "Type": "ecs"}
+                    for instance_id in instances_list]
+                request.set_BackendServers(backend_servers)
+                response = client.do_action_with_exception(request)
+                logging.info(f"slb: {slb_id} remove backend servers finished!")
+            logging.info(f"i: {i}, count: {len(instances_list)}, instances: {instances_list} "
+                         f"remove backend servers finished!")
     except Exception as e:
         logging.error(e)
         sys.exit()