%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/states/ |
Current File : //usr/lib/python2.7/site-packages/salt/states/event.py |
# -*- coding: utf-8 -*- ''' Send events through Salt's event system during state runs ''' # Import Python libs from __future__ import absolute_import, print_function, unicode_literals # import salt libs import salt.utils.functools def send(name, data=None, preload=None, with_env=False, with_grains=False, with_pillar=False, show_changed=True, **kwargs): ''' Send an event to the Salt Master .. versionadded:: 2014.7.0 Accepts the same arguments as the :py:func:`event.send <salt.modules.event.send>` execution module of the same name, with the additional argument: :param show_changed: If ``True``, state will show as changed with the data argument as the change value. If ``False``, shows as unchanged. Example: .. code-block:: yaml # ...snip bunch of states above mycompany/mystaterun/status/update: event.send: - data: status: "Half-way through the state run!" # ...snip bunch of states below ''' ret = {'name': name, 'changes': {}, 'result': False, 'comment': ''} if show_changed: ret['changes'] = {'tag': name, 'data': data} else: ret['changes'] = {} if __opts__['test']: ret['result'] = None ret['comment'] = 'Event would have been fired' return ret ret['result'] = __salt__['event.send'](name, data=data, preload=preload, with_env=with_env, with_grains=with_grains, with_pillar=with_pillar, **kwargs) ret['comment'] = 'Event fired' return ret def wait(name, sfun=None): ''' Fire an event on the Salt master event bus if called from a watch statement .. versionadded:: 2014.7.0 Example: .. code-block:: jinja # Stand up a new web server. apache: pkg: - installed - name: httpd service: - running - enable: True - name: httpd # Notify the load balancer to update the pool once Apache is running. refresh_pool: event: - wait - name: mycompany/loadbalancer/pool/update - data: new_web_server_ip: {{ grains['ipv4'] | first() }} - watch: - pkg: apache ''' # Noop. The state system will call the mod_watch function instead. return {'name': name, 'changes': {}, 'result': True, 'comment': ''} mod_watch = salt.utils.functools.alias_function(send, 'mod_watch') fire_master = salt.utils.functools.alias_function(send, 'fire_master')