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装饰器实现的

相关推荐
min(a,b)1 小时前
学习第 4 天:面向对象与异常处理
python·学习·学习方法
一只小菜鸡..1 小时前
南京大学 操作系统 (JYY) 学习笔记:进程地址空间与内存“外挂”魔法
笔记·学习
tju新生代魔迷2 小时前
Verilog语言学习(一)
学习
一只小菜鸡..3 小时前
南京大学 操作系统 (JYY) 学习笔记:访问操作系统的对象与“一切皆文件”
笔记·学习
IT空门:门主5 小时前
Python 基础语法学习路线图
网络·python·学习
寒月小酒8 小时前
第五章 生成集成 和第六章 RAG评估(all-in-rag学习)
数据库·学习
魔城烟雨8 小时前
从零开始学习betaflight《5-坐标系》
学习
笔夏8 小时前
【移芯平台CAT1模组】烧写固件
stm32·单片机·学习
憧憬成为java架构高手的小白8 小时前
黑马八股--spring框架学习
java·学习·spring
晓梦林9 小时前
[极客大挑战 2019]PHP学习笔记
笔记·学习·php