Openstack API管理之glance镜像服务

Openstack-glance API镜像管理的相关例子:


我的openstack环境变量写在openstack.conf中,

[OPENSTACK]
OS_USERNAME=admin
OS_PASSWORD=Passw0rd
OS_TENANT_NAME=admin
OS_AUTH_URL=http://192.168.122.7:5000/v2.0
OS_REGION_NAME=RegionOne

python-glanceclient API:

class glanceclient.v2.client.Client(endpoint, **kwargs)
Bases: object

Client for the OpenStack Images v2 API.

Parameters:	
endpoint (string) – A user-supplied endpoint URL for the glance service.
token (string) – Token for authentication.
timeout (integer) – Allows customization of the timeout for client http requests. (optional)

首先要通过keystone获取glance service的endpoint:
from keystoneclient.v2_0 import client as keystoneclient
from glanceclient.v2 import client as gclient
import ConfigParser

config = ConfigParser.ConfigParser()
conf = open('openstack.conf','r')

config.readfp(conf)

USERNAME = config.get('OPENSTACK','OS_USERNAME')
PASSWORD = config.get('OPENSTACK','OS_PASSWORD')
TENANT_NAME = config.get('OPENSTACK','OS_TENANT_NAME')
AUTH_URL = config.get('OPENSTACK','OS_AUTH_URL')
keystone = keystoneclient.Client(username=USERNAME,password=PASSWORD,tenant_name=TENANT_NAME,auth_url=AUTH_URL)
glance_endpoint = keystone.service_catalog.url_for(service_type='image',endpoint_type='publicURL')

获取client对象:
glance = gclient.Client(glance_endpoint,token=keystone.auth_token)

列出上传的镜像:
images = glance.images.list()

print "=========================================================================================================================="
print "ID                                   Name                                Disk Format    Container Format  Size      Status"
for i in images:
    print ("%-35s %-35s %-15s %-15s %-10d %-4s")%(i.id,i.name,i.disk_format,i.container_format,i.size,i.status)
结果:

创建镜像:

from keystoneclient.v2_0 import client as keystoneclient
import glanceclient
import ConfigParser

config = ConfigParser.ConfigParser()
conf = open('openstack.conf','r')

config.readfp(conf)

USERNAME = config.get('OPENSTACK','OS_USERNAME')
PASSWORD = config.get('OPENSTACK','OS_PASSWORD')
TENANT_NAME = config.get('OPENSTACK','OS_TENANT_NAME')
AUTH_URL = config.get('OPENSTACK','OS_AUTH_URL')
keystone = keystoneclient.Client(username=USERNAME,password=PASSWORD,tenant_name=TENANT_NAME,auth_url=AUTH_URL)
print keystone.auth_token
glance_endpoint = keystone.service_catalog.url_for(service_type='image',endpoint_type='publicURL')

# create and upload an image
glanceClient = glanceclient.Client('1',glance_endpoint,token=keystone.auth_token)
img_url = "/home/stack/hao/cirros-0.3.0-x86_64-disk.img"
with open(img_url,'rb') as img_file:
    glanceClient.images.create(name='hao',is_public='True',disk_format='qcow2',container_format='bare',data=img_file)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值