nova源码分析--入口函数

寻找Nova的入口函数,Nova的代码一部分部署上控制节点上,一部分部署在计算节点上

在centos上以包的方式安装时,控制节点安装完成后执行以下命令启动服务:

systemctl start openstack-nova-api.service openstack-nova-cert.service
                        openstack-nova-consoleauth.service openstack-nova-scheduler.service
                        openstack-nova-conductor.service openstack-nova-novncproxy.service

这些服务位于目录/usr/lib/systemd/system下,openstack-nova-api.service文件中设置的ExecStart=/usr/bin/nova-api,即服务启动时将执行/usr/bin/nova-api,该文件的代码如下,将执行nova/cmd/api.py文件中的main函数,类似的能找到各个服务的入口函数。

from nova.cmd.api import main


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

 

第二种寻找入口函数的方式,nova目录下有一个文件setup.cfg,该文件中的[entry_points]字段定义了入口函数:

nova-api = nova.cmd.api:main

与第一种方式分析的结果一致。

你可能感兴趣的:(openstack)