Nova中的api

1、nova中和api有关的文件/目录夹有:
api目录
多个rpcaip.py
多个api.py

2、openstack的几种api

Rest api:项目对外开放的接口。

本地调用api(local api):进程内方法调用,及普通的Python方法调用

Rpcapi.py就是某个功能模块的远程调用api

3、Rest API:RestAPI是openstack的标准对外接口,所有API都有官方文档详细定义。

openstack中的rest api实现有两个关键技术:wsgi和Paste Deployment.

wsgi是一种接口规范。定义web server和web application之间的接口。

Paste Deployment是一个针对wsgi开发的库,用来配置和加载wsgi application和server。openstack中配置都是通过api-paste.ini文件提供。通过这个文件就可以直接调用Paste Deployment代码来加载web server和上面的application。

4、openstack service endpoint
每个服务(nova,cinder,neutron等)都会在keystone上注册一个service endpoint,这个endpoint就是一个URL。每个rest api的完整URL是由这个endpoint+api文档中定义的URI构成的。

Ps:keystone中可以为每个service定义3个endpoint:一个是面向公网(public)使用的;一个是

面向内网(internal)使用的;还有一个是面向admi使用的。通常internal和admin的endpoint是相同的,都是用openstack管理网络中的IP地址。public需要使用公网IP地址。

5、本地调用api
和远程调用api非常类似,只能在进程间调用。每个服务会有一个api.py文件,这个文件就提供了该服务的本地调用api接口。如compute中api.py。查看api.py文件可以看到,该文件中的很多实现其实由调用了compute的rpcapi.py

6、远程调用api
每个openstack项目会包括多个功能独立的服务(service)。如nova会分成nova-api,nova-conductor,nova-compute...其中除了nova-api外,其余的都是RPC server。

7、openstack中的api使用规则
如果是跨项目的调用(如nova调用keystone,glance等),使用rest api(通过相应的python-XXXclient库)。安装nova时需要依赖python-cinderclient python-neutronclien python-glanceclient python-keystoneclient,因为nova需要调用这些rest api。其他项目也有类似的依赖。

如果是项目内跨服务调用,则使用RPC调用,通过服务提供的rpcapi.py文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值