跳转到: 导航, 搜索

Oslo/GraduationStatus

目录

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

这远非理想,但这是我们能做的最好的。一些动态注册选项之类的东西存在很多问题,但我不确定我们是否真的能做些什么。

我们将在峰会上讨论这个问题

  1. http://summit.openstack.org/cfp/details/258
  2. http://summit.openstack.org/cfp/details/125

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 条消息)

寻找其他地方的类似代码

贡献给标准库?

  1. 如果将其放入自己的库中,我们如何处理日志消息的翻译?

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

https://launchpad.net/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)