CHANGES¶
更新 TOX_CONSTRAINTS_FILE 以支持 stable/2025.2
更新 .gitreview 以支持 stable/2025.2
4.3.0¶
修复信号查找,仅包含信号
添加全面的后端系统文档
4.2.2¶
撤销“修复 keyword-arg-before-vararg 警告”
不要弃用整个 oslo_service.wsgi 模块
修复 ThreadGroup 接口不一致的问题
4.2.1¶
通过使用公共 shutdown() 方法修复关机期间的崩溃
接受 wait_interval 并支持多次 launch_service() 调用
修复 keyword-arg-before-vararg 警告
修复在使用线程后端时 ServiceBase 的映射
添加 pyproject.toml 以支持 pip 23.1
4.2.0¶
添加使用 cotyledon 和标准线程的线程后端实现
替换 os.popen
删除冗余的 VIRTUAL_ENV 注入
更新 master 以支持 stable/2025.1
4.1.1¶
修复已删除的公共 API
4.1.0¶
将 Eventlet 组件迁移到新的后端系统
在 oslo.service 中引入可配置的后端系统
4.0.0¶
reno: 更新 master 以支持 unmaintained/2023.1
3.6.0¶
添加关于 requirements 下限的说明
运行 pyupgrade 以清理 Python 2 语法
移除对 Python 3.8 的支持
修复过时的 tox minversion
声明对 Python 3.12 的支持
删除 eventlet < 0.27.0 的解决方法
更新 master 以支持 stable/2024.2
3.5.0¶
reno: 更新 master 以支持 unmaintained/zed
移除旧的排除项
更新 sslutils.wrap 以适应较新的 Python
删除已弃用的 ssl 选项
使信号处理顺序可预测
更新 master 以支持 stable/2024.1
reno: 更新 master 以支持 unmaintained/xena
reno: 更新 master 以支持 unmaintained/wallaby
reno: 更新 master 以支持 unmaintained/victoria
3.4.0¶
切换到 coverage 命令
reno: 更新 master 以支持 unmaintained/yoga
pre-commit: 集成 doc8 和 bandit
pre-commit: 升级版本
Bump hacking
更新 setup.cfg 中的 python 分类器
3.3.0¶
更新 master 以支持 stable/2023.2
3.2.0¶
从 Zanata 导入翻译
升级 bandit
撤销“将支持的 python 运行时从版本 3.8 更改为 3.10”
将支持的 python 运行时从版本 3.8 更改为 3.10
更新 master 以支持 stable/2023.1
3.1.1¶
修复与 tox4 相关的问题
3.1.0¶
修复 assertTrue 的错误使用
从 Zanata 导入翻译
添加 Python3 antelope 单元测试
更新 master 以支持 stable/zed
修复子进程中的原生线程
3.0.0¶
从 Zanata 导入翻译
在测试运行时移除对 python3.6/3.7 的支持
添加 Python3 zed 单元测试
更新 master 以支持 stable/yoga
2.8.0¶
使 wsgi 服务器的 debug 选项可配置
2.7.0¶
修复非类对象的 fo() 后门命令
修复 BackOffLoopingCall 错误,使其不具有误导性
添加 Python3 yoga 单元测试
更新 master 以支持 stable/xena
2.6.0¶
setup.cfg: 将破折号替换为下划线
删除对 ‘sys.version_info’ 的引用
将 flake8 移动到 pre-commit 本地目标
添加 Python3 xena 单元测试
更新 master 以支持 stable/wallaby
删除 lower-constraints 残留物
2.5.0¶
从代码中删除 unicode
使用 TOX_CONSTRAINTS_FILE
移除较低约束的测试
删除 EVENTLET_HUB 的自定义实现
使用 TOX_CONSTRAINTS_FILE
将 py3 作为 tox 的默认运行时
使用 TOX_CONSTRAINTS_FILE
添加 Python3 wallaby 单元测试
更新 master 以支持 stable/victoria
添加 pre-commit
2.4.0¶
[目标] 将测试迁移到 ubuntu focal
升级 bandit 版本
2.3.2¶
不要在主模块中导入 “oslo.log”
2.3.1¶
2.3.0¶
修复 wsgi SSL 测试,适用于 python 3 下的 wsgi 模块
重新激活 python 3 下 wsgi 模块中与 socket 选项相关的测试
修复 python 3 下 wsgi 模块中 wsgi/SSL/ipv6 测试
修复 python 3 下 wsgi 模块中的一些 SSL 测试
将 eventlet 的最低版本提高到 0.25.2
修复 pygments 样式
停止使用 __future__ 模块
2.2.0¶
删除 six 的使用
修复 hacking min 版本到 3.0.1
切换到更新的 openstackdocstheme 和 reno 版本
删除未使用的编码风格模块
移除 setup.cfg 中的翻译部分
使测试与 monkey patch 原始 current_thread _active 对齐
删除 monotonic 的使用
使 contributing 文档与 oslo 的策略保持一致
Monkey patch 原始 current_thread _active
将默认 tox env 从 py37 升级到 py38
添加 py38 包元数据
使用 unittest.mock 代替第三方 mock
将发布说明链接添加到文档索引
添加 Python3 victoria 单元测试
更新 master 以支持 stable/ussuri
清理 py27 支持
2.1.1¶
更新 hacking 以支持 Python3
2.1.0¶
更新 eventlet
更新 minversion 参数
移除过时的标题
重述 py27 支持删除的发布说明
2.0.0¶
[ussuri][目标] 移除 python 2.7 的支持和测试
tox: 琐碎的清理
1.41.1¶
添加 ‘is_available’ 函数
tox: 继续进行文档
切换到官方 Ussuri 任务
将测试证书的有效期延长至 2049 年
更新约束 URL
1.41.0¶
更新 master 以支持 stable/train
1.40.2¶
Reno 用于 SIGHUP 修复
1.40.1¶
润色 usage.rst
restart: 在发生突变时,不要在收到 SIGHUP 时停止进程
将与文档相关的模块移动到 doc/requirements.txt
添加 Python 3 Train 单元测试
1.40.0¶
停止使用 pbr 构建文档
使 PID 在后门路径中可用作格式字符串
1.39.0¶
将 Bandit 限制在 1.6.0 以下,并更新 Sphinx 要求
添加在启动服务之前检查 worker 类型
将 git.openstack.org URL 替换为 opendev.org URL
OpenDev 迁移补丁
移除 py35 测试
更新 master 以支持 stable/stein
1.38.0¶
更新 oslo.service 以需要 yappi 1.0 或更高版本
添加 python 3.7 单元测试任务
更新 hacking 版本
1.37.0¶
将 oslo.utils 的较低约束提升到 3.40.2
1.36.0¶
分析 Oslo Service 进程
使用 eventletutils Event 类
避免 eventlet_backdoor 在同一端口上列出
1.35.0¶
使用模板进行较低约束
弃用 ThreadGroup.cancel() API
记录 threadgroup 模块
实际测试子 SIGHUP 信号
在 Python3 中恢复正确的信号处理
为 TG 定时器添加 stop_on_exception
为 ThreadGroup 添加更好的定时器 API
更新 mailinglist 从 dev 到 discuss
在循环调用测试套件中使用 SleepFixture
1.33.0¶
用于模拟 loopingcall wait() 的 fixture
将 monotonic 限制在 py2
1.32.1¶
修复 loopingcall 的停止
使用 eventlet Event 作为 loopingcall 事件
清理 .gitignore 中指向个人工具的引用
始终构建通用 wheel
1.32.0¶
确保在优雅关机测试中连接处于活动状态
停止断言 Eventlet 内部状态
跳过 Windows 上的信号处理
添加 lib-forward-testing-python3 测试任务
添加 python 3.6 单元测试任务
从 project-config 导入 zuul 任务设置
更新 reno 以支持 stable/rocky
1.31.3¶
删除不必要的 pyNN testenv
将 oslo.service 转换为使用 stestr
将发布说明链接添加到 README
修复 oslo.service ProcessLauncher 无法调用 stop
修复 tox python3 覆盖
添加对 requests 的测试依赖
删除 moxstubout
1.31.2¶
[ThreadGroup] 不要停止定时器时删除定时器
使 lower-constraints 任务投票
tox.ini: 在 py35 环境中使用 python3.5
Python 3: 修复 eventlet 在信号后的唤醒
Python 3: 修复非确定性测试
移除过时的 pip-missing-reqs tox 测试
琐碎: 更新 pypi url 到新 url
添加 lower-constraints 任务
将 doc8 测试移动到 pep8 任务
将默认 python 设置为 python3
1.31.1¶
撤销“撤销“允许在睡眠时中止 loopingcall””
1.31.0¶
删除 eventlet 限制
修复证书并跳过失败的测试
1.30.0¶
从 Zanata 导入翻译
从 Zanata 导入翻译
更新 README 中的链接
从 Zanata 导入翻译
从全局需求中更新
更新 reno 以支持 stable/queens
从全局需求中更新
从全局需求中更新
从全局需求中更新
1.29.0¶
在 Python >=3.7 中保持 fork 后的共享内存
从全局需求中更新
撤销“允许在睡眠时中止 loopingcall”
1.28.1¶
1.28.0¶
从 pip install 中删除 -U
避免使用 tox_install.sh 以支持约束
从全局需求中更新
移除从 releasenotes 设置版本/发布
从全局需求中更新
1.27.0¶
从全局需求中更新
将 periodic_task 更改为捕获所有异常,包括 BaseException
修复 bandit 扫描并使其投票
从 Zanata 导入翻译
1.26.0¶
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
从 Zanata 导入翻译
从全局需求中更新
从全局需求中更新
更新 reno 以支持 stable/pike
从全局需求中更新
1.25.0¶
根据文档迁移更新文档中的 URL
1.24.1¶
重新排列现有文档以适应新的标准布局
切换到 oslosphinx 到 openstackdocstheme
1.24.0¶
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
允许在睡眠时中止 loopingcall
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
1.23.0¶
为 BackOffLoopingCall 添加 min_interval
1.22.0¶
从全局需求中更新
从全局需求中更新
1.21.0¶
移除日志翻译
使用 Sphinx 1.5 warning-is-error
修复 docstring 中的一些 reST 字段列表
从全局需求中更新
1.20.0¶
从全局需求中更新
[修复 gate] 更新测试要求
从全局需求中更新
从全局需求中更新
修复快速线程中的竞争条件
pbr.version.VersionInfo 需要包名称(oslo.xyz 而不是 oslo_xyz)
删除重复的 register_opts 调用
更新 reno 以支持 stable/ocata
删除对 Python 3.4 的引用
1.19.0¶
添加 FixedIntervalWithTimeoutLoopingCall
添加 Constraints 支持
在 README 上显示团队和仓库徽章
1.18.0¶
从全局需求中更新
从全局需求中更新
从全局需求中更新
从 Zanata 导入翻译
更新 .coveragerc 在删除相应目录后
删除 python 字节码文件
1.17.0¶
更改主页链接
从全局需求中更新
将 ‘MagicMock’ 替换为 ‘Mock’
启用发布说明翻译
从全局需求中更新
从全局需求中更新
从全局需求中更新
1.16.0¶
从全局需求中更新
在收到双 SIGHUP 时保持存活
1.15.0¶
从全局需求中更新
1.14.0¶
从全局需求中更新
修复 assertEqual 参数的位置错误
1.13.0¶
从全局需求中更新
从全局需求中更新
从全局需求中更新
添加 reno 以进行发布说明管理
从全局需求中更新
1.12.0¶
从 Zanata 导入翻译
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
1.11.0¶
琐碎的:忽略 openstack/common 在 flake8 exclude 列表中
1.10.0¶
[琐碎] 删除 doc/source/conf.py 的可执行权限
1.9.0¶
从全局需求中更新
提供 mutate_config_files
使 _spawn_service 更加灵活
移除对 babel 的直接依赖
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
修复 python3 上 _sd_notify() 的参数类型
为取消计时使用 timeutils.StopWatch
添加取消线程和 ThreadGroups 的能力
异常:message 需要 ‘_’ 函数
修复 Heartbeats 在更改时间时停止
从全局需求中更新
1.7.0¶
从全局需求中更新
更正一些帮助文本
修复帮助文本中的拼写错误
wsgi: 减少池中 greenthreads 的默认数量
从全局需求中更新
1.6.0¶
从全局需求中更新
允许后门从本地 unix 域套接字提供服务
从全局需求中更新
1.5.0¶
在 TestWSGIServerWithSSL 中使用 requests 而不是原始套接字客户端
1.4.0¶
从全局需求中更新
从全局需求中更新
修复拼写错误并重写句子
添加一个更有用/更详细的帧转储函数
从全局需求中更新
更新翻译设置
修复处理信号中的竞争条件
从全局需求中更新
从全局需求中更新
从全局需求中更新
从全局需求中更新
修复人工 service.wait()
1.3.0¶
为 ServiceLauncher 添加优雅关机
修复 CentOS 7 上的测试执行
从全局需求中更新
修复 docstrings 中的一些不一致之处
重构 tests/eventlet_service.py
从全局需求中更新
删除 ServiceLauncher.wait() 方法的参数
修复一些 assert 问题
为 python3 运行 sslutils 和 wsgi 测试
从全局需求中更新
1.2.0¶
从全局需求中更新
修复信号处理程序中的竞争条件
启用 py3 mock.patch of RuntimeError
在每次测试运行之前删除 python 字节码
琐碎: 移除 ‘MANIFEST.in’
1.1.0¶
避免在花费的时间接近零时发出警告
更新 _i18n.py 文件并修复 domain 值
为安全静态分析添加 Bandit 到 tox
ThreadGroup::stop_timers() 的代码重构
1.0.0¶
从全局需求中更新
从全局需求中更新
添加创建 Unix 域 WSGI 服务器的功能
使用 oslo.utils 中的 reflection.get_class_name()
删除 Python 2.6 分类器
删除 openstack-common.conf
清理 tox.ini
将“started child”消息更改为 DEBUG
支持 SSL 协议和密码控制
0.13.0¶
graceful_shutdown_timeout 的默认值设置为 60 秒
从全局需求中更新
将 Logger 名称参数添加到 wsgi.Server 构造函数
避免双重命名混淆
禁止使用 0 或负数 worker 数量启动服务
0.12.0¶
记录 graceful_shutdown_timeout 配置选项
从测试列表中删除 py26 env
添加 graceful_shutdown_timeout 配置选项
从全局需求中更新
为 LoopingCallBase._start() 添加文档字符串
从全局需求中更新
0.11.0¶
从全局需求中更新
将 doc8 添加到 py27 tox env 并修复引发的问题
记录在收到 SIGHUP 时终止子进程
从全局需求中更新
从全局需求中更新
0.10.0¶
RetryDecorator 不应为预期异常记录警告/错误
添加在收到 SIGHUP 时终止子进程
修复覆盖率配置和执行
为 sslutils 添加 register_opts 函数
将公共线程操作例程移动到共享例程
更新日志字符串,以正确指示它正在等待什么
避免删除未停止的定时器条目
在线程完成回调时清理线程
将“历史” -> 移动到发行说明部分
为 sslutils 添加单元测试
扩展 README 并清理 sphinx 文档的介绍
将 shields.io 版本/下载链接/徽章添加到 README.rst
添加配置选项的自动生成文档
将回退循环调用从 IPA 移动到 oslo.service
将 ignore-errors 更改为 ignore_errors
修复 setup.cfg 中的主页值
WSGI 模块已更正
从全局需求中更新
ThreadGroup 的停止未能正确识别当前线程
为 unittest 进行 monkey_patch
0.9.0¶
处理动态循环调用中的边界情况
将循环调用中的 DEBUG 日志更改为 TRACE 级别日志
从全局需求中更新
0.8.0¶
添加了 wsgi 功能
0.7.0¶
从全局需求中更新
更新使用文档的“信号处理”部分
使用 oslo_utils 反射获取 ‘f’ 可调用名称
从全局需求中更新
将 ‘safe_wrapper’ 函数前缀更改为 ‘_safe_wrapper’
设置翻译
在访问 signal.SIGHUP 之前检查是否支持 sighup
使用 contextlib.closing 代替 try … finally: sock.close
避免使用全局 lockutils 信号量集合
从全局需求中更新
0.6.0¶
在文件末尾添加了换行符
添加了 SignalHandler 类
从全局需求中更新
激活 pep8 检查,以确保导入了 _
说明在未传递异常时会发生什么
允许 LoopingCall 在 callee 中出现异常时继续
0.5.0¶
从全局需求中更新
从全局需求中更新
从全局需求中更新
将 oslo_debug_helper 添加到 tox.ini
为 oslo_service.service 模块添加使用文档
0.4.0¶
从全局需求中更新
使用 six.wraps 保存 docstring、名称等
将与后门相关的测试从 test_service 移动
将 mock 添加到 test_requirements
删除 test_eventlet_backdoor 中 mox 的使用
0.3.0¶
从 oslo.vmware 复制 RetryDecorator
增加 systemd 的测试覆盖率
确保我们在测试中设置事件并在定时器上等待
使在本地使用 eventlet 后门更容易
跟踪创建的线程并禁止激活多个启动
0.2.0¶
关于使用 oslo-config-generator 的文档
将 greenlet 添加到 requirements
添加 tox 目标以查找缺少的依赖项
强制执行 H405 检查
强制执行 H301 检查
在将其添加到内部列表后返回定时器
从全局需求中更新
让所有循环调用共享一个公共运行循环
将服务抽象基类检查移动到 launch_service 方法
修复注释中的拼写错误
从全局需求中更新
使用信号名称 -> sigval 和 sigval -> 信号名称映射
0.1.0¶
修复了即时关闭的测试
优雅地关闭 WSGI/RPC 服务器
使用 monotonic.monotonic 和秒表代替 time.time
从全局需求中更新
Eventlet 服务已修复
添加服务模块的文档
提高 loopingcall 模块的测试覆盖率
添加 oslo.service 文档
删除对全局 CONF 的使用
使日志选项值可配置
引入服务抽象基类
添加用于选项发现的入口点
从全局需求中更新
将选项定义移动到私有文件
修复单元测试
修复 pep8
从 oslo-incubator 由 graduate.sh 导出
清理日志以符合指南
将服务移植到 Python 3
测试在信号上关闭 eventlet 服务器
服务子进程正常 SIGTERM 退出
撤销“撤销“撤销 ProcessLauncher 中等待子进程的优化””
撤销“撤销 ProcessLauncher 中等待子进程的优化”
撤销“ProcessLauncher 中等待子进程的优化”
ProcessLauncher:在 SIGHUP 上在父进程中重新加载配置文件
添加对 test__signal_handlers_set 的检查
将 ProcessLauncher 信号处理程序存储在类级别
删除未使用的 validate_ssl_version
更新测试以支持可选的 sslv3
修复了 Python 2.7.9 不支持 ssl.PROTOCOL_SSLv3 的问题
ProcessLauncher 中等待子进程的优化
从 oslo.config 切换到 oslo_config
将 oslo.config 更改为 oslo_config
删除 oslo.log 代码并清理 versionutils API
将 mox 替换为 mox3
允许覆盖周期性任务的名称
将 add_periodic_task 与 metaclass __init__ 分开
升级到 hacking 0.10
删除不必要的 eventlet 导入
在 Service.stop 方法上添加了 graceful 参数
删除日志消息中的额外空格
优先使用延迟的 %r 格式化而不是显式 repr 使用
ServiceRestartTest:使其更具弹性
threadgroup:不要记录 GreenletExit
将 list_opts 添加到所有具有配置选项的模块
删除移至 oslo.i18n 的代码
删除已毕业的测试和 fixtures 库
rpc、notifier:删除已弃用的模块
让 oslotest 管理 mox 的 six.move 设置
删除 readlines() 的使用
允许 test_service 在隔离状态下运行
更改变量延迟的计算
在 loopingcall 中使用时间戳
删除不必要的 setUp 函数
记录循环调用的函数名称
pep8:修复了多个违规行为
使周期性任务以规则间隔运行
使用 oslotest 中的 moxstubout 和 mockpatch
实现 ProcessLauncher 中的 stop 方法
修复 periodic_task 中的括号拼写错误
修复 systemd 中的 docstring 缩进
删除配置选项的冗余 default=None
使未指定的周期性间隔任务以默认间隔运行
使 stop_timers() 方法公开
删除已弃用的 LoopingCall
修复了几个拼写错误
将 graceful 停止函数添加到 ThreadGroup.stop
使用 oslotest 代替 common test 模块
删除重复的“捕获”消息
将通知点移动到更好的位置
删除 cfg 帮助字符串的冗余括号
在 test_periodic 中添加了测试条件
修复了拼写错误 - occured to occurred
在 service 模块中添加了缺失的 _LI 以进行 LOG.info
通知调用进程我们已准备好提供服务
如果 greenlet 线程被杀死,则优雅地回收子进程
改进 sslutils 模块的帮助字符串
删除不必要的 noqa 使用
删除 timeutils.set_time_override 的使用
使用翻译域更新 oslo 日志消息
重构 periodic_task 中不必要的算术运算
重构 periodic_task 中的 if 逻辑
在周期性任务中使用时间戳
添加基本的 Python 3 测试
清除 test_periodic 中的时间覆盖
不要在类属性中共享 periodic_task 实例数据
撤销“服务:将 eventlet 事件替换为线程”
简化启动方法
简单的拼写错误更正
清理未使用的日志相关代码
使用 assertIsNone 和 assertIsNotNone
修复 python 3 兼容性导致的 filter() 使用问题
使用 hacking import_exceptions 获取 gettextutils._
threadgroup:使用线程而不是 greenthread
禁用前台的 SIGHUP 重启行为
服务:将 eventlet 事件替换为线程
允许配置 ProcessLauncher 生存能力检查
使 wait 和 stop 方法适用于所有线程
修复 db 和 periodic_task 模块中的拼写错误
删除 vim 标头
os._exit 在 _start_child 中可能会导致意外异常
调整导入顺序以符合 PEP8 导入规则
为 Thread 添加一个链接方法
使用 multiprocessing.Event 确保服务已启动
为 metaclass 应用 six
删除了对 locals() 的调用
将 service.py 中的注释移动到正确的位置
修复了 Windows 上服务中 SUGHUP 的问题
替换使用 tests.utils part2
将 hacking 升级到 0.7.0
将 tests.utils 的使用替换为 openstack.common.test
重构布尔返回值
在 oslo-incubator 中添加服务重启功能
修复帮助文本的风格问题
启用 hacking H302 检查
将 kombu SSL 版本字符串转换为整数
允许启动器被多次停止
忽略 rpc.cleanup() 中的任何异常
为 Launcher 添加优雅的服务关闭支持
改进当 backdoor_port 为非零时可用性
启用 hacking H404 测试
启用 hacking H402 测试
启用 hacking H401 测试
修复导入顺序问题
将 DynamicLoopCall 定时器添加到 ThreadGroups
将 backdoor_port 传递给正在启动的服务
改进 python3 兼容性
使用 print_function __future__ 导入
改进 Python 3.x 兼容性
导入 nova 的循环调用
从 nova 复制最近的周期性任务更改
修复 IBM 版权字符串
删除测试模块中未使用的导入
将 OpenStack, LLC 更新为 OpenStack Foundation
为 eventlet 后端添加一个列出本机线程的功能
使用 oslo-config-2013.1b3
支持 wsgi.Service 中的 SSL
替换对 testtools BaseTestCase 的直接使用
使用 testtools 作为测试基类
ThreadGroup 删除未使用的名称参数
实现 importutils.try_import
修复 tests.unit.test_service 中的测试用例
不要依赖 os.wait() 阻塞
为 WSGI 请求处理使用 Service 线程组
使项目 pyflakes 清洁
替换 try: import with extras.try_import
不应将 raise_on_error 参数传递给任务函数
考虑任务持续时间在 LoopingCall 延迟中
更新 sphinx 文档
启用 eventlet_backdoor 以返回端口
为 Launcher 使用 ThreadGroup
更改 RPC 清理顺序
threadgroup:greethread.cancel() 应该为 kill()
在不捕获返回值时使用 spawn_n
使 ThreadGroup 派生自 object 以便进行模拟
不要记录 GreenletExit 和 thread_done 的异常
像 ServiceLauncher 一样记录 ProcessLauncher.wait 中的 CONF
清理导入顺序
在 service.py 中添加了缺失的 `cfg` 导入
记录启动时的配置
集成 eventlet 后端
添加 rpc 服务并删除管理器
使用 pep8 v1.3.3
添加 threadgroup 以管理定时器和 greenthreads
添加基本的周期性任务基础设施
添加多进程服务启动器
为服务启动器添加信号处理
基本服务启动基础设施
将 manager.py 和 service.py 移动到 common
将 eventlet_backdoor 从 nova 复制到 common
从 nova 复制 LoopingCall 用于 service.py
初始提交
初始骨架项目