opnstack学习笔记---源码阅读(一)

一  读源码,先弄清源码结构

一般对于一个工程而言(nova,keystone......),有

setup.py 文件 ,setup.cfg 配置文件 tox.ini 测试文件 

对于一个新人来说,setup.cfg 是引导我们去阅读代码的一个很重要的文件,帮助我们认识项目代码结构

这个文件中有各种各样的sections 

比如说:entry_points 

[entry_points]
nova.compute.resources =
    vcpu = nova.compute.resources.vcpu:VCPU
nova.image.download.modules =
    file = nova.image.download.file
console_scripts =
    nova-all = nova.cmd.all:main
    nova-api = nova.cmd.api:main
    nova-api-ec2 = nova.cmd.api_ec2:main
    nova-api-metadata = nova.cmd.api_metadata:main
    nova-api-os-compute = nova.cmd.api_os_compute:main
    nova-cells = nova.cmd.cells:main
    nova-cert = nova.cmd.cert:main
    nova-compute = nova.cmd.compute:main
    nova-conductor = nova.cmd.conductor:main
    nova-console = nova.cmd.console:main
    nova-consoleauth = nova.cmd.consoleauth:main
    nova-dhcpbridge = nova.cmd.dhcpbridge:main
    nova-idmapshift = nova.cmd.idmapshift:main
    nova-manage = nova.cmd.manage:main
    nova-network = nova.cmd.network:main
    nova-novncproxy = nova.cmd.novncproxy:main
    nova-objectstore = nova.cmd.objectstore:main
    nova-rootwrap = oslo.rootwrap.cmd:main
    nova-scheduler = nova.cmd.scheduler:main

这里面就表示:我们可以将其理解为,该项目提供的各种服务的入口点,也就是源码实现的位置在哪里


bin目录

 <proj>-all 是项目的总入口


nova的主要代码都是nova文件夹之下。
/nova/service.py:主机上运行所有服务的通用节点基类;所有服务的start位置。
/nova/config.py :配置信息
/nova/api/openstack:提供openstacknova REST API接口服务
/nova/api/ec2:提供兼容亚马逊标准化接口
/nova/compute:计算资源池
/nova/compute/api.py:处理关于计算资源的所有的请求;
/nova/compute/manager.py:对实例相关的所有进程的处理;
ComputeVirtAPI类:计算VirtAPI;
ComputeManager类:管理实例从建立到销毁的运行过程;
/nova/network:网络资源池
/nova/scheduler:调度资源池

/nova/scheduler/__init__.py:这个模块的功能是挑选一个计算节点来运行一个虚拟机实例;

/nova/image/glance.py:使用Glance作为后端的镜像服务的实现;

/nova/api/openstack/__init__.py:OpenStack API控制器的WSGI中间件;

LocalAPI类:conductor API 的本地版本,这个类处理了本地数据库的更新,而不是通过RPC;
API类:通过RPC和ConductorManager类实现数据库的更新,实现Conductor的管理;

/nova/db/api.py:定义数据库访问接口;
/nova/network/api.py:API类:通过nova-network进行网络管理的API;

/nova/context.py:关于请求信息上下文的一些方法
/nova/exception.py:Nova基本的异常处理,包括各种异常类及其类中提示的异常信息;
/nova/filters.py:滤波器支持,定义了所有滤波器类的基类和处理加载滤波器类的基类;
/nova/manager.py:基本管理类;
/nova/notifications.py:系统常见的多层次通知的相关方法;
/nova/policy.py:Nova的Policy引擎;
/nova/quota.py:实例配额和浮动ip;
/nova/service.py:主机上运行所有服务的通用节点基类;
/nova/test.py:单元测试的基类;
/nova/utils.py:实用工具和辅助方法;
/nova/weights.py:可插拔权重支持;
/nova/wsgi.py:WSGI服务工作的通用方法;


三: paste.ini 文件 

每个项目的etc 目录下都有一个paste文件,例如 nova/etc/nova-paste.ini 文件,部署时,这些配置文件会被复制到系统的/etc 目录下,pasteDeploy的工作便是基于这些配置文件,配置文件会分为多个section 每个section 以type:name 命名,type 有:composite ,app ,filter-app ,filter ,pipleline 几种类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值