Oslo/GraduationStatus
目录
- 1 Oslo Library Graduation Status
- 1.1 cliff
- 1.2 oslo.cache
- 1.3 oslo.client
- 1.4 oslo.concurrency
- 1.5 oslo.config
- 1.6 oslo.context
- 1.7 oslo.crypto
- 1.8 oslo.db
- 1.9 oslo.hooks
- 1.10 oslo.i18n
- 1.11 oslo.image
- 1.12 oslo.io
- 1.13 oslo.log
- 1.14 oslo.messaging
- 1.15 oslo.middleware
- 1.16 oslo.policy
- 1.17 oslo.quota
- 1.18 oslo.reports
- 1.19 oslo.rootwrap
- 1.20 oslo.serialization
- 1.21 oslo.server
- 1.22 oslo.text
- 1.23 oslo.units
- 1.24 oslo.utils
- 1.25 oslo.version
- 1.26 oslo.versionutils
- 1.27 oslo.vmware
- 1.28 pbr
- 1.29 PyCADF
- 1.30 stevedore
- 1.31 taskflow
- 1.32 authutils
- 1.33 cliutils
- 1.34 middleware/context
- 1.35 scheduler
- 1.36 INCUBATOR:funcutils
- 1.37 INCUBATOR:importutils
- 1.38 keystonemiddleware
Oslo Library Graduation Status
cliff
- S: 已发布
cliff
https://launchpad.net/python-cliff
- M: Doug Hellmann <doug.hellmann@dreamhost.com>
- S: 维护中
- F: openstack/cliff 仓库
- 依赖: (无)
oslo.cache
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-cache
cache
- M: Flavio Percoco <flavio@redhat.com>
- M: Morgan Fainberg <m@metacloud.com>
- S: 维护中
- F: cache/
- 依赖: lockutils, timeutils
memorycache
- M
- S: 孤立
- F: memorycache.py
- 依赖: timeutils
oslo.client
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-client
apiclient
- M: Alessio Ababilov <aababilov@griddynamics.com>
- S: 维护中
- F: apiclient/
- 依赖: strutils, importutils
oslo.concurrency
- S: 下一步
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-concurrency
lockutils
- M: Michael Still <mikal@stillhq.com>
- S: 维护中
- F: lockutils.py
- 依赖: oslo.config, fileutils, gettextutils
这看起来现在非常稳定了。我认为没有理由不能将其作为库发布。
ML 的 bnemec 的评论
It would be nice to get lockutils graduated to solve some of the issues mentioned in the oslo.db section, but I believe we do have an outstanding question regarding its behavior without lock_path being set. I think Clint was on board with Sean's proposed solution after quite a bit of discussion (http://lists.openstack.org/pipermail/openstack-dev/2013-December/021620.html), so it's possible we could just restore that patch and call it done, but it should probably be addressed somehow before graduation.
锁路径的问题通过将大部分锁移动到 POSIX IPC 而不是文件锁来解决,除非锁跨服务器。tooz 应该提供更好的解决方案。 - dhellmann
TODO: 通过将 fixture/lockutils.py 移动到 oslo.concurrency 来移除 fixture 对 lockutils 的依赖
TODO: 在毕业之前评估此模块与 tooz 之间的关系。
processutils
- M: Michael Still <mikal@stillhq.com>
- S: 维护中
- F: processutils.py
- 依赖: gettextutils
更改状态为维护中?
需要一些代码清理(greenthreads 和随机睡眠)
oslo.config
- S: 已发布
cfgfilter
- M: Mark McLoughlin <markmc@redhat.com>
- S: 维护中
- F: cfgfilter.py
- 依赖: oslo.config
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-cfgfilter
移动到 oslo.config,从列表中删除? - dhellmann
保留用于过滤
config
- M: Julien Danjou <julien@danjou.info>
- M: Zhongyue Luo <zhongyue.nah@intel.com>
- S: 维护中
- F: config/
- 依赖: oslo.config, gettextutils, importutils
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-config-generator
这远非理想,但这是我们能做的最好的。一些动态注册选项之类的东西存在很多问题,但我不确定我们是否真的能做些什么。
我们将在峰会上讨论这个问题
oslo.config
(已发布库)
- 依赖: (无)
oslo.context
- S: 下一步
context
- M
- S: 孤立
- F: context.py
根据 icehouse 峰会的笔记 (https://etherpad.openstack.org/p/icehouse-oslo-status) 存在一些关于是否应该废弃它的困惑。鉴于我们在 icehouse 晚期遇到的项目没有一致参数的问题,似乎我们想要提供一个基础类,项目可以对其进行子类化,然后自定义以添加数据并在应用程序特定方式中填充常见值。 --doug-hellmann (讨论) 2014年3月11日 (UTC) 17:54
oslo.crypto
crypto
- M: Simo Sorce <simo@redhat.com>
- S: 维护中
- F: crypto/
- 依赖: gettextutils, importutils
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-crypto
KDS 的 REST API 正在 Keystone 开发人员审查后进行略微更改。这将需要对用于从 KDS 获取和票证的 SecureMessage 内部代码进行一些小的更改。
此代码将在 oslo.messaging 和 keystone 中使用 (markmc)
它应该最终位于 oslo.crypto 还是应该成为 Keystone 开发人员维护的库的一部分? - dhellmann
它主要用于 KDS 在存储之前加密密钥,并且在这种容量下,它可以被 swift/cinder 或希望进行加密存储的项目重用。目前它处于较低级别,但可以在重用该模块时添加更简单的接口。 --jamielennox
oslo.db
- S: 已发布
bp: https://blueprints.launchpad.net/oslo/+spec/oslo-db-lib
db
- M: Boris Pavlovic <boris@pavlovic.me>
- M: Roman Podolyaka <rpodolyaka@mirantis.com>
- M: Victor Sergeyev <vsergeyev@mirantis.com>
- S: 维护中
- F: db/
- 依赖: importutils, timeutils, gettextutils
在 API 方面,到目前为止我们一直保持稳定。
值得一提的主要代码更改是
- 使用 [database] 组进行 DB 选项,而不是 [DEFAULT](必须由 oslo.config 弃名|组选项优雅地处理)
- 为唯一约束命名的新约定(这对于向开发人员提供有关完整性错误的详细异常很有用)
- 对 slave 引擎的支持(将 SELECT 查询分发到 slave DB 上的能力 - 这只是稍微扩展了现有的 API)
- 将 Nova 中开发的有用 sqlalchemy 和迁移工具移动到公共代码
在将公共 db 代码成为一个单独的库之前,最好完成这些任务,但它们绝不是阻碍因素
https://blueprints.launchpad.net/oslo/+spec/tests-given-db-backend https://bugs.launchpad.net/oslo/+bug/1224898 https://blueprints.launchpad.net/nova/+spec/db-reconnect
openstack.common.db 应该成为一个单独的库 - oslo.db 我们几个月前做了一个 PoC - (https://review.openstack.org/#/c/42159/) Ironic 测试套件在将 oslo.db 安装为单独的库时通过 (https://github.com/malor/oslo.db)
使 oslo.db 成为一个单独的库的挑战是,公共模块我们使用的(例如 lockutils)可能与 OpenStack 项目中的模块发生冲突,因为它们定义了相同的 oslo.config 选项,但对这些选项的定义不同(例如 oslo.config 引发异常,因为 Ironic 中的 lockutils 版本有一个没有提供帮助字符串的配置选项,而我们用于 oslo.db 的较新版本的 lockutils 确实提供了帮助字符串)
先将 lockutils 从孵化器中移除? - dhellmann
db api 必须清理以删除 eventlet 依赖项才能毕业
需要与 nova 的版本同步
oslo.hooks
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-hooks
hooks
- M: Andrey Kurilin <akurilin@mirantis.com>
- S: 维护中
- F: hooks.py
- 依赖: gettextutils, stevedore
oslo.i18n
- S: 已发布
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-i18n
gettextutils
- M: Mark McLoughlin <markmc@redhat.com>
- S: 维护中
- F: gettextutils.py
- 依赖: (无)
我认为这主要由现在致力于延迟消息翻译的各种人员维护 (markmc)
设定目标是在 J 月期间将此项目从孵化器中移除 - dhellmann
oslo.image
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-image
imageutils
- M: Zhongyue Luo <zhongyue.nah@intel.com>
- S: 维护中
- F: imageutils.py
- 依赖于: gettextutils, strutils
此模块刚刚添加。下一步是添加 Nova 和 Cinder 中使用的常见图像操作辅助函数。
oslo.io
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-io
fileutils
- M: Zhongyue Luo <zhongyue.nah@intel.com>
- S: 维护中
- F: fileutils.py
- 依赖于: excutils, gettextutils
函数签名仍在进行更改,以满足编写测试脚本时进行模拟的需求。还需要一两个周期。
oslo.log
- S: 下一步
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-log
注意:由于我们假设会更新其他模块以直接使用 python 的 logging,如以下描述和 oslo.log 毕业蓝图中所述,因此已从其他模块中删除了此库的依赖项。
local
- M
- S: 孤立
- F: local.py
- 依赖: (无)
此模块仅用于管理 logging 上下文对象的线程局部变量,我们可能希望将其设为 logging 包的私有实现细节。但是,oslo.messaging.localcontext 中使用了类似的东西,如果那里的意图是确保上下文可用于 logging,那么需要使这两个模块协同工作。请参阅 https://review.openstack.org/#/c/110070/ --doug-hellmann (talk) 16:28, 5 August 2014 (UTC)
log
- M
- S: 孤立
- F: log.py
- 依赖于: oslo.config, gettextutils, importutils, jsonutils, local, context
flaper87: 同意!
TODO:更改 publish_errors 配置选项的处理方式,这样 log_handler 模块就不会使用 importutils 导入,因为该模块正在迁移到 oslo.messaging,我们不希望出现循环依赖。
TODO:安装格式化程序以进行翻译,但不要要求每个人都使用 ContextAdapter,以便我们可以删除其他库对该库的依赖项。
log_handler 模块已经迁移到 oslo.messaging,但我没有看到配置选项。我们需要更改 log.py 以从新库导入该模块,或者想出一个更通用的方法来让事物连接到 logging 设置阶段。 --doug-hellmann (talk) 22:21, 6 March 2014 (UTC)
2014 年 10 月 24 日 - dhellmann - logging 代码将定义一个 API,用于上下文类以支持提供 logging 数据以供上下文使用。我们还需要一些东西来将上下文提供给 log,要么是在创建上下文时调用回调,要么是公开一个 API 以显式请求上下文。
oslo.messaging
- S: 已发布
oslo.messaging
- M: Mark McLoughlin <markmc@redhat.com>
- S: 维护中
- F: (已发布库)
- 依赖于: excutils, gettextutils, importutils, jsonutils, network_utils, sslutils, timeutils
log_handler
- M
- S: 孤立
- F: log.py
- 依赖于: oslo.config, notifier
notifier
- M: Julien Danjou <julien@danjou.info>
- S: 维护中
- F: notifier/
- F: middleware/notifier.py
- 依赖于: context, gettextutils, importutils, jsonutils, timeutils, rpc
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-notifier-middleware
将在 oslo.messaging 中,并在 icehouse 中从孵化器中移除 (markmc) https://docs.openstack.org/developer/oslo.messaging/notifier.html
rpc
- M: Mark McLoughlin <markmc@redhat.com>
- M: Russell Bryant <rbryant@redhat.com>
- S: 维护中
- F: rpc/
- 依赖于: gettextutils, excutils, importutils, jsonutils, local, network_utils, rpc, service, sslutils, versionutils
bp: https://blueprints.launchpad.net/oslo/+spec/remove-rpc-from-incubator
将在 Icehouse 中将项目从这里迁移到 oslo.messaging,以便可以将其移除 (markmc)
zmq
- M: Mike Wilson <geekinutah@gmail.com>
- M: Paul Mathews <pmathews@bluehost.com>
- S: 维护中
- F: rpc/impl_zmq.py
- F: rpc/matchmaker*.py
- F: rpc/zmq_receiver.py
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-zmq-driver
正在迁移到 oslo.messaging (markmc)
oslo.middleware
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-middleware
middleware
- M
- S: 孤立
- F: middleware/
- 依赖于: gettextutils, context, notifier
oslo.policy
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-policy
Keystone 团队也对拥有策略管理代码感兴趣。- dhellmann,2014 年 7 月 7 日
policy
- M: Flavio Percoco <flavio@redhat.com>
- M: Adam Young <ayoung@redhat.com>
- S: 维护中
- F: policy.py
- 依赖于: fileutils, gettextutils, jsonutils, oslo.config
我们可以消除对 oslo.config 的依赖。
(Agreed on the stability of policy.py)
oslo.quota
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-quota
quota
- M: Sergey Skripnick <sskripnick@mirantis.com>
- S: 维护中
- F: quota.py
- 依赖于: gettextutils, importutils, timeutils
此文件是从 nova 和 cinder 合并而来,但尚未在任何项目中被使用。
等待查看将其合并回 nova 和 cinder 的效果?--doug-hellmann (talk) 23:09, 6 March 2014 (UTC)
oslo.reports
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-reports
reports
- M: Solly Ross <sross@redhat.com>
- S: 维护中
- F: report/
- 依赖于: jsonutils
这个在哪里被使用?- dhellmann
我们计划使用该模式和部分代码用于 Ceilometer 报告。看起来大部分现有内容都非常特定于 Guru Mediation Report。链接:https://wiki.openstack.org/wiki/OutreachProgramForWomen/Ideas#Reporting_Framework_for_Ceilometer_based_on_Oslo_Reporting - thomasem
oslo.rootwrap
- S: 已发布
bp: https://blueprints.launchpad.net/oslo/+spec/standalone-rootwrap
rootwrap
- M: Thierry Carrez <thierry@openstack.org>
- S: 维护中
- F: (已发布)
- 依赖: (无)
在 Icehouse 周期中作为 oslo.rootwrap 独立库毕业。
oslo.serialization
- S: 已发布
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-serialization
jsonutils
- M
- S: 孤立
- F: jsonutils.py
- 依赖于: gettextutils, importutils, timeutils
xmlutils
- M
- S: 孤立
- F: xmlutils.py
- 依赖: (无)
这是一个安全修复。我们现在可以依赖我们的依赖项具有此修复吗?- dhellmann
oslo.server
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-server
eventlet_backdoor
- M
- S: 孤立
- F: eventlet_backdoor.py
- 依赖: gettextutils
最终应将其放入 service 库中(将孵化器中的内容移动到 service 内容中)
loopingcall
- M
- S: 孤立
- F: loopingcall.py
- 依赖于: gettextutils, timeutils
periodic_task
- M: Michael Still <mikal@stillhq.com>
- S: 维护中
- F: periodic_task.py
- 依赖于: gettextutils, timeutils
这个看起来也很稳定。
requestutils
M: Sandy Walsh <sandy.walsh@rackspace.com> S: Maintained F: request_utils.py
- 依赖: gettextutils
service
- M: Michael Still <mikal@stillhq.com>
- S: 维护中
- F: service.py
- 依赖于: eventlet_backdoor, gettextutils, importutils, threadgroup
sslutils
- M
- S: 孤立
- F: sslutils.py
- 依赖: gettextutils
threadgroup
- M
- S: 孤立
- F: threadgroup.py
- 依赖于: loopingcall
fixture
- M: Monty Taylor <mordred@inaugust.com>
- S: 维护中
- F: fixture/
- 依赖: (无)
TODO:通过将 fixture/lockutils.py 移动到 oslo.concurrency 来删除对 lockutils 的依赖。
TODO:通过将 fixture/config.py 移动到 oslo.config 来删除对 oslo.config 的依赖。
test
- M
- S: 孤立
- F: test.py
- 依赖: (无)
oslo.text
- S: 下一步
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-text
oslo.units
units
- M
- S: 孤立
- F: units.py
- 依赖: (无)
oslo.utils
- S: 已发布
bp: https://blueprints.launchpad.net/oslo/+spec/graduate-oslo-utils
excutils
M: S: Orphan F: excutils.py
- 依赖: gettextutils
除了它对我们的 gettextutils 的使用之外,它可以被提取到一个单独的库中,而无需使用 oslo 名称。- dhellmann
可以我们使用标准库吗?应该删除翻译吗?(2 条消息)
寻找其他地方的类似代码
贡献给标准库?
- 如果将其放入自己的库中,我们如何处理日志消息的翻译?
network_utils
- M
- S: 孤立
- F: network_utils.py
- 依赖: (无)
我正在尝试将这些内容放入标准库,请参阅 http://bugs.python.org/issue18191 -- jd
不会毕业?
strutils
- M: Flavio Percoco <flavio@redhat.com>
- S: 维护中
- F: strutils.py
- 依赖: gettextutils
我认为 strutils 足够稳定了,但是,我想
1) Find a common place for this and other modules. I don't think it is worth having oslo.strutils. We once talk about having oslo.text and group strutils and other modules there. 2) Make sure it's PY3K support. Even though python 3 support is not an OS requirement, this module should be fairly simple to port and we could have a voting PY3K gate for it.
也许应该保留编码/解码函数。to_slug() 在客户端中使用,也许可以将其移动到孵化器的客户端部分?我想用另一个库替换单位解析代码,如果我们能找到一个合适的库。Pint 不支持 python 2.6,但除此之外就可以了。- dhellmann
timeutils
- M: Zhongyue Luo <zhongyue.nah@intel.com>
- S: 维护中
- F: timeutils.py
- 依赖: (无)
timeutils 的问题是代码与测试共存。例如,IMO set_time_override 应该被删除,并使用 mock 或 fixture 来替换其功能。
这里的绝大多数函数都只适用于测试吗?解析和格式化函数可能很有用,以确保时间戳格式一致。
uuidutils
- M: Zhongyue Luo <zhongyue.nah@intel.com>
- S: 维护中
- F: uuidutils.py
- 依赖: (无)
此模块是稳定的。
生成 UUID 字符串似乎微不足道,不需要一个函数。WSME 正在努力在 API 层验证 UUID 字符串。验证代码是否在其他地方使用?- dhellmann
nova 在所有地方都使用它来检查字符串是否为 uuid;我们可以将该函数移动到 nova 并弃用/删除此模块吗?
neutron 也使用相同的函数
oslo.version
- S: 已发布
oslo.version
- M
- S: 孤立
- F
- 依赖: (无)
从 pkg_resources 中获取版本的实用程序。
oslo.versionutils
应该将其移动到 oslo.version 吗?不,这将为 oslo.version 添加额外的依赖项,使其在安装脚本中使用更加困难。- dhellmann
versionutils
- M
- S: 孤立
- F: versionutils.py
- 依赖: gettextutils
TODO:通过将弃用 logging 函数从 log 移动到 versionutils 来打破 versionutils 和 log 之间的循环依赖。
oslo.vmware
- S: 已发布
oslo.vmware
- M: Davanum Srinivas <davanum@gmail.com>
- S: 维护中
- F: openstack/oslo.vmware 仓库
- 依赖于: gettextutils, importutils, jsonutils, loopingcall, timeutils
pbr
- S: 已发布
pbr
- M: Monty Taylor <mordred@inaugust.com>
- S: 维护中
PyCADF
- S: 已发布
pycadf
- M: Gordon Chung <chungg@ca.ibm.com>
- S: 维护中
- F: openstack/pycadf 仓库
- 依赖于: oslo.messaging, oslo.config
pycadf 中的审计中间件依赖于 oslo.messaging。
另请参阅 oslo-incubator 中的 middleware/audit.py。
stevedore
- S: 已发布
stevedore
https://launchpad.net/python-stevedore
- M: Doug Hellmann <doug.hellmann@dreamhost.com>
- S: 维护中
- F: openstack/stevedore 仓库
- 依赖: (无)
taskflow
- S: 已发布
taskflow
https://launchpad.net/taskflow
- M: Joshua Harlow <harlowja@yahoo-inc.com>
- S: 维护中
- F: openstack/taskflow 仓库
- 依赖于: gettextutils, stevedore, excutils, importutils, jsonutils, timeutils, uuidutils
authutils
- S: 删除
authutils
- M
- S: 孤立
- F: authutils.py
我没有在 openstack/* 下的测试中找到此模块的用户。它显然是由 russelb 从 keystone 引入的 - dhellmann
修复了使用常量时间字符串比较中的漏洞
由 https://review.openstack.org/6221 添加
请参阅 https://bugs.launchpad.net/keystone/+bug/942644
Nova 拥有自己的 auth 代码时,strcmp_const_time() 在 Nova 中被 https://review.openstack.org/9579 移除
Swift 也使用它 (https://review.openstack.org/4643) 但 swift 讨厌 Oslo,所以....
swift/common/utils.py:1866:def streq_const_time(s1, s2)
结论:只有 keystone 需要这个,所以我们可以将其从 oslo-incubator 中移除
cliutils
- S: 删除
cliutils
- M
- S: 孤立
- F: cliutils.py
- 忽略依赖于: apiclient, gettextutils, importutils, strutils, uuidutils
如果它们仍然需要,这些函数应该移动到 python-openstackclient 项目中。- dhellmann
middleware/context
- S: 删除
middleware/context
- M
- S: 已过时
- F: context.py
- F: middleware/context.py
弃用?删除?
删除,但查看 notifier 代码和 logging -- 以及 nova 中试图重新基于此的评论?
用于 context 中间件 (markmc 说删除) 和 rpc (被 oslo.messaging 废弃)
scheduler
- S: 删除
scheduler
- M
- S: 孤立
- F: scheduler/
boris-42:我们应该摆脱它。有一种方法可以构建可扩展的单个调度器作为服务。并解决许多当前问题。
INCUBATOR:funcutils
funcutils
- M: Joshua Harlow <harlowja@yahoo-inc.com>
- S: 维护中
- F: funcutils.py
- 依赖: (无)
2014 年 6 月 3 日 - 留在孵化器中,直到不再需要 2.6 支持。-- dhellmann
https://etherpad.openstack.org/p/juno-oslo-release-plan
INCUBATOR:importutils
importutils
- M
- S: 孤立
- F: importutils.py
- 依赖: (无)
弃用被 stevedore 和 pkg_resources 替换的函数?try_import() 函数看起来很简单,我们需要它吗?- dhellmann
2014 年 6 月 3 日 -- 留在孵化器中,直到每个人都迁移到 stevedore。-- dhellmann
keystonemiddleware
keystonemiddleware 库将由 Keystone 团队拥有,此处仅列出是为了反映审计中间件库的新位置。
audit
- M: Gordon Chung <chungg@ca.ibm.com>
- S: 维护中
- F: middleware/audit.py
- 依赖: (无)
此中间件相对轻量级,因为它利用 notifier 中间件来处理大部分操作...除此之外,它只使用 pycadf 库来追加审计信息。目前正在改进 pycadf 库...我们计划扩展其功能,但总体模型相对稳定。(参考:https://launchpad.net/pycadf)
pycadf 中的审计中间件拥有 notifier 中间件的副本。这需要更改为使用 oslo.messaging 中的那个。--doug-hellmann (talk) 22:31, 6 March 2014 (UTC)