def fire(
                self,
                name,
                body="",
                node=None,
                service=None,
                tag=None):
            """
            Sends an event to Consul's gossip protocol.

            *name* is the Consul-opaque name of the event. This can be filtered
            on in calls to list, below

            *body* is the Consul-opaque body to be delivered with the event.
             From the Consul documentation:
                The underlying gossip also sets limits on the size of a user
                event message. It is hard to give an exact number, as it
                depends on various parameters of the event, but the payload
                should be kept very small (< 100 bytes). Specifying too large
                of an event will return an error.

            *node*, *service*, and *tag* are regular expressions which remote
            agents will filter against to determine if they should store the
            event
            """
            assert not name.startswith('/'), \
                'keys should not start with a forward slash'
            params = {}
            if node is not None:
                params['node'] = node
            if service is not None:
                params['service'] = service
            if tag is not None:
                params['tag'] = tag

            return self.agent.http.put(
                callback(is_json=True),
                '/v1/event/fire/%s' % name, params=params, data=body)
dataset/ETHPy150Open cablehead/python-consul/consul/base.py/Consul.Event.fire/original