File: //usr/lib/python2.7/site-packages/salt/modules/uwsgi.py
# -*- coding: utf-8 -*-
'''
uWSGI stats server https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html
:maintainer: Peter Baumgartner <pete@lincolnloop.com>
:maturity: new
:platform: all
'''
# Import Python libs
from __future__ import absolute_import, print_function, unicode_literals
# Import Salt libs
import salt.utils.json
import salt.utils.path
def __virtual__():
'''
Only load the module if uwsgi is installed
'''
cmd = 'uwsgi'
if salt.utils.path.which(cmd):
return cmd
return (False, 'The uwsgi execution module failed to load: the uwsgi binary is not in the path.')
def stats(socket):
'''
Return the data from `uwsgi --connect-and-read` as a dictionary.
socket
The socket the uWSGI stats server is listening on
CLI Example:
.. code-block:: bash
salt '*' uwsgi.stats /var/run/mystatsserver.sock
salt '*' uwsgi.stats 127.0.0.1:5050
'''
cmd = ['uwsgi', '--connect-and-read', '{0}'.format(socket)]
out = __salt__['cmd.run'](cmd, python_shell=False)
return salt.utils.json.loads(out)