%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/states/ |
Current File : //usr/lib/python2.7/site-packages/salt/states/status.py |
# -*- coding: utf-8 -*- ''' Minion status monitoring Maps to the `status` execution module. ''' from __future__ import absolute_import, print_function, unicode_literals __monitor__ = [ 'loadavg', 'process', ] def loadavg(name, maximum=None, minimum=None): ''' Return the current load average for the specified minion. Available values for name are `1-min`, `5-min` and `15-min`. `minimum` and `maximum` values should be passed in as strings. ''' # Monitoring state, no changes will be made so no test interface needed ret = {'name': name, 'result': False, 'comment': '', 'changes': {}, 'data': {}} # Data field for monitoring state data = __salt__['status.loadavg']() if name not in data: ret['result'] = False ret['comment'] += 'Requested load average {0} not available '.format( name ) return ret if minimum and maximum and minimum >= maximum: ret['comment'] += 'Min must be less than max' if ret['comment']: return ret cap = float(data[name]) ret['data'] = data[name] if minimum: if cap < float(minimum): ret['comment'] = 'Load avg is below minimum of {0} at {1}'.format( minimum, cap) return ret if maximum: if cap > float(maximum): ret['comment'] = 'Load avg above maximum of {0} at {1}'.format( maximum, cap) return ret ret['comment'] = 'Load avg in acceptable range' ret['result'] = True return ret def process(name): ''' Return whether the specified signature is found in the process tree. This differs slightly from the services states, in that it may refer to a process that is not managed via the init system. ''' # Monitoring state, no changes will be made so no test interface needed ret = {'name': name, 'result': False, 'comment': '', 'changes': {}, 'data': {}} # Data field for monitoring state data = __salt__['status.pid'](name) if not data: ret['result'] = False ret['comment'] += 'Process signature "{0}" not found '.format( name ) return ret ret['data'] = data ret['comment'] += 'Process signature "{0}" was found '.format( name ) ret['result'] = True return ret