python requests库调用网易蜂巢API!

没事看了下网易蜂巢的控制台API,参考文档写了一部分创建云主机的API练练手,主要是通过requests库来发送 HTTP 请求完成各种数据的发送

具体代码

#!/usr/bin/env python
#-*-coding:utf-8
import requests
import json
# 获取token
def returnToken(app_key,app_secret):
 api = 'https://open.c.163.com/api/v1/token'
 payload = {"app_key":app_key,"app_secret":app_secret}
 headers = {
 'content-type': "application/json",
 'cache-control': "no-cache"
 }
 response = requests.request("POST", api, data=json.dumps(payload), headers=headers)
 token = response.text # 输出的是<type 'unicode'>
 tokenInfo = json.JSONDecoder().decode(token) # 转换成json格式
 return tokenInfo["token"]
#获取镜像
def getpubimages(token):
 api ='https://open.c.163.com/api/v1/vm/publicimages?pageSize=4&pageNum=1&keyword=os&Type=linux'
 headers = {
 'content-type': "application/json",
 'cache-control': "no-cache",
 'Authorization':'Token '+token
 }
 response = requests.request("GET",api,headers=headers)
 tokenInfo = json.JSONDecoder().decode(response.text)
 imagesid = tokenInfo["images"][0]['imageId']
 return imagesid
# 创建虚拟机
def createvm(tokenValue,instance_name,ssh_key_names,image_id,cpu_weight,memory_weight,ssd_weight):
 api = 'https://open.c.163.com/api/v1/vm'
 payload = {
 "bill_info":"HOUR",
 "server_info":{
 "instance_name":instance_name,
 "ssh_key_names":[ssh_key_names],
 "image_id":image_id,
 "cpu_weight":cpu_weight,
 "memory_weight":memory_weight,
 "ssd_weight":ssd_weight,
 }
 }
 headers = {
 'content-type': "application/json",
 'cache-control': "no-cache",
 'Authorization':'Token '+tokenValue
 }
 serveresponse = requests.request("POST", api, data=json.dumps(payload), headers=headers)
 serverid = json.JSONDecoder().decode(serveresponse.text) # 转换成json格式
 print serverid
def listvm():
 api = 'https://open.c.163.com/api/v1/vm/allInstanceInfo?pageSize=4&pageNum=1'
 headers = {
 'cache-control': "no-cache",
 'Authorization': 'Token ' + tokenValue
 }
 listvm = requests.request("GET", api, headers=headers)
 return listvm.json()
def createsshkey(token,name):
 api = 'https://open.c.163.com/api/v1/secret-keys'
 headers = {
 'content-type': "application/json",
 'cache-control': "no-cache",
 'Authorization': 'Token ' + token
 }
 payload = {"key_name": name}
 response = requests.request("POST", api, data=json.dumps(payload), headers=headers)
 sshkey = response.text # 输出的是<type 'unicode'>
 sshKeyInfo = json.JSONDecoder().decode(sshkey) # 转换成json格式
 return sshKeyInfo
def getsshkey(token):
 api = 'https://open.c.163.com/api/v1/secret-keys'
 headers = {
 'content-type': "application/json",
 'cache-control': "no-cache",
 'Authorization': 'Token ' + token
 }
 response = requests.request("GET", api, headers=headers)
 sshkey = response.text # 输出的是<type 'unicode'>
 sshKeyInfo = json.JSONDecoder().decode(sshkey) # 转换成json格式
 sshKeyInfo = str(sshKeyInfo[0]['name'])
 return sshKeyInfo
tokenValue = returnToken("","")
print tokenValue
instance_name = 'centos7'
ssh_key_names = getsshkey(tokenValue)
image_id =getpubimages(tokenValue)
cpu_weight= 1
memory_weight = 2
ssd_weight = 20
# createvm(tokenValue,instance_name,ssh_key_names,image_id,cpu_weight,memory_weight,ssd_weight)
listvm()

进群:960410445  即可获取数十套!

猜你喜欢

转载自blog.csdn.net/qq_42156420/article/details/85913920
今日推荐