以创建虚拟机为例
1.项目入口setup.cfg文件
2.根据nova-compute = nova.cmd.compute:main找到功能入口
3.nova/api/openstack/compute/servers.py中create(self, req, body)中进行rpc调用
4.进去nova/compute/api.py中create()方法,其中进行实例调用self._create_instance()
5.进入nova/compute/api中_create_instance()方法,其中进行rpc调用schedule_and_build_instance()方法
6.进入nova/conductor/api.py中schedule_and_build_instances()方法,其中进行rpc调用schedule_and_build_instances()方法
7.进入nova/conductor/rpcapi.py中schedule_and_build_instances()方法,其中使用rpc异步方式调用scheduler_and_build_instance()方法
8.根据scheduler_and_build_instance异步跳转至nova/conductor/manager.py中scheduler_and_build_instance()方法
9.nova/conductor/manager.py中scheduler_and_build_instance()方法使用rpc调用build_and_run_instance()方法
10.进入nova/compute/rpcapi.py中build_and_run_instance()方法,其中使用rpc异步调用build_and_run_instance()方法,至此conductor任务结束,后续任务由compute/manager.py执行
11.进入nova/compute/manager.py中build_and_run_instance()方法执行创建虚拟机动作