neutron学习小结

news2025/1/19 3:32:59

概述

基于yoga版本学习neutron,通过源码、官方文档、部署环境进行学习

neutron-dhcp-agent

neutron.agent.dhcp_agent.main

创建server,调oslo_service launch server,最后实际调了server的start方法

neutron.service.Service.start

Service创建时会传入一个manager路径,Service.start实际会调manager的一些方法启动业务,主要调了manager的init_host和after_start方法,after_start方法默认为空,主要是init_host

neutron没有prepare_service,而是把配置项注册汇聚到一个函数,可手动尝试

start方法周期运行service的report_state方法,这个方法默认为空,应该没啥用

neutron.agent.dhcp.agent.DhcpAgentWithStateReport.__init__

neutron.agent.dhcp.agent.DhcpAgent._populate_networks_cache

DhcpAgent初始化时从neutron 拿数据放入cache

然后调Dnsmasq的existing_dhcp_networks,实际获取/var/lib/neutron/dhcp底下的形如uuid的文件名作为已存在网络id,然后用id创dhcp对象,塞到cache

neutron.agent.dhcp.agent.DhcpAgentWithStateReport.init_host

实际调用了sync_state方法

neutron.agent.dhcp.agent.DhcpAgentWithStateReport.sync_state

从cache获取已存在的网络id,cache的东西初始从/var/lib/neutron/dhcp读取目录下所有形如uuid的文件名

DhcpAgent.plugin_rpc.get_active_networks_info

plugin_rpc传入target和transport,封装了一个oslo_messaging的RPCClient,topic从neutron_lib的topics常量文件读取,是q-plugin,transport用默认的rabbit,最后通过transport发消息到target

看了下rpc可能是core_plugins启的,不知道谁调core_plugins,后面再看

neutron-l3-agent

概述

主要在after_start,init_host没啥东西

流程

neutron.cmd.eventlet.agents.l3:main ->

neutron.agent.l3_agent.main ->

neutron.agent.l3.agent.L3NATAgentWithStateReport.after_start

neutron.agent.l3.agent.L3NATAgentWithStateReport._process_routers_loop

neutron.agent.l3.agent.L3NATAgentWithStateReport._report_state

neutron.agent.l3.agent.L3NATAgentWithStateReport.pd.after_start

neutron-linuxbridge-agent

流程

neutron.cmd.eventlet.plugins.linuxbridge_neutron_agent:main ->

neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent.main ->

neutron.plugins.ml2.drivers.agent._common_agent.CommonAgentLoop.start ->

neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent.main

physical_interface_mappings和bridge_mappings从配置文件读取,冒号分隔,可能是配的,返回一个mapping

neutron.plugins.ml2.drivers.agent._common_agent.CommonAgentLoop.start

self.ext_manager.names

太难了

self.mgr.get_agent_configurations

self.mgr.__init__

self.mgr.check_vxlan_support

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1719845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编程入门(七)【虚拟机VMware安装Linux系统Ubuntu】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀Ubuntu知多少🚀安装的前期准备&am…

STM32定时器与PWM对LED灯的控制

文章目录 一、定时器——Timer(一)概念(二)分类(三)功能(四)结构1.模块一——时基单元2.模块二——输出比较模块 二、实验内容(一)标准库点亮LED灯1.实验说明…

冯喜运:5.31晚间黄金原油行情分析及尾盘操作策略

【黄金消息面分析】:周五(5月31日),最新发布的数据显示,美国4月核心PCE物价指数月率录得0.2%,低于预期(0.3%),经济学家认为,核心指数比整体指数更能反映通胀。除此之外,美…

电子阅览室能给孩子做什么

电子阅览室为孩子提供了很多活动和资源,可以为他们提供以下服务: 1. 提供电子书籍和儿童读物:电子阅览室通常提供大量的电子书籍和儿童读物,供孩子选择阅读。 2. 提供儿童学习资源:专久智能电子阅览室可以提供各种学习…

收银系统源码-千呼新零售2.0【智慧供应链】

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 详细介绍请查看下…

【HTML】通过焦点,获取部分上下文内容

【HTML】通过焦点,获取部分上下文内容 需求 用户从页面中选择部分文字描述,获取这段选中文字,并获取该文字、上两段、下两段内容,作为上下文输入 效果说明 选中绿色框内文字,将黄色框内文字作为上下文传递 代码实…

HackTheBox-Machines--Mirai

