我正在为木偶(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的文件资源是在另一个模块的另一个类中声明的,所以我无法添加到其通知。