Quantum关于network的操作(LinuxBridge)
version:Folsom
1 创建network
1.1 入口
由前几篇文档可知,对资源的处理都在Mapper对应的Controller中:
以创建network为例,在quantum/api/v2/base.py的Controller类中的create函数中:
action = "create_%s" % self._resource
本文以linuxbridge插件为例,所以代码中的self._plugin=quantum/plugin/linuxbridge/lb_quantum_plugin.py/LinuxBridgePluginV2
(需要注意的是,该类继承自quantum/db/db_base_plugin_v2.py/QuantumDbPluginV2和quantum/db/l3_db.py/L3_NAT_db_mixin)。类的继承关系如下:
1.2 LinuxBridge插件初始化
1.3 流程
1.4 总结
由上述分析,创建网络,只是在逻辑上创建,不涉及底层,但需要在数据库中记录逻辑网络与物理网络的对应关系,物理网络的信息体现在配置文件中。
2 删除network
2.1 流程
3 更新network
3.1 流程
4 总结
个人理解,看待Quantum网络模型时可以从上层的逻辑概念和下层的物理概念区分。有一些概念或对象只在上层关注,下层的agent或物理网络只关心实际的操作和部署。当然,需要上下层配合时,就需要做映射,比如networkbinding表就是用来映射逻辑网络和实际物理网络的关系。