vim create_flavor.py
import json #调用requests模块(库)
import requests #调用json模块(库)
import os #调用os模块(库)
headers = {"Content-Type": "application/json"}
body = {
"auth": {
"identity": {
"methods": ["password"],
"password": {
"user": {
"domain": {
"name": "demo"
},
"name": "admin",
"password": "000000"
}
}
},
# 更准确的规定用户
# 因为一个域里一个项目不允许存在同名用户,一个域里有多个项目不同的项目可以存在相同的用户名
"scope": {
"project": {
"domain": {
"name": "demo"
},
"name": "admin"
}
}
}
}
# keystone有两个端口,一个是35357 admin端口
# 一个是5000端口,属于public和internal端口
headers["X-Auth-Token"] = requests.post('http://192.168.100.10:5000/v3/auth/tokens', headers=headers, json=body).headers["X-Subject-Token"]
#这里给字典写入数据,X-Auth-Token做键,通过链接访问页面获取token写入,token做值
headers["X-Auth-Token"] = os.popen("source /etc/keystone/admin-openrc.sh && openstack token issue | awk '/ id/{print $4}'").read().strip('\n')
headers["X-Auth-Token"] = os.popen("source /etc/keystone/admin-openrc.sh && openstack token issue | sed -n '/ id/s/|.*| //p'").read().strip('\n')
data = { #这里一样是给data赋值一个json文件
'flavor': {
'name': 'test_flavor',
'id': '666',
'ram': 2048,
'disk': 20,
'vcpus': 2
}
}
print(json.dumps(requests.post('http://192.168.100.10:8774/v2.1/flavors', headers=headers, json=data).json(), indent=4)) #再次发起请求,模拟命令向api发起的请求,然后创建flavor
print('云主机类型创建成功')
python3 create_flavor.py
{
"flavor": {
"name": "test_flavor",
"links": [
{
"href": "http://192.168.100.10:8774/v2.1/flavors/666",
"rel": "self"
},
{
"href": "http://192.168.100.10:8774/flavors/666",
"rel": "bookmark"
}
],
"ram": 2048,
"OS-FLV-DISABLED:disabled": false,
"vcpus": 2,
"swap": "",
"os-flavor-access:is_public": true,
"rxtx_factor": 1.0,
"OS-FLV-EXT-DATA:ephemeral": 0,
"disk": 20,
"id": "666"
}
}
云主机类型创建成功
openstack调用api创建flavor
最新推荐文章于 2024-06-19 14:51:14 发布