1.服务启动入口时nova工程下bin目录下的nova-network文件:
server = service.Service.create(binary='nova-network')
service.serve(server)
service.wait()
创建nova-network服务
2.service.Service.create方法位于nova目录下的service.py文件,create方法是一个类方法,在该方法中创建server对象:
service_obj = cls(host, binary, topic, manager,
report_interval, periodic_interval)
然后执行1中的service.serve(server)方法
3.serve是一个全局方法,执行服务的启动:
def serve(*servers):
global _launcher
if not _launcher:
_launcher = Launcher()
for server in servers:
_launcher.launch_server(server)
class Launch(Object):
def launch_server(self, server):
gt = eventlet.spawn(self.run_server, server)
self._services.append(gt)
最后执行start方法。
在start方法中,做一些具体的初始化工作,self.manager.init_host()就是执行创建网桥相关的工作等。