python调用openstack的api,create_instance的程序解析

2017年10月17日 15:27:24 CloudXli 阅读数:848
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CloudXli/article/details/78261027

#!/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的程序解析的更多相关文章

  1. Python 调用图像融合API

    Python 调用图像融合API 本文记录使用Python,调用腾讯AI开放平台的图像融合API.官网给出的Demo用的是PHP,博主作为Python的粉丝,自然想用它来和『最好的』的语言一较高下,顺 ...

  2. 用Python调用华为云API接口发短信

    [摘要] 用Python调用华为云API接口实现发短信,当然能给调用发短信接口前提条件是通过企业实名认证,而且有一个通过审核的短信签名,话不多说,showcode #!/usr/bin/python3 ...

  3. python 调用github的api,呈现python的受欢迎的程度

    1 使用api调用数据: 在浏览器的地址栏中输入: https://api.github.com/search/repositories?q=language:python&sort=star ...

  4. Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  5. Python 调用阿里云 API 收集 ECS 数据

    #!/usr/bin/env python # coding: utf-8 # author: Wang XiaoQiang ''' 功能介绍: 1.调用阿里云API,收集所有区域 ECS 信息 2. ...

  6. Python调用百度地图API实现批量经纬度转换为实际省市地点(api调用,json解析,excel读取与写入)

    1.获取秘钥 调用百度地图API实现得申请百度账号或者登陆百度账号,然后申请自己的ak秘钥.链接如下:http://lbsyun.baidu.com/apiconsole/key?applicatio ...

  7. Python调用 Openstack 主要服务(keystone,nova,glance,neutron,heat)

    由于Openstack更新很快,现在准备搭建基于Queen版本的Openstack,Queen版本要求keystone版本为V3,所以之前大多数接口都不能用了,百度了一下都没有比较新的实例,官方文档又 ...

  8. PYTHON调用JENKINS的API来进行CI

    我查到的相关API有两套,我主要用的是python-jenkins. https://pypi.python.org/pypi/python-jenkins/ 按语法调用即可... import je ...

  9. python调用ansible接口API执行命令

    python版本:Python 2.6.6 ansible版本:ansible 2.3.1.0      下载地址:https://releases.ansible.com/ansible/ 调用脚本 ...

随机推荐

  1. 基本 SQL 之增删改查(一)

    上篇文章,我们介绍了数据的基本 DDL 语句,你应当具备基本的创建数据库.数据表的 SQL 语句,以及表字段的基本数据类型的熟知. 那么本篇就来总结总结大家日常最频繁接触到的 DDM 语句,也就是基本 ...

  2. sublime text3插件解决输入法不跟随的问题

    快捷键ctrl + shift +p 输入  install package 回车,调出插件搜索器, 在搜索栏中输入 IMESupport 回车安装插件. 即可解决问题.

  3. 树莓派linux系统连接windows7系统中的共享文件夹的正确姿势

    一.要想使用树莓派linux成功访问win7的共享文件夹而不报错,最重要的事情是要正确设置win7中共享文件的设置. 1.需要共享文件点击右键→属性 2.共享选项卡→网络和共享中心 3.点开公用下拉菜 ...

  4. .Net学前入门

    概念:.NET和C# .NET/dotnet:一般指.Net Framework框架,是一种平台,一种技术: .net由.net平台以及.Net Framework框架组成,我们可以把.net平台比喻 ...

  5. Tomcat的常用内置对象

    Tomcat的常用内置对象 1.request内置对象 所谓内置对象就是容器已经创建好了的对象,如果收到一个用户的请求就会自动创建一个对象来处理客户端发送的一些信息,这个内置对象就是request.类 ...

  6. 20190329-盒尺寸、boder-

    目录 1.盒尺寸四家庭 width:宽度 height:高度 margin:外边距 padding:内边距 盒模型: 2.border边框 border简写:border-position(top | ...

  7. java基础(三):谈谈java异常的处理

    1.知识点总结 1.1.异常分类 异常就是java中出现的不正常的现象(错误与异常),按照继承的体系结构,可以分类如下 Throwable: 它是所有错误与异常的超类(祖宗类) |- Error 错误 ...

  8. java.lang.IllegalArgumentException: Called attach on a child which is not detached: ViewHolder

    转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10116298.html 在项目过程中出现了上述错误. 会出现这样的错误是在我使用: notifyItem ...

  9. Socket 通讯原理

    Socket是什么呢? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后 ...

  10. HTTP中GET和POST的区别主要是那些,面试中可以加分的该说那些?

    面试回答: GET请求在URL中传送的参数是有长度限制的,而POST没有. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息. GET参数通过URL传递,POST放在Re ...