Neutron中的Service类
Service是OpenStack中非常重要的一個概念,各個服務的組件都以Service類的方式來進行交互。
Neutron中的Service類繼承自rpc中的Service,總體的繼承關系為
neutron.openstack.common.service.Service類-->neutron.common.rpc.Service類-->neutron.service.Service類。
當中neutron.openstack.common.service.Service類定義了簡單的reset()、start()、stop()和wait()方法。該類初始化后會維護一個線程組。
neutron.common.rpc.Service類中進一步豐富了start()和stop()方法,并在初始化中引入了host、topic、manager和serializer參數。
start()添加�創建了Connection對象,之后創建了三個consumer,分別監聽主題為參數傳入的topic(fanout分別為True和False),以及主題為topic.host。然后調用manager的初始化。最后作為server啟動全部的consumer。
neutron.service.Service類的初始化中更進一步的添加�了binary、report_interval、periodic_interval、periodic_fuzzy_delay等參數。除豐富了start()、stop()和wait()方法外,還添加�了create()類方法、kill()、periodic_tasks()和report_state()。
start()添加�了周期性運行report_state()和periodic_tasks(),而且調用manager的init_host()和after_start()方法。
create()方法是類方法,它依據傳入的參數binary參數獲取真實的程序名,并在未給定參數的情況下嘗試從配置文件里解析manager和report_interval、periodic_interval、periodic_fuzzy_delay等參數。最后是返回生成的Service類對象。
report_state()方法僅定義了接口。
periodic_tasks()則首先獲取admin的上下文,然后調用manager的periodic_tasks()方法運行。
很多其它詳細內容請參考https://github.com/yeasy/tech_writing/blob/master/OpenStack/OpenStack%20Neutron%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90.pdf
轉載于:https://www.cnblogs.com/yxwkf/p/3870102.html
總結
以上是生活随笔為你收集整理的Neutron中的Service类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《UNIX系统编程》
- 下一篇: Fragment使用--文章集锦