使用asyncio的基本openstack异步客户端库
AsyncOpenStackClient的Python项目详细描述
简介
异步openstackclient是openstack api的异步rest包装器。它为身份验证提供了一个很好的抽象。有关方法规范,请参见官方的openstack文档:https://docs.openstack.org/queens/api/。
安装
使用pip:
pip install AsyncOpenStackClient
用法
fromasyncopenstackclientimportNovaClient,GlanceClient,CinderClient,AuthPassword# you can either pass credentials explicitly (as shown below)# or use enviormental variables from OpenStack RC file# https://docs.openstack.org/mitaka/cli-reference/common/cli_set_environment_variables_using_openstack_rc.htmlauth=AuthPassword(auth_url='https://keystone:5999/v3'username='USER',password='PASS',project_name='my-project',user_domain_name='default',project_domain_name='foo.bar')nova=NovaClient(session=auth)glance=GlanceClient(session=auth)cinder=CinderClient(session=auth)# api url for each service will be taken from catalog,# but you may pass `api_url` param to force custom url eg.# nova = NovaClient(session=auth, api_url='http://my-local-nova:9876/v2/')awaitnova.init_api()awaitglance.init_api()awaitcinder.init_api()servers=awaitnova.servers.list(name='testvm')vm=awaitnova.servers.get(server_id)action_spec={'os-stop':None}awaitnova.servers.run_action(server_id,**action_spec)specs={"name":'some_name',"flavorRef":'flavor_id',"imageRef":'image_id',"security_groups":[{'name':'group1'},{'name':'group2'}]"user_data":base64.b64encode(userdata).decode('utf-8')}response=awaitnova.servers.create(server=specs)print(response)volume={"size":200,"imageRef":"image_id","name":"some_name"}response=awaitcinder.volumes.create(volume=volume)print(response)
可用功能
- 新星(https://developer.openstack.org/api-ref/compute)
- servers.list(optional=filter)params可选
- 服务器。获取(id)
- servers.create(server=server_spec)
- 服务器。强制删除(ID)
- 服务器。运行操作(id,action=action\u spec)
- flavors.list()
- metadata.get(服务器id)
- metadata.set(服务器id,meta=meta_规范)
- 元数据。获取项(服务器ID,项名称)
- metadata.set_item(服务器id,项名称,meta=meta_规范)
- 一瞥(https://developer.openstack.org/api-ref/image/v2/index.html)
- images.list()
- 煤渣(https://developer.openstack.org/api-ref/block-storage/v3/index.html)
- volumes.list(optional=filter)params可选
- 卷。获取(id)
- 卷。创建(卷=卷规格)
- 卷。强制删除(ID)
更改日志
0.8.1(2019-04-03)
- 修复:升级依赖项(urllib3:cve-2018-20060)
0.8.0(2018-08-19)
- 功能:compute api的另一部分-在服务器上运行操作
- 功能:CD配置
0.7.0(2018-06-15)
- 特点:炉渣实现
- 错误修复:错误修复
0.6.3(2018-06-13)
- 功能:可调请求超时,默认值为60秒
0.6.2(2018-05-18)
- 错误修复:初始化客户端中的属性(API)以获得一些有意义的错误,而不是“达到递归限制”。
0.6.0(2018-05-12)
- 功能:使用资源/方法代理包装请求
0.5.2(2018-05-10)
- 错误修复:在api根url末尾添加斜杠
0.5.1(2018-04-29)
- 错误修复:用元数据条目和envs通知更新自述文件
0.5.0(2018-04-25)
- 功能:部分支持服务器元数据的使用
0.4.1(2018-04-25)
- bugifx:具有urljoin的concat auth_url无效
0.4.0(2018-04-16)
- 功能:使用变量(如果存在)
0.3.0(2018-04-13)
- 功能:接受并传递API URL
- 功能:如果目录提供不完整的API URL(例如没有版本)
0.2.3(2018-04-05)
- 错误修复:不要等待同步方法
0.2.2(2018-04-02)
- 更新简单rest客户端(固定日志记录)
0.2.1(2018-03-28)
- 修复测试、COV报告、manifest.in
0.1.1(2018-03-02)
- 更新manifest.in
0.1.0(2018-02-15)
- 为python3构建异步openstack客户端库的第一种方法