以建立虛擬機爲例api
1.項目入口setup.cfg文件異步
2.根據nova-compute = nova.cmd.compute:main找到功能入口ui
3.nova/api/openstack/compute/servers.py中create(self, req, body)中進行rpc調用3d
4.進去nova/compute/api.py中create()方法,其中進行實例調用self._create_instance()server
5.進入nova/compute/api中_create_instance()方法,其中進行rpc調用schedule_and_build_instance()方法blog
6.進入nova/conductor/api.py中schedule_and_build_instances()方法,其中進行rpc調用schedule_and_build_instances()方法rpc
7.進入nova/conductor/rpcapi.py中schedule_and_build_instances()方法,其中使用rpc異步方式調用scheduler_and_build_instance()方法
cmd
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()方法執行建立虛擬機動做