OpenStack 的开发接口有 REST API、SDK、CLI 三种
SDK 是给开发人员方便的使用 API 的开发工具包,比命令行工具或 REST API 容易使用的多
三者之间关系是
CLI
|
v
SDK
|
v
REST API
提供以下几种方法
https://libcloud.apache.org/
http://developer.openstack.org/firstapp-libcloud/
libcloud 是一个访问云计算服务的统一接口,该项目是 Apache 组织的顶级项目,采用 Python 开发
为各个云供应商的专有 API 提供了厂商中立的接口,支持 30 种以上厂商的云服务
http://docs.openstack.org/user-guide/sdk.html
http://docs.openstack.org/developer/python-openstackclient/
实现了对 OpenStack API 的 Python 语言绑定
开发人员使用这些 Python 绑定简化编写 OpenStack 自动化脚本的过程
openstackclient 已经替代了项目客户端 lib 库,OpenstackClient CLI 也在逐渐替代每个项目单独的 CLI 工具。
官方推荐使用
New users should default to coding against the OpenStack SDK.
http://docs.openstack.org/infra/shade/
OpenStack 功能很多,但只有几种最常用的操作。shade 提供了简单的操作接口,shade 不能支持更复杂的操作
shade 支持操作多个 OpenStack 云服务
OpenStack 是一组服务的集合,每个服务提供了各自的客户端 lib 库,比如:
OpenStack 的命令行工具,还有 Dashborad 都使用客户端 lib 库实现
Dashboard 的使用例子见 https://github.com/openstack/horizon/tree/master/openstack_dashboard/api
官方不建议使用
Unless there is no other choice for some reason, the per-project libraries should be avoided.
http://docs.openstack.org/developer/keystoneauth/
keystoneauth 库用来完成 OpenStack 的用户身份认证和权限控制
http://developer.openstack.org/sdks/python/openstacksdk/
http://developer.openstack.org/
http://docs.openstack.org/user-guide/sdk.html
http://developer.openstack.org/firstapp-libcloud/getting_started.html#choose-your-openstack-sdk
https://wiki.openstack.org/wiki/SDK-Development
http://www.aboutyun.com/thread-6747-1-1.html
http://www.chenshake.com/secondary-development-of-openstack-dashboard/
-eof-