GSoC2014/Student/Masaru
目录
- 1 Massa 的提案
- 1.1 摘要
- 1.2 您的电子邮件地址和 IRC 昵称是什么?
- 1.3 您的网页、博客或微博是什么?
- 1.4 您的学术背景是什么?
- 1.5 您提议的项目可能的导师是谁?
- 1.6 您的提案的最终目标是什么?
- 1.7 您提议的工作将修改或创建哪些组件/模块?
- 1.8 您提议的工作对 OpenStack 及其社区有什么好处?
- 1.9 为什么您是从事这个项目的合适人选?
- 1.10 您计划如何完成您的项目?
- 1.11 请提供一个带有日期和重要里程碑/交付成果的计划表(最好以两周为增量)。
- 1.12 项目进行两个月后,您将展示什么?
- 1.13 您作为用户和贡献者在开源世界中的过去经验是什么?
- 1.14 请包含与您的提案相关的 bug/功能的评审链接。
- 1.15 如果可用,请包含您为 OpenStack 或其他开源项目编写的任何其他代码的链接。
- 1.16 您之前从事过哪些其他相关项目,以及您从这些项目中获得了哪些知识?
- 1.17 在 5 月 19 日至 8 月 18 日期间,您还有其他时间承诺,例如学业、另一份工作、计划的假期等吗?
- 1.18 请添加您在 OpenStack GSoC wiki 上的项目和个人详细信息页面的链接。
Massa 的提案
摘要
软件组件被正确地划分为模块,以便开发人员可以轻松地维护和重用它们,而无需不必要的成本。目前,一些使用 VMware API 的 OpenStack 模块存在某种程度的重复,并且没有利用共享库。在这个项目中,我想更新一个当前的共享库,名为 oslo.vmware,以便该库被 OpenStack 中的模块使用和共享。
您的电子邮件地址和 IRC 昵称是什么?
电子邮件:massa.nomura@gmail.com
IRC : massa [freenode]
您的网页、博客或微博是什么?
我目前没有网页。
您的学术背景是什么?
我在英国伦敦帝国理工学院攻读分布式系统硕士学位。
在本学年,我学习了以下模块
- 高级计算机体系结构
- 高级数据库
- 网络安全
- 分布式系统
- 分布式算法
- 普适计算
- Prolog
- 运筹学
- 个人项目 : 使用 pi-calculus 的并发模型
- 最终论文 : 使用 C++ 中的 MPI 进行超图划分
您提议的项目可能的导师是谁?
- 导师 : Arnaud Legendre 先生 (arnaud)
- 电子邮件 : alegendre@vmware.com
您的提案的最终目标是什么?
该项目的主要目标分为三个部分
- 实现 oslo.vmware 中缺失的功能[*1]
- 使用 pyvmomi 重新实现现有功能[*2]
- 为添加到共享库的方法创建单元测试
[*1]oslo.vmware:在 OpenStack 环境中构建的库,旨在成为其他使用 VMware 的 OpenStack 项目的基础构建块。目前,oslo.vmware 中的某些功能与 pyvmomi 中已有的功能重叠。
[*2]pyvmomi:开源且通用的库,用于在 OpenStack 环境之外使用 vCenter/ESX API。
您提议的工作将修改或创建哪些组件/模块?
oslo.vmware(可能包括 Glance、Cinder 和 Nova,以便它们使用 API 中的新功能)
您提议的工作对 OpenStack 及其社区有什么好处?
该项目带来了两个好处
- 通过引入适当的共享库,我们可以删除 Glance、Cinder 和 Nova 等模块中的重复代码,这些模块是 API 的使用者。
- 通过提供使用 pyvmomi 的共享库,我们可以帮助开发人员,因为他们只需要维护共享 API 库来处理即将到来的更新。
为什么您是从事这个项目的合适人选?
我认为我适合承担这个项目有两个原因。首先,作为一名开源开发者,人们不仅需要技术技能,还需要社区内的沟通技能,以便我们可以让事情变得更好。我认为我可以在社区中承担这部分工作,因为我在准备 GSoC 2014 的过程中做了一些非技术性的工作。其次,我已经掌握了操作系统和虚拟化应用程序的基础知识,这有助于我进行这个项目并与 Arnaud 轻松协作。因此,我认为我是从事这个项目的合适人选。
您计划如何完成您的项目?
我们项目的目标是改进基于 oslo.vmware 的 VMware API 共享库,并将其提供给每个模块。因此,我们希望降低维护成本并提高对 VMware 即将到来的更新的适应性。为了实现这一点,我将
- 实现 oslo.vmware 中缺失的功能
- 在 OpenStack 中,已经存在一个共享库 oslo.vmware,它实现了 VMware API 的功能,使我们能够与 vCenter 通信。但是,oslo.vmware 还没有配备所有必要的功能。在这个项目中,我想将负责虚拟机磁盘 (vmdk) 和开放虚拟化格式 (ovf) 的功能添加到现有的库中。例如,我们需要添加一个功能来验证校验和、大小、磁盘数量等。为此,我想从 vmdk 和 ovf 的内省开始。我还计划将 Nova 中现有的功能移植到 oslo.vmware。
- 使用 pyvmomi 重新实现现有功能
- 为了使模块易于维护和稳定,我们可以利用 pyvmomi,避免重复造轮子,并替换 oslo.vmware 中实现的一些现有功能。例如,oslo.vmware 中的 vim.py,它负责创建 SOAP 调用,可以用 pyvmomi 中定义的 API 替换。
- 为共享库中的新功能创建单元测试
- 这将在上述两个任务进展的基础上完成。其目的是
- 确保 oslo.vmware 中的现有实现可以与新库一起使用。
- 确保添加到共享库的新功能可以被每个模块安全地使用。
请提供一个带有日期和重要里程碑/交付成果的计划表(最好以两周为增量)。
我计划按以下方式进行项目
5 月 19 日至 6 月 1 日(2 周)
- ovf 的内省
- vmdk 的内省
- 再次检查最新的 pyvmomi 功能
6 月 2 日至 6 月 22 日(3 周)
- 实现 ovf 和 vmdk 验证(校验和、大小、磁盘数量等)
- 为该功能创建单元测试
6 月 23 日至 7 月 13 日(3 周)
- 将 Nova 中现有的功能移植到 oslo.vmware
- 为该功能创建单元测试
7 月 14 日至 8 月 10 日(4 周)
- 开始使用 pyvmomi 重新实现现有功能
- 为替换创建单元测试
8 月 11 日至 8 月 18 日(1 周)
- 完成项目,检查我们将开发的所有模块
该项目的里程碑是提供 oslo.vmware 中缺失的功能。因此,我将花时间实现新功能,以便它们以后不会对共享库产生负面影响。完成缺失的部分后,我将使用 pyvmomi 替换现有代码。即使我声明稍后会执行此任务,如果每个阶段有剩余时间,我也可以在并行执行此任务。
项目进行两个月后,您将展示什么?
- 添加到 oslo.vmware 的功能集
- 使用 pyvmomi 的新实现
- 使用这两者进行的测试套件
您作为用户和贡献者在开源世界中的过去经验是什么?
- 作为用户,我经常喜欢玩应用程序,例如编程语言和虚拟化软件,以测试我从讲座中学到的理解。
- 作为贡献者,去年夏天我在 Clear Code 实习期间为 Ruby 参考手册(又名 Rurema – るりま)做出了贡献,该公司基于开源开发的产品。在社区中一位维护者的帮助下,我添加和修改了一些参考手册。
・添加单元测试方法“test_download_flat_image” https://review.openstack.org/#/c/81263/
如果可用,请包含您为 OpenStack 或其他开源项目编写的任何其他代码的链接。
(现在不可用...)
您之前从事过哪些其他相关项目,以及您从这些项目中获得了哪些知识?
我没有从事过与这个项目相关的任何项目。
在 5 月 19 日至 8 月 18 日期间,您还有其他时间承诺,例如学业、另一份工作、计划的假期等吗?
我将完成我的论文,并且必须在 9 月 5 日之前完成。我不能花一整天的时间编码或规划新的 API 设计。但我确信我可以每天花至少 3 到 4 个小时,或者每周花 20 到 30 个小时。基于此,我假设每个阶段的平均时间为 75 小时。
请添加您在 OpenStack GSoC wiki 上的项目和个人详细信息页面的链接。
- 项目页面
https://wiki.openstack.org/wiki/GSoC2014/Incubator/SharedLib
- 个人页面