Python 运维开发:基于OpenStack Restful API 实现镜像上传

使用OpenStack all-in-one 镜像,创建 OpenStack Python 运维开发环境。云主机的用户/密码为:“root/Abc@1234”OpenStack 的域名/账号/密码为:“demo/admin/000000”

提示说明:python 脚本文件头建议加入“#encoding:utf-8”避免编码错误;测试脚本代码用 python3 命令执行与测试。

controller 节点的/root 目录下创建 api_image_manager.py 脚本,编写 python 代码对接 OpenStack API,完成镜像的创建与上传。创建之前查询是否存在“同名镜像”,如果存在先删除该镜像。

  1. 创建镜像:要求在 OpenStack 私有云平台中上传镜像 cirros-0.3.4-x86_64-disk.img,名字为 cirros001disk_format qcow2container_format bare
  2. 查询镜像:查询 cirros001 的详细信息,并以 json 格式文本输出到控制台。
#encoding: utf-8
import requests
import json#获取token
url = "http://192.168.1.100:5000/v3/auth/tokens"body = {"auth": {"identity": {"methods": ["password"], "password": {"user": {"domain": {"name": "demo"}, "name": "admin", "password": "000000"}}}}}headers = {"Content-Type": "application/json" }
token = requests.post(url, data=json.dumps(body), headers=headers).headers['X-Subject-Token']
headers = {"X-Auth-Token": token}#删同名镜像
all = requests.get("http://192.168.1.100:9292/v2/images", headers=headers)
result = json.loads(all.text)
for i in result['images']:if i['name'] == "cirros001":requests.delete("http://192.168.1.100:9292/v2/images/"+i['id'], headers=headers)#......


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部