毕业报告

https://blueprints.launchpad.net/oslo-incubator/+spec/graduate-oslo-reports

目前,reports 模块提供了一种便捷的方式来汇编关于给定 OpenStack 进程当前状态的“Guru Meditation Reports”(大师冥想报告)。基本报告包括线程(包括普通线程和绿色线程)状态和堆栈跟踪,以及配置和版本信息。报告是可定制的,并且可以根据每个进程或每个项目进行扩展,添加额外的部分。该机制还包括设置报告在 SIGUSR1 信号发生时转储到标准输出(或文件),并且可以序列化为文本(默认),以及 XML 和 JSON 格式。

库名称

该库将被命名为“oslo.reports”。当前在孵化器中的名称是“openstack.common.report”,但将名称复数化似乎更自然。

内容

openstack/common/report/report.py openstack/common/report/utils.py openstack/common/report/guru_meditation_report.py openstack/common/report/__init__.py openstack/common/report/views/__init__.py openstack/common/report/views/text/__init__.py openstack/common/report/views/text/generic.py openstack/common/report/views/text/threading.py openstack/common/report/views/text/header.py openstack/common/report/views/xml/__init__.py openstack/common/report/views/xml/generic.py openstack/common/report/views/jinja_view.py openstack/common/report/views/json/__init__.py openstack/common/report/views/json/generic.py openstack/common/report/generators/conf.py openstack/common/report/generators/__init__.py openstack/common/report/generators/version.py openstack/common/report/generators/threading.py openstack/common/report/models/base.py openstack/common/report/models/conf.py openstack/common/report/models/__init__.py openstack/common/report/models/version.py openstack/common/report/models/with_default_views.py openstack/common/report/models/threading.py

tests/unit/reports/test_base_report.py tests/unit/reports/test_guru_meditation_report.py tests/unit/reports/test_openstack_generators.py tests/unit/reports/test_views.py

早期采用者

公共 API

reports 模块包含几个公共子模块

reports.guru_meditation_report

包含围绕设置信号处理程序和注册持久自定义部分的代码

reports.report

包含报告本身的基本类,包括一个用于整个报告的类、一个用于每个部分的类,以及一个专门用于序列化为文本的报告的子类

reports.generators

包含包含生成器代码的子模块:confthreadingversion(请注意,这里没有 base 模块,因为生成器只是可调用对象)

reports.models

包含包含基本模型类(basewith_default_views)以及实现模型类(threadingversionconf)的子模块

report.views

包含包含基于 Jinja 的基本视图(jinja_view)的子模块,以及 JSON、XML 和文本视图(分别为 jsonxmltext)。请注意,每个序列化格式子模块都包含一个 generic 子模块,其中包含通用类,并且 text 子模块还包含 header 子模块(以及 threading 子模块,该子模块可能被设为私有)。

以下子模块不一定需要是公共的

reports.utils

包含一个用于将属性附加到字符串的实用程序类,以及一个使用垃圾回收器功能查找特定类所有对象的函数。这些都不需要作为公共接口暴露,并且查找对象的函数可以移动到使用它的生成器的文件中(StringWithAttrs 同时被 reports.views.xml.genericreports.views.json.generic 使用),因此它需要保留在自己的文件中。

reports.views.text.threading

这包含几个特定于某些模型(这些模型已经将它们设置为默认文本视图)的视图,因此不需要是公共的。

实现

负责人

主要负责人

sross-7

其他贡献者

主要维护者

主要维护者

sross-7

其他贡献者

安全联系人

安全联系人

sross-7

里程碑

完成目标里程碑:未知

工作项

应完成毕业检查清单。

此外,在 reports 当前使用 str 而应使用 six.text_type 的几个地方。在完成毕业之前应修复这些问题。

采用说明

依赖项

  • oslo.utils

  • oslo.serialization

参考资料

注意

本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode