nova学习小结

写在前面

基于yoga版本源码进行学习

api流程

该入口从配置加载app

看下osapi_compute流程,v2.1用oscomputeversion_v2

将api_paste.ini内容加载为server,再调oslo_service.service.ProcessLauncher拉起server。将api-paste加载为server,server继承了oslo_service.service.Service

看下novaclient 先获取api_version,默认应该是这个

会创建一个apiversion对象,供shell使用,注意下apiversion版本号

不跳过鉴权

判断api版本。默认是2.latest,是latest则继续,,如果不是latest,则检查是否大于2.0,然后检查是否当前版本在最大版本和最小版本之间,如果超出范围则异常

注意到虽然配置是2.latest,但client版本是2.0

再用latest version去discover version,会先从keystone获取endpoint然后获取endpoint/versions返回信息,根据返回信息确认最终api-version,总之,最后就是2.0

应该是在get_subcommand_parser里寻找命令行对应的函数

debug发现到nova侧是2.1...先按2.1看吧,入口是api-paste.ini对应名字类的factory,进去看就行,以resize为例,对应处理函数在这,路由好像是通过wsgi.action装饰器实现的

相关推荐
June bug9 小时前
【实习笔记】Fiddler学习笔记
笔记·学习·fiddler
我怕是好9 小时前
学习STM32 ESP8266
stm32·嵌入式硬件·学习
JeffDingAI9 小时前
【Datawhale学习笔记】动手学RNN及LSTM
笔记·rnn·学习
JeffDingAI10 小时前
【Datawhale学习笔记】预训练模型实战
笔记·学习
GISer_Jing10 小时前
AI Coding学习——dw|ali(持续更新)
人工智能·学习·prompt·aigc
振华说技能10 小时前
MasterCAM车铣复合都学哪些内容!
学习
世人万千丶10 小时前
鸿蒙跨端框架 Flutter 学习 Day 4:程序生存法则——异常捕获与异步错误处理的熔断艺术
学习·flutter·华为·harmonyos·鸿蒙
军军君0111 小时前
Three.js基础功能学习十二:常量与核心
前端·javascript·学习·3d·threejs·three·三维
Hello_Embed11 小时前
RS485 双串口通信 + LCD 实时显示(中断版)
c语言·笔记·单片机·学习·操作系统·嵌入式
confiself11 小时前
Engram论文学习
学习