python cms api_CDH 的python api的一些底层的探索

在做需求的时候发现似乎没有CM的python的重启api于是去看了下,他们自己做的CM的api的工作过程:

1.以cms为例

他的inspect_hosts调用的其实就是一个_cmd,括号里的inspectHosts 看着似乎哪里见到过,翻出官方的api文档

发现在官方的输入命令的文档里有这行语句,所以这运行的底层机制其实就是一目了然了,其实调用python方法就是官方给你添加了cmd语句,那么是怎么运行的呢?

在cms.py里找不到_cmd这个内部方法,就可以想到,他是继承了父类的这个内部方法

我们查找BaseApiResource这个基类,在types.py里可以找到也可以用查找类的命令找到

我们可以看到BaseApiResource这个类里有这个方法

这里有很多默认参数,如果你要修改可以修改,如果不修改就是默认的参数比如api_version

ApiCommand是什么呢?

那么就可以很清晰的看到为什么会是/cm/commands/inspectHosts了,我们再往下追查

看到了这是更底层的调用

到这一步其实就是可以了,但是还可以往下看看这个getattr是干嘛的

说白了就是 资源.post的一个组合,这里已经写的很清楚了, is equivalent to x.y

而resource_root其实就是在初始化中@param resource_root: API resource object. 资源的一个基类

探索了这些,其实我们就可以对cms的命令进行随意的组合了

2.当然在cms中我们还发现了_put的请求也可以看下

对应的api就是

同样也是基类当中

我们看到调用的还是_call方法,这下更清楚底层的调用模式

相似的还有delete

和get

附录更新记录

后来发现还是有的,只不过clouderamanager的一些操作在service,这里记下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值