Python-ceilometerclient 代码分析

本文详细分析了Python ceilometerclient的代码结构,包括整体组织、关键代码解析和程序执行流程。主要介绍了client.py、shell.py、exc.py的角色,以及如何处理命令行参数、鉴权认证和子命令执行。通过对do_***函数的调用,实现了对ceilometer资源的操作。掌握此模块有助于理解其他Python client的代码和进行二次开发。
摘要由CSDN通过智能技术生成

整体结构


从目录层次上来看,代码结构如下

--ceilometerclient
                --common/         
                --openstack/
                --tests/
                --v1/
                --v2/
                --client.py
                --shell.py
                --exc.py

其中commonopenstack提供utils帮助类,tests是测试用例目录,v1v2分别对应ceilometerv1v2版本。client.py提供获取client的方法,包括keystoneclient,提供获取endpointtoken的方法;还包括获取ceilometerclient的函数。shell.py是模块的入口,提供对命令行的解析和命令的调用。exc.py提供用到的异常类。

在每个版本目录下,代码的组织如下(v2为例):

--v2
  --client.py
  --shell.py
  --alarms.py
  --event_types.py
  --events.py
  --meters.py
  -- … …

每个版本目录下也有一个client.py和一个shell.py,这里的shell.py里面提供了do_**的函数完成从上层shell.py传进来的命令并返回结果。其它的py文件按照名称以Manager类的形式分别对应ceilometer各个资源的操作实现。client.py引用所有的Manager,这样shell.py只需要依赖client一个就可以完成对各个资源的操作。所以从控制的角度分析,代码的依赖关系大致是:

shell.py  ------> client.py ---->alarms/events/meters/samples.py …
   ^                 ^
   |(v1/v2)          | (v1/v2)
   |                 |
shell.py  ------> client.py  (根目录)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值