1

我正在为 puppet ( https://github.com/thomasvs/puppet-sentry )开发一个哨兵模块的分支

由于 Sentry 有很多依赖项,与我通常只安装包的方法相反,这个模块使用 virtualenv 和 pip 从 requirements.txt 安装作为选项之一。

此外,在基于 RedHat 的系统上,服务是通过主管而不是普通服务脚本来管理的。

现在,我想添加一种在 requirements.txt 更改时重新启动服务的方法;仅当安装方法为 venv(对于虚拟环境,使用 requirements.txt)且服务方法为主管时,才会发生这种情况。

这意味着我不能在任一类中显式添加通知,因为特定的安装方法应该不知道特定的服务方法,反之亦然。

理想情况下,我希望 sentry::service::supervisor 订阅sentry::install(通常),以便如果sentry::install(特别是 venv)的任何实现发生更改,则服务会重新启动。

作为一个额外的复杂因素,在这种情况下我不能做相反的事情(从 requirements.txt 通知到sentry::server),因为 requirements.txt 的文件资源是在另一个模块的另一个类中声明的,所以我不能添加到它的通知.

4

0 回答 0