set_lb
修改lb权重,通知钉钉
前提需要安装阿里的核心库
#!/usr/local/python-3.6.4/bin/python3
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkslb.request.v20140515.SetBackendServersRequest import SetBackendServersRequest
from urllib import request as ddrequest
import json
from sys import argv
client = AcsClient('LTAI42e74K2hrtmu', 'f4S7rx9KEFv9Js3AR5KmU6V7g9D4xd', 'cn-beijing')
access_token = "dingding"
def set_lb(request,ecs,weight,loadslb):
serverid = ecs.get("serverid")
request.set_accept_format('json')
slb_list = '[{"ServerId":"%s","Weight":"%s"},]' % (str(serverid),str(weight))
print(slb_list)
request.set_BackendServers(slb_list)
request.set_LoadBalancerId(loadslb)
try:
response = client.do_action_with_exception(request)
except Exception as e:
response = {"hostname":ecs.get("hostname"),"ip":ecs.get("ip"),"message":"在修改权重为100的时候,发生了意外"}
send_msg(response)
else:
response = {"hostname":ecs.get("hostname"),"ip":ecs.get("ip"),"message":"修改权重为100成功"}
send_msg(response)
def send_msg(response):
url = "https://oapi.dingtalk.com/robot/send?access_token=" + access_token
data = {
"msgtype": "text",
"text": {
"content": response
},
"at": {
"isAtAll": "false"
}
}
json_data= json.dumps(data).encode(encoding='utf-8')
print(json_data)
header_encoding = {"Content-Type": "application/json"}
req = ddrequest.Request(url=url, data=json_data, headers=header_encoding)
res = ddrequest.urlopen(req)
res = res.read()
print(res.decode(encoding='utf-8'))
if __name__ == "__main__":
request = SetBackendServersRequest()
ecs = {"hostname":"pc-prod-1","ip":"ip","serverid":"id"}
weight = "100"
loadslb = "lb-id"
set_lb(request,ecs,weight,loadslb)
set_lb的更多相关文章
随机推荐
- Pandas | 13 索引和选择数据
Pandas现在支持三种类型的多轴索引; 编号 索引 描述 1 .loc() 基于标签 2 .iloc() 基于整数 3 .ix() 基于标签和整数 .loc() Pandas提供了各种方法来完成基于 ...
- springboot使用thymeleaf模板问题
返回 org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/implementsfun/index] ...
- VUE温习:内存泄漏、Vue.$set、key作用与虚拟diff算法
一.内存泄漏 1.指令绑定了事件,却没有解绑事件,容易产生内存泄漏.(曾经遇到过的案例) 2.v-if指令产生内存泄漏,比如v-if删除了父级元素,却没有删除父级元素里的dom片段 3.跳转到别的路由 ...
- ZROI 暑期高端峰会 A班 Day2 线性代数
高斯消元 很普及组,不讲了 当主元没有逆的时候可以辗转相除. 如果也没有带余数除法--没救了 逆矩阵 我们定义矩阵 \(A\) 的逆矩阵为 \(A^{-1}\),满足 \(AA^{-1}=A^{-1} ...
- dockerfile+docker-compose
Dockerfile 一.简介 1.1 dockerfile中常用的命令合集 1.2 docker build 基于dockerfile制作镜像的命令 docker build [OPTIONS] P ...
- 基于web公交查询系统---站点信息管理
界面设计: 界面设计代码获取: 搭建好框架获取信息: 核心代码: var users = [ ];//获取到的bus所有站点信息 var rowIndex = -1; $.ajax({ url: &q ...
- 将行数据转换成Java(POJO)对象
工作中经常会遇到将行数据转换成Java(POJO)对象的场景,其中关于字段校验和类型转换的处理繁琐而冗余,对于有代码洁癖的人着实不能忍.这里分享下自己封装的工具代码,也许能够帮助你更简单地完成此类任务 ...
- vue 2.0 及 vue 3.0 rem配置
vue 2.0 配置 rem 首先先安装postcss-px2rem (百度可以) https://www.jianshu.com/p/e6476bbc2131 npm install postc ...
- 使用helm管理复杂kubernetes应用
1. 查看仓库: $ helm repo list NAME URL stable https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/ch ...
- 关于“100g文件全是数组,取最大的100个数”解决方法汇总
原题如下: 有一个100G大小的文件里存的全是数字,并且每个数字见用逗号隔开.现在在这一大堆数字中找出100个最大的数出来. 我认为,首先要摸清考官的意图.是想问你os方面的知识,还是算法,或者数据结 ...