• 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文件。

  • 相关阅读:
    Access,Trunk,Hybrid的一些接触知识以及实验
    民国漫画杂志《时代漫画》第37期.PDF
    .NET LINQ 通常分 Syntax Query 和Syntax Method
    【数据结构初阶】一文详解顺序栈和链队列的基本操作
    Social Justice Awards秋季赛学霸怎么理解?
    【GIS面试】GIS算法介绍
    二叉树的递归遍历
    史上最全JVM性能调优:线程+子系统+类加载+内存分配+垃圾回收
    vue3引入three.js
    收集Stream流
  • 原文地址:https://blog.csdn.net/m0_51734025/article/details/125422668