Neutron的一个扩展,允许在/segments
资源的API调用上执行CRUD操作,对应于DB 层中的NetworkSegment
实体。这个扩展作为服务插件实现。
注: segments
服务插件默认不会配置. 要配置它,在neutron.conf
文件中,,将segments
添加为service_plugins
的参数。
核心插件可以通过注册SEGMENT
资源关联事件的回调函数与segments
服务插件配合。目前,segments
插件可通知订阅用户以下的事件:
PRECOMMIT_CREATE
AFTER_CREATE
BEFORE_DELETE
PRECOMMIT_DELETE
AFTER_DELETE
在撰写本文时,ML2
和 OVN
注册回调从segments
服务插件接收事件。ML2
插件定义了回调_handle_segment_change
处理所有相关的segments事件。
Segments扩展相关模块
neutron/extensions/segment.py
定义此扩展neutron/db/models/segment.py
定义segments和segments主机映射的DB模型,在路由网路中使用。neutron/db/segments_db.py
定义从DB中添加、获取、和删除segments的函数。neutron/services/segments/db.py
定义一个混合的类及为segments
插件执行API CRUD操作的方法。还有创建和维护segments到主机映射的函数,这是路由网路所需要的。neutron/services/segments/plugin.py
定义segments
服务插件.