diff --git a/README.md b/README.md index b617d7a..1d033f3 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,19 @@ Attributes 'serialrestart'=> 'supervisorserialrestart.controllerplugin:make_serialrestart_controllerplugin' }) ``` +- `node['supervisor']['rpcplugins']` - entries for `rpcinterface` extensions. + For instance, to install [twiddler](https://pypi.python.org/pypi/supervisor-twiddler), you'd manually add this to your config: + + ```text + [rpcinterface:twiddler] + supervisor.rpcinterface_factory = supervisor_twiddler.rpcinterface:make_twiddler_rpcinterface + ``` + Which can be achieved using + ```ruby + node.default['supervisor']['rpcplugins'] = ({ + 'twiddler'=> 'supervisor_twiddler.rpcinterface:make_twiddler_rpcinterface' + }) + ``` Resources/Providers diff --git a/attributes/default.rb b/attributes/default.rb index 57947f1..aa766c1 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -39,3 +39,4 @@ default['supervisor']['nocleanup'] = false default['supervisor']['socket_file'] = '/var/run/supervisor.sock' default['supervisor']['ctlplugins'] = {} +default['supervisor']['rpcplugins'] = {} diff --git a/recipes/default.rb b/recipes/default.rb index b2df96f..5fbafcc 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -31,6 +31,13 @@ version node['supervisor']['version'] if node['supervisor']['version'] end +# If rpcplugins are presented, try to install them +node['supervisor']['rpcplugins'].each_key do |k| + python_pip "supervisor_#{k}" do + action :upgrade + end +end + directory node['supervisor']['dir'] do owner "root" group "root" diff --git a/templates/default/supervisord.conf.erb b/templates/default/supervisord.conf.erb index 80457b7..5dbb0d3 100644 --- a/templates/default/supervisord.conf.erb +++ b/templates/default/supervisord.conf.erb @@ -41,6 +41,13 @@ nocleanup=<%= @supervisord_nocleanup %> [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface +<% @node['supervisor']['rpcplugins'] && @node['supervisor']['rpcplugins'].each do |k,v| %> + +[rpcinterface:<%=k%>] +supervisor.rpcinterface_factory = <%=v%> + +<%end%> + [supervisorctl] serverurl=unix:///var/run//supervisor.sock ; use a unix:// URL for a unix socket