附上笔者的部分代码:
def on_update_clicked(self):
creds_1 = global_list.get_nova_creds() nova = nvclient.Client(**creds_1) // 创建nova client creds = global_list.get_keystone_creds() keystone = ksclient.Client(**creds) // 创建 keystone client #glance_endpoint=keystone.service_catalog.url_for(service_type='image',endpoint_type='publicURL') #glance=glanceclient.Client('1',glance_endpoint,token=keystone.auth_token) print demo1.whichdom images = nova.images.list() 获取当前image 列表 for x in images: #print x.id x_str=str(x) img_lst=x_str.split(',') print img_lst for y in img_lst: y_lst=y.split(':') if y_lst[0] =="<Image": z_lst=y_lst[1].split('>') print z_lst[0] if z_lst[0] ==' ' + demo1.whichdom: // 以上for循环找到是否有相同的镜像名 并删除 print x.id nova.images.delete(x.id) 删除相同名的镜像 #flag = nova.images.delete('instance-0000000a') #print flagnova.servers.create_image(demo1.dom_id, demo1.whichdom) 创建虚拟机快照 并上传到glance上
这段代码主要满足客户要求(用户使用完虚拟机以后,上传镜像文件,下次用该镜像创建虚拟机继续使用)
如果有朋友能想到更合理 安全的实现方法 还望指点 谢谢!!!