ironic client look into
来源:互联网 发布:python退出程序 exit 编辑:程序博客网 时间:2024/06/05 02:03
前面讲的都是用curl调用,直接call 到ironic的 rest 响应server上,是查看ironic源码得到,如果要自己实现新的模块,往往需要实现对应client端,屏蔽掉直接的url和
繁琐的传入参数,方法,token等等,或者有时候我们会添加自己的client端命令(有些rest api并没有通过client端暴漏出来),看看ironic client是怎么玩儿的,事实上,
就像ironic本身即便采用了pecan的框架,但是和openstack的其他核心模块在调用方式上很类似,ironic client也和其他的client很类似。
ironic client和ironic的service不一样,ironic的service作为wsgi的server或者一个python的线程启动service,是可以用systemctl 启动停止服务的, ironic不一样,
我们查看/usr/bin/ironic(ironicclient的入口),可以发现调用的是ironicclient.shell.main()函数,
在main函数中除了argparser的大量使用,最主要的两句是:
client = iroclient.Client(api_version, endpoint, **kwargs)
args.func(client, args)
其中,client是一个http client,封装了很多http call 相关的方法和参数传递方式,是可以单独拿出来到其他模块使用的,
args.func(client, args)是比较困惑的,翻看代码找到了调用关系如下:
1.main()
2.subcommand_parser = self.get_subcommand_parser(api_version)
3.submodule.enhance_parser(parser, subparsers, self.subcommands)
4. for command_module in COMMAND_MODULES:
utils.define_commands_from_module(subparsers, command_module, cmd_mapper)
其中COMMAND_MODULES包括chassis_shell,node_shell, port_shell,driver_shell
5. define_command(subparsers, command, callback, cmd_mapper)(只添加command module中以“do”开头的方法)
6.subparser.set_defaults(func=callback)
到这里,当我们看到args.func(client, args)时候,对于ironic node-show xxx,命令时便知道是执行了command modules中对应的方法do_node_show(命令参数和名称的转换
在源码中也可以找到),然后调用http的request进行请求并返回响应
- ironic client look into
- Look Into Twitter
- [paper] Look Into Person
- Look Into Person数据集的错误!!
- Look into "A Neural Network in 11 lines of Python"
- 人体解析--Look into Person: Self-supervised Structure-sensitive Learning
- An in-depth look into the ARM virtualization extensions
- look
- look
- 【ironic】ironic 部署
- 【ironic】ironic 命令
- ironic简介
- ironic objects
- ironic pxe
- ironic部署
- ironic简介
- 【ironic】ironic介绍与原理
- 【ironic】ironic / neutron / nova 配置文件
- javascript中的面向对象设计案例
- ArrayList与LinkedList的区别
- 【Android学习之路】Android 入门
- 解决Custom backBarButtonItem 后 interactivePopGestureRecognizer失效的问题
- srand((unsigned)time(NULL));
- ironic client look into
- 子图的分割,子图依据图片中的透明区域自行分割
- UIViewController 透明
- 2的次幂表示 ----递归算法
- android对话框弹出方式动画
- C++ 类中的this指针
- Linux初学者常见问题的解决技巧
- 无需繁琐的解析XML,cocos2d-x 3.x中最简单方便粗暴有效的数据方法-plist
- WebService与SOA的实现