Cobalt扩展用于OS NovaClient。

cobalt_python_novaclient_ext的Python项目详细描述


概述:novaclient的一个扩展钩子,它使novaclient能够与cobalt端点交互。


应用程序:

显示nova脚本的所有可用命令。列出了以网格为中心的实时图像创建、实时图像开始、实时图像列表、实时图像服务器、实时图像删除和联合迁移。
$nova help

$nova help live image create用法:nova live image create[--name<;name>;]<;instance>;

image

可选参数:
--name<;name>;活动图像的名称



$nova help live image start
用法:nova live image start[--target<;target memory>;]
[--name<;实例名称>;]
[--user_data<;user data>;]
[--security groups<;security groups>;]
[--availability zone<;availability zone>;]
[--num instances<;number>;]
[--key name<;key name>;][--params<;key=value>;]
<;实时图像>;

从实时图像启动新实例。


已启动实例的内存目标
--名称<;实例名称>;
已启动实例的名称
--用户数据<;用户数据>;
要通过元数据公开的用户数据文件
服务器
--安全组<;安全组>;
以逗号分隔的安全组名称列表。
--可用区域<;可用区>;
实例放置的可用区。
--num instances<;number>;
一次启动多个实例
--密钥名称<;密钥名称>;
密钥对的密钥名称应该在前面用命令keypair add创建
--params<;key=value>;guest参数发送给vms代理



$nova help live image delete
用法:nova live image delete<;live image>;

delete a live image图像。

位置参数:
<;实时图像>;实时图像的ID或名称



$nova help co migrate
用法:nova co migrate[--dest<;destination host>;]<;instance>;

使用vms迁移实例。


要迁移到的主机


$nova help live image servers
用法:nova live image servers<;live image>;

列出从此live image启动的实例。

实时图像



$nova help live image list
用法:nova live image list<;server>;

站姿。

位置参数:
<;服务器>;实例的id或名称




>脚本使用
====


>也可以使用python api直接访问novaclient钩子。

apikey="admin"
project="openstackdemo"
authurl="http://localhost:5000/v2.0"

extensions=shell.openstackcomputeshell()。\u discover_extensions("1.1")
novaclient=novaclient(user,apikey,project,authurl,extensions=extensions,
endpoint_type=shell。默认的新端点类型,
service_type=shell.default_nova_service_type)


def wait_for_status(server,status):
while server.status!=状态:
time.sleep(30)
server=novaclient.cobalt.get(server.id)
return server

def wait_until_gone(server):
尝试:
为真:
server=novaclient.cobalt.get(server.id)
睡眠时间(10)
例外情况除外,e:
服务器不再存在。
传递

使用Flavor1和作为第一个参数传入的映像启动新服务器。
image_id=sys.argv[1]
FlavorID=1
server=novaclient.servers.create("以网格为中心的实例",
映像ID,
特色ID)
服务器=等待状态(服务器,"活动")

创建服务器的实时映像。这将返回祝福服务器的实例。我们需要
请注意,我们可以通过调用服务器本身上的"启动实时映像"或将服务器传递到"Cobalt管理器"来执行此操作。
启动实时映像。启动实时映像[0]
启动服务器2=novaclient.cobalt.start实时映像[0]

#列出从Live_映像启动的服务器。
对于Live_映像中的服务器。list_server s():
打印"服务器%s从%s"%(s.id,live_image.id)启动

删除启动的服务器。
已启动的服务器2=等待状态(已启动的服务器2,"活动的")
启动的服务器2.delete()
启动的服务器=等待状态(启动的服务器,"活动的")
novaclient.servers.delete(启动的服务器)

w需要确保在删除动态映像之前已删除启动的实例。
wait\u ungone(启动的服务器2)
wait\u ungone(启动的服务器)
服务器。注意,我们可以删除此服务器并保留受祝福的服务器。
server.delete()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将HashMap<String,Object>从一个活动传递到另一个活动   java如何手动加密socket连接的流量?   java正则表达式生成一个不正确的结果   Java方法引用具有泛型参数的方法   java app setBackground()错误:不兼容的类型:int无法转换为Drawable   java是启动Spring引导而不是SpringApplication的其他方法。跑   无法打开java类路径资源[org/quartz/impl/jdbcjobstore/tables_h2.sql],因为它不存在   spring使用Java,如何确定来自tomcat Web服务器的出站服务调用?   java获取多个同名的XML元素JAXB   java使用Ant从同一代码库构建Swing和Android应用程序   JComponent的java重绘方法不起作用   java目标不可访问,标识符“beanName”解析为null   smtp是否有支持esmtp管道的java api?   java如何在Spring中自动连接业务对象   java在Hibernate中没有其他保存实体的方法吗?   针对两个客户机的SpringJavaWeb应用程序项目开发   使用split的java标记化输入