%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/227033/root/lib/python2.7/site-packages/salt/queues/
Upload File :
Create Path :
Current File : //proc/227033/root/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyo

�
���^c@@sdZddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
Zddlm
Z
ddlmZeje�ZdZd�Zd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zde d�Z!dS(u{
.. versionadded:: 2014.7.0

This is the default local master event queue built on sqlite.  By default, an
sqlite3 database file is created in the `sqlite_queue_dir` which is found at::

    /var/cache/salt/master/queues

It's possible to store the sqlite3 database files by setting `sqlite_queue_dir`
to another location::

    sqlite_queue_dir: /home/myuser/salt/master/queues
i(tabsolute_importtprint_functiontunicode_literalsN(tSaltInvocationError(tsixusqlitecC@stS(N(t__virtualname__(((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt__virtual__"scC@sstd}tjj|dj|��}tjd|�tj|�}t	|�}||krot
||�n|S(u%
    Return an sqlite connection
    usqlite_queue_diru{0}.dbuConnecting to: %s(t__opts__tostpathtjointformattlogtdebugtsqlite3tconnectt_list_tablest
_create_table(tqueuet	queue_dirtdbtconttables((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt_conn(s
cC@sg|�[|j�}d}tjd|�|j|�|j�}g|D]}|d^qISWdQXdS(Nu3SELECT name FROM sqlite_master WHERE type = "table"u
SQL Query: %si(tcursorRR
texecutetfetchall(Rtcurtcmdtresulttx((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyR7s
cC@sI|�=|j�}dj|�}tjd|�|j|�WdQXtS(Nu:CREATE TABLE {0}(id INTEGER PRIMARY KEY, name TEXT UNIQUE)u
SQL Query: %s(RRRR
RtTrue(RRRR((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyRAs	cC@sat|�}|�I|j�}dj|�}tjd|�|j|�|j�}WdQX|S(u6
    Private function to list contents of a queue
    uSELECT name FROM {0}u
SQL Query: %sN(RRRRR
RR(RRRRtcontents((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt_list_itemsKs
cC@sgtd}tjj|d�}tj|�}g|D](}tjjtjj|��d^q5}|S(u<
    Return a list of sqlite databases in the queue_dir
    usqlite_queue_diru*.dbi(RRR	R
tglobtsplitexttbasename(Rtfilestpathstitemtqueues((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt_list_queuesYs

5cC@s
t�}|S(u9
    Return a list of Salt Queues on the Salt Master
    (R)(R(((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pytlist_queueses	cC@s-t|�}g|D]}|d^q}|S(u"
    List contents of a queue
    i(R!(Rt
itemstupleR'titems((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt
list_itemsmscC@st|�}t|�S(u0
    Provide the number of items in a queue
    (R!tlen(RR,((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pytlist_lengthvscC@s%tjdtj�}|jd|�S(ua
    Make sure single quotes are escaped properly in sqlite3 fashion.
    e.g.: ' becomes ''
    u'u''(tretcompiletMtsub(R'trex_sqlquote((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt
_quote_escape~sc		C@s�t|�}|��|j�}t|tj�r�t|�}dj||�}tjd|�y|j	|�Wq�t
jk
r�}dj|�SXnt|t�rDg|D]}t|�^q�}dj|�}tjd|�g}x|D]}|j
|f�q�Wy|j||�WqDt
jk
r@}dj|�SXnt|t�r�tjjj|�jdd�}t|�}td�j||�}tjd|�y|j	|�Wq�t
jk
r�}dj|�SXnWdQXtS(	u)
    Add an item or items to a queue
    u#INSERT INTO {0}(name) VALUES('{1}')u
SQL Query: %su4Item already exists in this queue. sqlite error: {0}uINSERT INTO {0}(name) VALUES(?)uAOne or more items already exists in this queue. sqlite error: {0}u"u'N(RRt
isinstanceRtstring_typesR5RRR
RRtIntegrityErrortlisttappendtexecutemanytdicttsalttutilstjsontdumpstreplacetstrR(	RR,RRRtescteltnewitemsR'((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pytinsert�sF
!cC@stt|�}|�\|j�}t|tj�rpt|�}dj||�}tjd|�|j	|�t
St|t�r�g|D]}t|�^q�}dj|�}tjd|�g}x|D]}|j|f�q�W|j
||�nt|t�rftjjj|�jdd�}t|�}dj||�}tjd|�|j	|�t
St
SWdQXdS(u.
    Delete an item or items from a queue
    u"DELETE FROM {0} WHERE name = '{1}'u
SQL Query: %suDELETE FROM {0} WHERE name = ?u"u'N(RRR6RR7R5RRR
RRR9R:R;R<R=R>R?R@RA(RR,RRRRDRER'((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pytdelete�s2

!
ic
C@s�dj|�}|dkr}yt|�}Wn.tk
r[}dj|�}t|��nXdj|dj|�g�}ntjd|�t|�}g}|��|j�}|j	|�j
�}	t|	�dkrAg|	D]}
|
d^q�}dj|�}t|�d	j||�}tjd|�|j	|�n|j
�Wd
QX|r�g|	D]+}
tjjj|
djdd��^q^}ntj|�|S(
uB
    Pop one or more or all items from the queue return them.
    uSELECT name FROM {0}uallu3Quantity must be an integer or "all".
Error: "{0}".uu
 LIMIT {0}u
SQL Query: %siu","u%DELETE FROM {0} WHERE name IN ("{1}")Nu'u"(Rtintt
ValueErrorRR
RR
RRRRR.R5tcommitR=R>R?tloadsRAtinfo(
Rtquantityt	is_runnerRtexct	error_txtRR,RRR'titemlisttdel_cmd((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pytpop�s8	!
;
("t__doc__t
__future__RRRR"tloggingRR0Rtsalt.utils.jsonR=tsalt.exceptionsRtsalt.extRt	getLoggert__name__RRRRRRR!R)R*R-R/R5RFRGtFalseRS(((s</usr/lib/python2.7/site-packages/salt/queues/sqlite_queue.pyt<module>s0			
	
								*	 

Zerion Mini Shell 1.0