python调用openstack的api,create_instance的程序解析
python调用openstack的api,create_instance的程序解析
#!/usr/bin/python
import os
import time
import novaclient.v1_1.client as nvclient
#from credentials import get_nova_creds
#creds = get_nova_creds()
#nova = nvclient.Client(**creds)
nova = nvclient.Client('demo','demo','istl','http://192.168.5.71:5000/v2.0')
#nova.keypairs.create(name="osvmkey")
print "first step : choosing an image"
image_list1 = nova.images.list()
for x,y in enumerate(image_list1):
print x,y
i = input("please input the correspond number :")
str1 = str(image_list1[i])
image = nova.images.find(name=str1[8:-1])
.............
#meta = raw_input("please input server's meta :")
instance = nova.servers.create(name = ins_name, image=image, flavor=flavor, key_name=key_name,disk_config="AUTO",config_drive="True",files="/home/xli/chinese_time.sh",userdata="1")
#instance = nova.servers.create(name = ins_name, image=image, flavor=flavor, key_name=key_name,disk_config="AUTO",config_drive="True",meta="meta",userdata="1")
status = instance.status
while status == 'BUILD':
time.sleep(5)
# Retrieve the instance again so the status field updates
instance = nova.servers.get(instance.id)
status = instance.status
print "status: %s" % status
print "create a floating ip!"
floatingippool_list4 = nova.floating_ip_pools.list()
for x,y in enumerate(floatingippool_list4):
print x,y
p = input("please input the corresponding number :")
str3 = str(floatingippool_list4[p])
floating_ip = nova.floating_ips.create(pool = str3[22:-1])
instance.add_floating_ip(floating_ip)
floatingip_list3 = nova.floating_ips.list()
for x,y in enumerate(floatingip_list3):
print x,y
Import语句的作用是导入模块,模块是不带.py扩展的另外一个python文件的文件名
在这里我们导入了novaclient.v1_1.client的整个模块,但是需要把 nvclient.作为后面函数的前缀,这样就表示client.py的全部内容在这里可见,
在这里还有导入模块的一部分
from novaclient.v1_1 import security_groups
import novaclient.v1_1.client as nvclient 这个仅仅就是对导入的模块起了一个别名。
nova = nvclient.Client('demo','demo','istl','http://192.168.5.71:5000/v2.0') 这里就是实例化类Client,然后后面的就是调用这个类下面的方法,
当我们打开client.py可以看到:
它导进了V1_1下的全部.py文件,相当于把v1_1下的全部方法集成在一起放在了client.py里面,我们通过 实例.方法 就可以调用
看client.py 的 Client类 有两种认证方式
def __init__()是python里面特殊的对象初始化方法,__init__()是python中一个特殊的函数名,用于根据类的定义创建实例对象。而这个self参数指向了这个正在被创建的对象本身。当你在类声明里面定义__init__()方法时,第一个参数必须为self,相当于this
self在定义时需要定义,但是在调用时会自动传入。
self的名字并不是规定死的,但是最好还是按照约定是用self
self总是指调用时的类的实例。
python调用openstack的api,create_instance的程序解析的更多相关文章
- Python 调用图像融合API
Python 调用图像融合API 本文记录使用Python,调用腾讯AI开放平台的图像融合API.官网给出的Demo用的是PHP,博主作为Python的粉丝,自然想用它来和『最好的』的语言一较高下,顺 ...
- 用Python调用华为云API接口发短信
[摘要] 用Python调用华为云API接口实现发短信,当然能给调用发短信接口前提条件是通过企业实名认证,而且有一个通过审核的短信签名,话不多说,showcode #!/usr/bin/python3 ...
- python 调用github的api,呈现python的受欢迎的程度
1 使用api调用数据: 在浏览器的地址栏中输入: https://api.github.com/search/repositories?q=language:python&sort=star ...
- Python 调用百度翻译API
由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...
- Python 调用阿里云 API 收集 ECS 数据
#!/usr/bin/env python # coding: utf-8 # author: Wang XiaoQiang ''' 功能介绍: 1.调用阿里云API,收集所有区域 ECS 信息 2. ...
- Python调用百度地图API实现批量经纬度转换为实际省市地点(api调用,json解析,excel读取与写入)
1.获取秘钥 调用百度地图API实现得申请百度账号或者登陆百度账号,然后申请自己的ak秘钥.链接如下:http://lbsyun.baidu.com/apiconsole/key?applicatio ...
- Python调用 Openstack 主要服务(keystone,nova,glance,neutron,heat)
由于Openstack更新很快,现在准备搭建基于Queen版本的Openstack,Queen版本要求keystone版本为V3,所以之前大多数接口都不能用了,百度了一下都没有比较新的实例,官方文档又 ...
- PYTHON调用JENKINS的API来进行CI
我查到的相关API有两套,我主要用的是python-jenkins. https://pypi.python.org/pypi/python-jenkins/ 按语法调用即可... import je ...
- python调用ansible接口API执行命令
python版本:Python 2.6.6 ansible版本:ansible 2.3.1.0 下载地址:https://releases.ansible.com/ansible/ 调用脚本 ...
随机推荐
- HTTP Get与Post的本质区别
作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. GET和POST是HTT ...
- 在线生成二维码的API接口
现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面麦布分享几个在线生成网址二维码的API接口.都是采用http协议接口,无需下 ...
- javascript排序算法-快速排序
快速排序 概念: (1) 首先,从数组中选择中间一项作为主元. (2) 创建两个指针,左边一个指向数组第一个项,右边一个指向数组最后一个项.移动左指针直到我们找到一个比主元大的元素,接着,移动右指针直 ...
- 电脑获取手机文件的一种方式(通过手机建立ftp)
1 打开手机热点. 2 手机需要安装es文件浏览器,在es浏览器首页有个远程管理(或在左侧网络功能下有个远程管理),打开即可启用手机目录下的ftp. 3 打开电脑按提示输入ftp站点.默认地址是手机热 ...
- 【升鲜宝】生鲜配送管理系统_升鲜宝供应链系统V2.0 客户管理模块功能与设计,欢迎大家批评指点。
[升鲜宝] 客户管理模块功能设计与介绍 客户模块分为以下子功能 客户列表 价格组 价格组商品价格 客户退货 客户星级 客户类型 客户存储位 客户来源 物流公司 打印模板 子模块介绍 客 ...
- appium入门元素识别参考
https://www.cnblogs.com/miniren/p/7365885.html#top
- Git - git branch - 查看本地仓分支列表
索引: 目录索引 参看代码 GitHub: git.txt 一.示例: git branch 二.说明: 该命令将列出本地所有存在分支, 包括 本地独有分支与远端在本地签出的分支, 但是没有签出的远端 ...
- Ajax异步交互基础
1. ajax是什么? * asynchronous javascript and xml:异步的js和xml * 它能使用js访问服务器,而且是异步访问! * 服务器给客户端的响应一般是整个页面,一 ...
- 在Windows7中的DPI与主题的问题
测试环境Windows7x64,vb6.0 测试在XP系统下,DPI计算似乎没问题 Screen.TwipsPerPixelX=1440/DPI=1440/96=15Screen.TwipsPerPi ...
- git tag 打标签
注意:在哪个分支上打tag一定要先提交该分支到远程gitlab仓库 标签(tag)操作 1. 查看所有标签 git tag 默认标签是打在最新提交的commit上的 2.本地打新标签 git tag ...