openstack glance 上传镜像
来源:互联网 发布:vb的picturebox属性 编辑:程序博客网 时间:2024/04/29 18:46
openstack glance 上传镜像
glance是openstack中提供镜像服务的子项目,本文主要介绍glance上传镜像的过程。
glance服务包含glance-api和glance-registry两个服务。
glance-api负责接收和处理请求,并存储镜像。
glance-registry负责保存镜像的元信息。
glance 镜像的上传操作,涉及到client端和服务端,本文将分别对其做详细的介绍:
client端:
上传镜像的命令:
openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public
上面的命令中openstack是一个客户端可执行程序,image是指操作的资源,create表示对资源执行的操作,即创建一个image,–file指定本地要本上传的镜像,–disk-format指定image磁盘格式,–container-format指定image容器的格式,–public表示该镜像可以本公共访问。
openstack的源码如下:
[root@console-mitaka ~]# which openstack /usr/bin/openstack[root@console-mitaka ~]# vim /usr/bin/openstackimport sysfrom openstackclient.shell import mainif __name__ == "__main__": sys.exit(main())
从上面的代码可以看出,client的核心代码在模块openstackclient.shell的main方法中。
class OpenStackShell:... def run(self, argv): ret_val = 1 #将参数赋值给属性command_options self.command_options = argv try: #执行父类的run() 方法 ret_val = super(OpenStackShell, self).run(argv) return ret_val except Exception as e: if not logging.getLogger('').handlers: logging.basicConfig() if self.dump_stack_trace: self.log.error(traceback.format_exc()) else: self.log.error('Exception raised: ' + str(e)) return ret_val finally: self.log.info("END return value: %s", ret_val)def main(argv=sys.argv[1:]):#sys.argv[1:]中是命令行中除可执行程序外的参数部分。 return OpenStackShell().run(argv)
有上述代码可知,调用了OpenStackShell父类的run方法:
类OpenStackShell继承与cliff.app.App类:
下面是App中run方法的主要代码:
1.解析参入的参数,配置log
2.执行子命令。
def run(self, argv): try: #解析传入的参数,配置log self.options, remainder = self.parser.parse_known_args(argv) self.configure_logging() self.interactive_mode = not remainder ... #执行子命令。 result = self.run_subcommand(remainder) return result
执行子命令部分代码:
def run_subcommand(self, argv):... subcommand = self.command_manager.find_command(argv) ... cmd_factory, cmd_name, sub_argv = subcommand... cmd = cmd_factory(self, self.options, **kwargs)... self.prepare_to_run_command(cmd) full_name = (cmd_name if self.interactive_mode else ' '.join([self.NAME, cmd_name]) ) cmd_parser = cmd.get_parser(full_name) parsed_args = cmd_parser.parse_args(sub_argv) result = cmd.run(parsed_args)... return result
0 0
- openstack glance 上传镜像
- Openstack liberty Glance上传镜像源码分析
- glance 上传镜像流程
- glance上传镜像命令
- OpenStack 镜像服务Glance [三]
- openstack镜像服务(glance)
- Openstack之glance镜像组件介绍
- openstack+xen,使用glance命令镜像的下载和上传
- openstack+xen环境使用glance命令下载和上传镜像
- openstack+kvm环境使用glance命令下载和上传镜像
- 云计算--OpenStack中glance上传镜像出现500 Internal Server Error
- openstack上传镜像
- Openstack上传镜像
- openstack Glance的镜像缓存机制介绍
- openstack学习笔记 --- glance 客户端管理镜像image
- Openstack 命令行管理之glance镜像服务
- Openstack API管理之glance镜像服务
- OpenStack for Glance镜像和实例目录解析
- 微信开发第一篇之自定义菜单
- Qt5.6跨平台问题
- 判断cpu是大小端
- Mybatis Generator最完整配置详解
- PECL的安装和使用
- openstack glance 上传镜像
- CAP理论
- phpcms文章点击量统计学习教程
- 坚持#第11天~有收获啊
- android4.4 fence机制分析
- 践行微服务理念
- linux安装jdk环境
- 带header的RecyclerView
- POJ 3172 Scales