Openstack调用API(新)
requests 请求方法
-
requests.post # 用于提交创建资源的请求
-
requests.get # 用于查询一个资源的请求
-
requests.put # 上传文件的请求
OpenStack调用flavor
import requests
import json
class Flavor:
def __init__(self, url: str, headers: dict):
self.url = url
self.headers = headers
def creation(self, name: str, ram: int, disk: int, vcpus: int):
data = {
"flavor": {
"vcpus": vcpus,
"disk": disk,
"name": name,
"ram": ram,
"id": None}}
requests.post(self.url, headers=self.headers, data=json.dumps(data))
print("创建成功")
headers = token()
flavor = Flavor(url='http://controller:8774/v2.1/flavors/', headers=headers)
flavor.creation(name='test', ram=1024, disk=20, vcpus=2)
OpenStack调用镜像
分为两个步骤
- 提交创建请求
- 上传镜像
import json
import requests
class Image:
def __init__(self, url: str, headers: dict):
self.url = url
self.headers= headers
def create(self, name: str, disk_format: str, container_format: str, file_path: str):
data = {
"container_format": container_format,
"disk_format": disk_format,
"name": name}
img_id = requests.post(self.url, headers=self.headers, data=json.dumps(data)).json()['id']
url = self.url+'/{0}/file'.format(img_id)
print('镜像创建提交')
self.upload(url,file_path=file_path)
def upload(self, url: str, file_path: str):
headers['Content-Type'] = 'application/octet-stream'
requests.put(url, headers=self.headers, data=open(file_path, 'rb'))
print('上传成功')
headers = token()
image = Image(url='http://controller:9292/v2/images', headers=headers)
image.create(name='cirros', disk_format='qcow2', container_format='bare', file_path='http://172.25.253.11/cirros-0.3.4-x86_64-disk.img')
仅供参考

浙公网安备 33010602011771号