%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/modules/ |
Current File : //usr/lib/python2.7/site-packages/salt/modules/apcups.py |
# -*- coding: utf-8 -*- ''' Module for apcupsd ''' from __future__ import absolute_import, print_function, unicode_literals # Import Python libs import logging # Import Salt libs import salt.utils.path import salt.utils.decorators as decorators log = logging.getLogger(__name__) # Define the module's virtual name __virtualname__ = 'apcups' @decorators.memoize def _check_apcaccess(): ''' Looks to see if apcaccess is present on the system ''' return salt.utils.path.which('apcaccess') def __virtual__(): ''' Provides apcupsd only if apcaccess is present ''' if _check_apcaccess(): return __virtualname__ return ( False, '{0} module can only be loaded on when apcupsd is installed'.format( __virtualname__ ) ) def status(): ''' Return apcaccess output CLI Example: .. code-block:: bash salt '*' apcups.status ''' ret = {} apcaccess = _check_apcaccess() res = __salt__['cmd.run_all'](apcaccess) retcode = res['retcode'] if retcode != 0: ret['Error'] = 'Something with wrong executing apcaccess, is apcupsd running?' return ret for line in res['stdout'].splitlines(): line = line.split(':') ret[line[0].strip()] = line[1].strip() return ret def status_load(): ''' Return load CLI Example: .. code-block:: bash salt '*' apcups.status_load ''' data = status() if 'LOADPCT' in data: load = data['LOADPCT'].split() if load[1].lower() == 'percent': return float(load[0]) return {'Error': 'Load not available.'} def status_charge(): ''' Return battery charge CLI Example: .. code-block:: bash salt '*' apcups.status_charge ''' data = status() if 'BCHARGE' in data: charge = data['BCHARGE'].split() if charge[1].lower() == 'percent': return float(charge[0]) return {'Error': 'Load not available.'} def status_battery(): ''' Return true if running on battery power CLI Example: .. code-block:: bash salt '*' apcups.status_battery ''' data = status() if 'TONBATT' in data: return not data['TONBATT'] == '0 Seconds' return {'Error': 'Battery status not available.'} # vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4