LBaas之(六)python-neutronclient架构分析
来源:互联网 发布:经典名著改编电影知乎 编辑:程序博客网 时间:2024/06/05 03:32
python-neutronclient架构分析
命令执行流程
图 1 命令执行流程
当执行neutron命令时,Python-neutronclient实际执行shell.py中的main函数。在main函数中,构造一个NeutronShell对象,然后调用该对象的run()函数。
在run()函数中,进行log配置、参数解析、等操作,然后调用run_subcommand()函数。
在run_subcommand()函数中,通过CommandManager查找到用户所输入命令对应的执行类,构造对应Command对象,并调用Command对象的run()函数,进行实际处理。
在cmd.run函数中,使用client类的相应方法进行RESTAPI调用。
NeutronShell
图 2 NeutronShell类继承关系
NeutronShell继承自cliff包app模块的App类,App类对基本命令行程序所需的参数解析、结果展示等进行封装,方便用户使用。具体的使用方法,参见:http://docs.openstack.org/developer/cliff/classes.html#application
Command管理
图 3 Command管理
Pythonneutron-client通过CommandManager对neutron命令和命令实现类进行统一管理,构成一个字典,示例如下,详见附录:Command类对应关系。
COMMAND_V2 = {
'net-list': network.ListNetwork,
'net-external-list': network.ListExternalNetwork,
'net-show':network.ShowNetwork
}
CommandManager根据用户输入的neutron命令,查找对应的类,然后构造对象,调用对象的run()函数进行命令执行的实际操作。- LBaas之(六)python-neutronclient架构分析
- python-neutronclient架构分析
- LBaas之(五) Liberty版本Neutron LBaas实现分析
- LBaas之(四)Neutron/LBaaS/API
- OpenStack LBaaS之LBaaS
- LBaas之(一)官网配置
- LBaas 原理分析
- NopCommerce架构分析之六------自定义RazorViewEngine
- OpenStack LBaaS之Octavia
- neutron之lbaas v2
- 利用Python进行数据分析(六)之pandas基本功能
- LBass之(三)Neutron LBaaS Service基本知识
- Android GPS架构分析(六)
- ndroid GPS架构分析(六)
- Android GPS架构分析(六)
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
- at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:123)
- (LeetCode) 204. Count Primes
- mybatis执行insert实体后返回主键
- MyBatis01
- git tag 标签完全用法(如何更好的管理你的分支)
- LBaas之(六)python-neutronclient架构分析
- SpringBoot开发详解(九) -- 使用JPA访问数据库上篇
- bfs路径打印
- Linux里如何查找文件内容
- 由@suppressWarnings("unchecked")想到的一丢丢
- struts
- python文本读写,with open as
- Ubuntu Server 16.04中文方块菱形乱码问题解决
- myBatis02