參考鏈接:
http://control-that-vm.blogspot.jp/2014/02/neutron-plugin-architecture.html
https://wiki.openstack.org/wiki/NeutronDevelopment#Developing_a_Neutron_Plugin
Neutron的插件必須實(shí)現(xiàn)一組Neutron的python API丙挽,可以查看一下neutron的基類(lèi)代碼neutron/neutron_plugin_base.py
插件的類(lèi)需要繼承類(lèi)NeutronPluginBaseV2萄唇,這個(gè)類(lèi)中提供了一些網(wǎng)絡(luò)相關(guān)的增刪改查抽象方法,在插件的類(lèi)中需要定義并實(shí)現(xiàn)該方法搪哪,如果有些方法是不需要的話,需要定義這個(gè)方法的實(shí)現(xiàn)為pass衅澈。
基類(lèi)中已經(jīng)提供了sqlalchemy綁定嗅榕,可以存儲(chǔ)API的一些輸入信息,比如網(wǎng)絡(luò)火焰,端口劲装。
一個(gè)插件通常由以下幾個(gè)功能組成:
1. 存儲(chǔ)邏輯上的網(wǎng)絡(luò)配置信息到數(shù)據(jù)庫(kù)
2. 確定和存儲(chǔ)邏輯到物理網(wǎng)絡(luò)映射的信息
3. 與底層實(shí)際的硬件或軟件交互,實(shí)現(xiàn)邏輯功能到物理的映射
修改neutron.conf中core_plugin的配置項(xiàng)昌简,將其指向我們自己開(kāi)發(fā)的插件:[DEFAULT] 中的 core_plugin=<path.to.plugin.AbcNeutronPlugin>,然后重啟neutron服務(wù)占业。