liqian %!s(int64=2) %!d(string=hai) anos
pai
achega
803affed4a
Modificáronse 1 ficheiros con 31 adicións e 4 borrados
  1. 31 4
      rov-sever/server/ess-instance-rov-server.py

+ 31 - 4
rov-sever/server/ess-instance-rov-server.py

@@ -17,6 +17,8 @@ from aliyunsdkecs.request.v20140526.RunInstancesRequest import RunInstancesReque
 from aliyunsdkecs.request.v20140526.DescribeNetworkInterfacesRequest import DescribeNetworkInterfacesRequest
 from aliyunsdkslb.request.v20140515.AddBackendServersRequest import AddBackendServersRequest
 from aliyunsdkecs.request.v20140526.RunCommandRequest import RunCommandRequest
+from aliyunsdkcore.request import CommonRequest
+
 
 logging.basicConfig(level=logging.INFO,
                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
@@ -142,18 +144,43 @@ def healthCheck(instance_id):
     addBackendServers(slb_id_2, instance_id)
 
 
+def setWeight(slb_id, instance_id, weight):
+    """
+    设置slb权重
+    :param slb_id: slb_id
+    :param instance_id: 服务器id
+    :param weight: 权重值
+    :return: None
+    """
+    BackendServers = [{"ServerId": instance_id, "Weight": weight}]
+    request = CommonRequest()
+    request.set_accept_format('json')
+    request.set_domain('slb.aliyuncs.com')
+    request.set_version('2014-05-15')
+    request.set_method('POST')
+    request.set_action_name('SetBackendServers')
+    request.add_query_param('BackendServers', BackendServers)
+    request.add_query_param('LoadBalancerId', slb_id)
+    try:
+        response = clt.do_action_with_exception(request)
+    except Exception as e:
+        logging.error(e)
+
+
 def addBackendServers(slb_id, instance_id):
     """服务器挂载到负载均衡"""
     request = AddBackendServersRequest()
     request.set_accept_format('json')
     ipaddr = getIpaddr(instance_id)
     request.set_LoadBalancerId(slb_id)
+    request.set_BackendServers([{"ServerId": instance_id, "Weight": "0", "Type": "ecs", "ServerIp": ipaddr}])
+    response = client.do_action_with_exception(request)
+    logging.info(response)
     for i in range(1, 6):
-        weight = i * 20
-        request.set_BackendServers([{"ServerId": instance_id, "Weight": weight, "Type": "ecs", "ServerIp": ipaddr}])
-        response = client.do_action_with_exception(request)
-        logging.info(response)
         time.sleep(5)
+        weight = i * 20
+        logging.info(f"instance_id: {instance_id}, weight: {weight}")
+        setWeight(slb_id=slb_id, instance_id=instance_id, weight=weight)
 
 
 def getIpaddr(instance_id):