感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限。错误之处在所难免。欢迎指正。

假设转载,请保留作者信息。

博客地址:http://blog.csdn.net/qq_21398167

原博文地址:http://blog.csdn.net/qq_21398167/article/details/46422629

Openstack-glance API

为了方便,可先自己定义一个函数 放在credentials.py里面

# vi credentials.py

#!/usr/bin/env python

import os

def get_keystone_creds():

d = {}

d['username'] =os.environ['OS_USERNAME']

d['password'] =os.environ['OS_PASSWORD']

d['auth_url'] =os.environ['OS_AUTH_URL']

d['tenant_name'] = os.environ['OS_TENANT_NAME']

return d

def get_nova_creds():

d = {}

d['username'] =os.environ['OS_USERNAME']

d['api_key'] =os.environ['OS_PASSWORD']

d['auth_url'] =os.environ['OS_AUTH_URL']

d['project_id']= os.environ['OS_TENANT_NAME']

return d

使用API时

import keystoneclient.v2_0.client as ksclient

import glanceclient

import glanceclient.v2.client as glclient

from credentials import get_keystone_creds

(1)查询虚拟机信息

images = glance.images.list() 获取img的队列

images.next() 依次输出

部分代码:

creds = get_keystone_creds()

keystone = ksclient.Client(**creds)

glance_endpoint=keystone.service_catalog.url_for(service_type='image',endpoint_type='publicURL')

glance = glclient.Client(glance_endpoint,token=keystone.auth_token)

images = glance.images.list()

print images

print images.next()

(2)上传img

with open(img_url) as fimage: #img_url镜像存放路径

glance.images.create(name="cirros_zy",is_public=True,disk_format="qcow2",container_format="bare",data=fimage)

部分代码:

keystone = ksclient.Client(**creds)

glance_endpoint=keystone.service_catalog.url_for(service_type='image',endpoint_type='publicURL')

glance=glanceclient.Client('1',glance_endpoint,token=keystone.auth_token)

with open(img_url) as fimage:

glance.images.create(name="cirros_zy",is_public=True,disk_format="qcow2",container_format="bare",data=fimage)

(3)删除img

glance.images.delete(image_id)

(4)成员绑定

glance.image_members.create(image_id,mem_id,can_share=True)

(5)成员删除

glance.image_members.delete(image_id,mem_id)

(6)img下载

因为glance
v2没有支持镜像下载的API 所以直接使用命令行的方式下载

代码例如以下:

Import os

string_1 = 'glance image-download --file ' + image_url +' ' + image_id

os.system(string_1)

openstack-glance API 镜像管理的部分实现和样例的更多相关文章

  1. OpenStack云计算快速入门之三:OpenStack镜像管理

    原文:http://blog.chinaunix.net/uid-22414998-id-3272059.html 第三部分 OpenStack镜像管理 一.简介 很多源都有为OpenStack已经编 ...

  2. OpenStack镜像管理3

    第三部分 OpenStack镜像管理 一.简介 很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack. 不过如果是为生产环境进行部署的话,您一 ...

  3. openstack——glance镜像服务

    一.glance介绍:                Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查 ...

  4. Openstack glance 镜像服务 (五)

    Openstack glance 镜像服务 (五) 引用: 官方文档glance安装 https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/ ...

  5. OpenStack实践系列③镜像服务Glance

    OpenStack实践系列③镜像服务Glance 3.5 Glance部署 修改glance-api和glance-registry的配置文件,同步数据库 [root@node1 ~]# vim /e ...

  6. 四、OpenStack—glance组件介绍与安装

    一.glance介绍 Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata及 ...

  7. Openstack kvm win7镜像制作

    本文地址http://www.cnblogs.com/tcicy/p/7790956.html 网上找了很多为openstack制作win7镜像的文章,总是不成功 自己写一下,以便大家查看. 我使用c ...

  8. Openstack Restful API 开发框架 Paste + PasteDeploy + Routes + WebOb

    目录 目录 Paste PasteDeploy Routes WebOb 简介 WSGI入口 Paste和PasteDeploy 配置文件 pasteini 中间件的实现 Routes WebOb 参 ...

  9. 2、docker镜像管理

    Docker镜像管理 镜像是Docker容器的基础,想运行一个Docker容器就需要有镜像.我们上面已经学会了使用search搜索镜像.那么这个镜像是怎么创建的呢? 创建镜像 镜像的创建有以下几种方法 ...

随机推荐

  1. word中表格第一列序号的设置

    表格中序号问题 1.新建一个表格.第一列选择编号后,编号后有tab,如下图 2.选中表格的编号,点击新建列表样式, 3.将编号后的字符改成nothing,在将单元格改成居中即可 4.在将单元格改成居中 ...

  2. asp.net web api 文件上传

    1正确的做法 public class AvaterController : BaseApiController { [HttpPost] public async Task<IHttpActi ...

  3. 掌握numpy(四)

    数组的累加(拼接) 在前面讲了使用切片方法能够对数组进行切分,使用copy对切片的数组进行复制,那么数组该如何拼接呢? a1 = np.full((2,3),1)#填充数组 a2 = np.full( ...

  4. RabbitMQ消息队列系列教程(一)认识RabbitMQ

    摘要 RabbitMQ是最为流行的消息中间件,是处理高并发业务的利器.本系列教程,将跟大家一起学习RabbitMQ. 目录 RabbitMQ是什么? RabbitMQ的特点是什么? 一.RabbitM ...

  5. insert时报Cannot add or update a child row: a foreign key constraint fails (`yanchangzichan`.`productstatusrecord`, CONSTRAINT `p_cu` FOREIGN KEY (`cid`) REFERENCES `customer` (`cid`))错误

    mybatis在insert时报Cannot add or update a child row: a foreign key constraint fails (`yanchangzichan`.` ...

  6. 使用mysql5.7新特性(虚拟列)解决使用前通配符性能问题

    众所周知,在mysql里的后通配符可以使用索引查找,前通配查询却无法使用到索引,即使是使用到了索引,也是使用了索引全扫描,效率依然不高,再MySQL5.7之前,一直都没有好的办法解决,但是到了MySQ ...

  7. FreeRTOS 移植到WIN10

    背景 标题表述的不准确,大意是移植到WIN10的PC机,Intel I5. 最近因为项目接触了FreeRTOS 实时操作系统,想对这个操作系统有一个更深入的了解,所以决定下载源码看看,下面这个链接的随 ...

  8. web-php绕过

    0x01.web-PHP的悖论1 题目: 链接:http://game.sycsec.com:2009/10111.php 解题思路: 1.首先,web对于选择二进制方向的我这个菜鸡绝对是十分懵逼的, ...

  9. 利用docker搭建spark hadoop workbench

    目的 用docker实现所有服务 在spark-notebook中编写Scala代码,实时提交到spark集群中运行 在HDFS中存储数据文件,spark-notebook中直接读取 组件 Spark ...

  10. 校门外的树-poj

    问题描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种 ...