【OpenStack Liberty】Cinder源码走读--准备工作

提示:本文基于openstack liberty版本源码进行梳理


前言

本文简单介绍一下源码走读前的准备工作,提到了cinder启动到源码的联系,同时简单介绍了下cinder源码目录结构。
本文承接上文:【OpenStack】Cinder简介


一、源代码获取

再次提示本文基于Liberty版本进行梳理,所以我们从github克隆cinder代码,并切换到liberty版本

git clone https://github.com/openstack/cinder.git

cd cinder/

git checkout liberty-eol

二、程序入口定位

入口定位我这里有两种方式:

  1. 直接查看项目的setup.cfg文件进行跟踪
  2. 根据环境中启动服务的命令进行跟踪

第一种方式适合有了解setup tools的朋友,为了结合项目我这里使用第二种方式。

定位入口详细流程

由于这几个组件启动流程差不多。这里就拿cinder-api举例,由于不需要暴露Restful接口,另外三个模块启动流程反而简单些。

在环境中,查看cinder-api的service状态,可以获取到运行的脚本openstack-cinder-api.service

cinder-api service.png

然后我们执行下面指令查看openstack-cinder-api.service内容:

vim /usr/lib/systemd/system/openstack-cinder-api.service

可以看到这里实际上执行了/usr/bin/cinder-api

编辑service文件.png

然后我们再用vim查看下这个文件,可以看到这是一个python脚本,调用了cinder.cmd.api的main方法:

#!/usr/bin/python2
# PBR Generated from u'console_scripts'

import sys
# 由第一行可知,这是个python shell,可以看到这里执行的是cinder.cmd.api下的main,这样cinder-api的入口就找到了
from cinder.cmd.api import main


if __name__ == "__main__":
    sys.exit(main())

三、源代码目录介绍

拉下来的代码pycharm打开目录如下:

目录结构.png

在这一层中只有cinder是核心代码,其他的目录文件是一些配置文件和文档,后面主要分析的是cinder中的内容。

cinder目录说明.png

参考文档:

  1. OpenStack Cinder 源码解读(基于Mitaka)(一)(源码体系结构)

总结

以上就是本文要讲的内容,本文仅仅简单介绍了cinder源码的获取和目录结构,后面将会基于volume的创建进行代码走读。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值