当前位置:网站首页>Nova中的api
Nova中的api
2022-06-25 12:36:00 【团子的守护】
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文件。
边栏推荐
- Of binary tree_ Huffman tree_ Huffman encoding
- Fedora 35 部署DNS主从和分离解析 —— 筑梦之路
- Golang keyboard input statement scanln scanf code example
- 买基金在哪里开户安全?还请赐教
- 始终保持疫情防控不放松 营造安全稳定的社会环境
- Online service emergency research methodology
- golang键盘输入语句scanln scanf代码示例
- Sword finger offer day 2 linked list (simple)
- ByteDance dev better technology salon is coming! Participate in the activity to win a good gift, and sign up for free within a limited time!
- 數據在內存中的存儲相關內容
猜你喜欢
Another night when visdom crashed
关于扫雷的简易实现
leetcode - 384. 打乱数组
爱可可AI前沿推介(6.25)
Sword finger offer day 2 linked list (simple)
leetcode - 384. Scramble array
Fedora 35 deploys DNS master-slave and separation resolution -- the way to build a dream
Meichuang was selected into the list of "2022 CCIA top 50 Chinese network security competitiveness"
Serenvlt first met
关于一道教材题的讲解
随机推荐
Solve the problem that yarn cannot load files in vs Code
Serevlt初识
Optimization of lazyagg query rewriting in parsing data warehouse
Sword finger offer day 1 stack and queue (simple)
二叉树之_哈夫曼树_哈弗曼编码
爱可可AI前沿推介(6.25)
Spoken English - weak reading
Always maintain epidemic prevention and control and create a safe and stable social environment
[machine learning] what is machine learning?
关于数据在内存中存储的相关例题
剑指 Offer II 029. 排序的循环链表
[machine learning] parameter learning and gradient descent
.NET in China - What's New in .NET
Summer Ending
Detailed explanation of string operation functions and memory functions
Summer Ending
Sword finger offer II 028 Flatten multi-level bidirectional linked list
CUDA error: unspecified launch failure
nacos无法修改配置文件Mysql8.0的解决方法
Koa frame