python修改jumpserver原有的新增机器api接口,只需传ip和名称
# coding:utf-8
import json
import requests
from wsgiref.simple_server import make_server
# 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。
def application(environ, start_response):
# 定义文件请求的类型和当前请求成功的code
start_response('200 OK', [('Content-Type', 'application/json')])
# environ是当前请求的所有数据,包括Header和URL,body
request_body = environ["wsgi.input"].read(int(environ.get("CONTENT_LENGTH", 0)))
request_body = json.loads(request_body)
ip = request_body["ip"]
alias = request_body["alias"]
pwd = request_body["pwd"]
if ip is not None and alias is not None:
if str(ip).split('.')[1] == '90':
idc = 'jy'
elif str(ip).split('.')[1] == '80':
idc = 'pbs'
else:
idc = 'zb'
hostname = idc + '_' + ip + '_lin_' + str(alias)
url2 = 'http://xxxx/api/assets/v1/assets-bulk/'
headers = \
{
"Authorization": "Token x x x x x x",
"accept": "application/json",
"Content-Type": "application/json"
}
body = {
"ip": ip,
"hostname": hostname,
"protocol": "ssh",
"port": 22,
"platform": "Linux",
"admin_user": "fe71b96050664f588baccc5842bb544a",
"nodes": ["67ccc7183fb7446282b703d182850740"],
"is_active": True
}
responses1 = requests.post(url2, headers=headers, data=json.dumps(body))
result1 = 'True'
message = ''
if responses1.status_code == 201:
result = 'True'
else:
result = 'False'
#dict = {"message": message,"success":result1}
#return [json.dumps(dict)]
else:
return '------error---------'
if __name__ == "__main__":
port = 6088
httpd = make_server("0.0.0.0", port, application)
print "serving http on port {0}...".format(str(port))
httpd.serve_forever()
[参考文档]
(https://blog.youkuaiyun.com/u013040887/article/details/78895323)