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

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总是指调用时的类的实例。

原文地址:https://www.cnblogs.com/zpaixx/p/10662435.html

时间: 2024-08-27 00:32:03

python调用openstack的api,create_instance的程序解析的相关文章

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

#!/usr/bin/env python # coding: utf-8 # author: Wang XiaoQiang ''' 功能介绍: 1.调用阿里云API,收集所有区域 ECS 信息 2.将需要的数据整理.生成 Excel 文档 3.关于阿里 sdk 的安装,api 的调用请参考阿里云官网 4.xlsxwriter 请参考这里:http://xlsxwriter.readthedocs.org/ ''' import json, sys try: from termcolor imp

Python 调用百度翻译API

由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu api 整了一下,和大家分享. 1.百度翻译api 由于百度翻译api需要用到API key,所以,得注册百度开发者账号,然后创建开发者服务工程,得到的授权API key,具体操作可查看官方文档,请点 百度翻译api 2.代码实现  基本思路是:先将用户反馈抓下来,然后再处理html标签,再调用百度

PYTHON调用JENKINS的API来进行CI

我查到的相关API有两套,我主要用的是python-jenkins. https://pypi.python.org/pypi/python-jenkins/ 按语法调用即可... import jenkins server = jenkins.Jenkins('http://1.1.1.1/', username='user', password='pwd') version = server.get_version() # print version def demo(): result =

使用python调用和风天气API查询当前天气信息

和风天气网址:https://www.heweather.com/ 注册后在控制台会有个人认证key API帮助文档:https://www.heweather.com/documents/api/v5 #!/usr/bin/python #-*-coding:utf-8-*- #调用和风天气API查询当前天气信息 #2017/07/12 import json import urllib2 import os city='北京' #在和风天气注册后获得的key key='your key' c

Python调用百度地图API(路线规划、POI检索)——第一部分

项目的目的是为了查询某个点附近某些POI的最近距离,例如查询天安门到附近最近的商场的距离(时间) 1.百度地图API 程序中用到百度地图的两个API,分别是 (1)路线规划服务(又名Direction API):http://lbsyun.baidu.com/index.php?title=webapi/direction-api-v2 (2)地点检索服务(又名Place API):http://lbsyun.baidu.com/index.php?title=webapi/guide/webs

python 调用图灵机器人api实现简单的人机交互

接入流程如下,需要先注册开发者帐号,之后会得到一个32位的key,保存下来,用于以后发送数据.http://www.tuling123.com/ 请求方式 示例: # -*- coding: utf-8 -*- import urllib import json def getHtml(url): page = urllib.urlopen(url) html = page.read() return html if __name__ == '__main__': key = '8b005db5

python调用google map api

import urllib import urllib.request import json serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?' #serviceurl = 'http://python-data.dr-chuck.net/geojson?' while True: address = input('Enter location:') if len(address) < 1:break url = s

python调用vcenter的api 克隆虚拟机

环境 python 2.7 或者 3.4以上 1 安装pyvmomi pip install pyvmomi 2.git clone https://github.com/vmware/pyvmomi-community-samples/ 里面是很多人写号的脚本 clone_vm.py 是用来克隆虚拟机的 但是 在我的环境下 vcenter6.0下老是报ssl错误 修改了下原文件 def main(): """ Let this thing fly ""&

python调用企业微信API

#!/usr/bin/env python # -*- coding:utf-8 -*- # 2017-07-25 编写 import json import sys import urllib, urllib2 """ CorpID 企业ID Secret 应用密钥 """ CorpID  = '' Secret  = '' touser  = '@all' content = '' #获取access_token def getToken(C