跨不同的服务/安装实现通知/订阅

时间:2013-05-27 16:24:50

标签: pip virtualenv puppet

我正在为木偶(https://github.com/thomasvs/puppet-sentry

制作一个哨兵模块的叉子

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

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

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

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

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

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

0 个答案:

没有答案