LBaas之(六)python-neutronclient架构分析

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()函数进行命令执行的实际操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值