Mirai 测试过程 1 信息收集 NMAP 80 端口 指纹识别 目录扫描 http://10.129.141.121/versions http://10.129.141.121/admin 检查 /admin 下接口,发现 http://10.129.141.121/admin/index.php?login 请求,仅密码未知,可以尝试对密码进行爆…

C++青少年简明教程:While和Do-while循环语句

C青少年简明教程:While和Do-while循环语句 C的while和do-while语句都是循环控制语句,用于重复执行一段代码。while语句在循环开始前检查循环条件,而do-while语句在循环结束后检查循环条件。 使用while循环时,如果需要在每次迭代前…

网络安全基础技术扫盲篇名词解释之“证书“

用通俗易懂的话说: 证书就好比是一张身份证(类似,但不完全相同),用来证明一个网站的身份是否可信。就像你要确认一个陌生人的身份需要看他的身份证一样,电脑在连接一个网站时,也会查看网站的证…

VS2017中使用qt翻译家,除ui界面外其他用tr包裹的字符串在翻译家中显示为乱码

1、ui界面中的中文,可以正常显示 2、其他用tr包裹的字符串,显示为乱码 3、解决 改为utf8保存。 然后更新翻译文件,重新打开发现已经ok了。 参考博客: https://blog.csdn.net/zhou714534957/article/details/124948822 https://blog.csdn.net/weixin_52689816/article/d…

二进制安装Kubernetes v1.30.1高可用集群

1. kubeadm 和二进制安装 k8s 适用场景分析 kubeadm 是官方提供的开源工具,是一个开源项目,用于快速搭建 kubernetes 集群,目前是比较方便和推荐使用的。kubeadm init 以及 kubeadm join 这两个命令可以快速创建 kubernetes 集群。Kubeadm初始…

为什么都说视频号小店值得做,具体该怎么做?新手必学

大家好,我是电商花花。 所有人都在告诉你2024年应该做视频号小店,但没有人告诉你到底应该怎么做。 今天给大家说一下为什么2024年都推荐大家去做视频号小店,以及分享一些视频号小店的实操干货,可以帮助大家更快更稳的做店。 首先…

IDEA 安装BPMN插件-Activiti BPMN visualizer

IDEA安装BPMN插件 idea 18版本之前idea 18版本之后安装插件 推荐使用 Activiti BPMN visualizer插件注意 创建bpmn文件使用可视化面板 在可视化面板中右键可创建各种节点每个节点上都有连线 删除 设置的按钮 保存图片 idea 18版本之前 可以通过搜索插件actiBPMN直接安装 idea…

Jmeter-使用手册(_5.5版本)

JMeter是一个Java桌面应用程序,具有使用Swing图形API的图形界面。可以进行接口、性能等测试,也可以对任何数据库进行同样的测试,具有可移植性,可跨平台支持Windows,Linux,Mac上使用。 JMeter运行场景不仅可…

大模型之路,从菜鸟到模型大师只需要一步

前言: 在这个数据爆炸的时代,大模型技术正以前所未有的速度发展。从自然语言处理到计算机视觉,从智能推荐到自动驾驶,大模型正逐渐渗透到我们生活的方方面面。那么,如何从菜鸟成长为模型大师呢?本文将为你…

腾讯元宝眼中的我,竟是一个变现20w的AI博主!

文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 昨天(5…

19.Redis之集群

1.集群的基本介绍 集群 这个词.广义的集群,只要你是多个机器,构成了分布式系统, 都可以称为是一个"集群"前面主从结构,哨兵模式,也可以称为是"广义的集群”狭义的集群,redis 提供的集群模式, 这个集群模式之下,主要是要解决,存储空间不足的问题(拓展存储空间) …

5月安全月报 | 钓鱼事件频发,OKLink带你开启“防钓”模式

本月全网安全事件所造成的损失环比上升 27.27%,钓鱼与诈骗事件占比 60% 以上。 安全意识是您保护数字资产的第一道防线,OKLink 提供 40 头部区块链浏览器与一站式查询入口以及地址监控、代币授权查询和地址健康度等工具,为您的资产安全保驾护…

KotlinConf 2024:深入了解Kotlin Multiplatform (KMP)

KotlinConf 2024:深入了解Kotlin Multiplatform (KMP) 在近期的Google I/O大会上,我们推荐了Kotlin Multiplatform (KMP)用于跨移动、网页、服务器和桌面平台共享业务逻辑,并在Google Workspace中采用了KMP。紧接着,KotlinConf 2…