Anons79 Mini Shell

Directory : /proc/self/root/lib/python2.7/site-packages/ansible/plugins/cache/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyo

�
�Udac@`s;ddlmZmZmZeZdZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZyddlZWnek
r�ed��nXe�Zdefd
��YZdefd��YZdefd��YZdS(i(tabsolute_importtdivisiontprint_functions=
    cache: memcached
    short_description: Use memcached DB for cache
    description:
        - This cache uses JSON formatted, per host records saved in memcached.
    version_added: "1.9"
    requirements:
      - memcache (python lib)
    options:
      _uri:
        description:
          - List of connection information for the memcached DBs
        default: ['127.0.0.1:11211']
        type: list
        env:
          - name: ANSIBLE_CACHE_PLUGIN_CONNECTION
        ini:
          - key: fact_caching_connection
            section: defaults
      _prefix:
        description: User defined prefix to use when creating the DB entries
        default: ansible_facts
        env:
          - name: ANSIBLE_CACHE_PLUGIN_PREFIX
        ini:
          - key: fact_caching_prefix
            section: defaults
      _timeout:
        default: 86400
        description: Expiration timeout for the cache plugin data
        env:
          - name: ANSIBLE_CACHE_PLUGIN_TIMEOUT
        ini:
          - key: fact_caching_timeout
            section: defaults
        type: integer
N(tLock(tchain(t	constants(tAnsibleError(t
MutableSet(tBaseCacheModule(tDisplays9python-memcached is required for the memcached fact cachetProxyClientPoolcB`s_eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
s�
    Memcached connection pooling for thread/fork safety. Inspired by py-redis
    connection pool.

    Available connections are maintained in a deque and released in a FIFO manner.
    cO`s5|jdd�|_||_||_|j�dS(Ntmax_connectionsi(tpopRtconnection_argstconnection_kwargstreset(tselftargstkwargs((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__init__Js		cC`sLtj�|_d|_tjd|j�|_t�|_	t
�|_dS(Nitmaxlen(tostgetpidtpidt_num_connectionstcollectionstdequeRt_available_connectionstsett_locked_connectionsRt_lock(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyRPs
	cC`sY|jtj�krU|j�2|jtj�kr8dS|j�|j�WdQXndS(N(RRRRtdisconnect_allR(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt_check_safeWs

cC`sQ|j�y|jj�}Wntk
r<|j�}nX|jj|�|S(N(R Rtpopleftt
IndexErrortcreate_connectionRtadd(Rt
connection((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytget_connection`s

cC`sF|j|jkr!td��n|jd7_tj|j|j�S(NsToo many memcached connectionsi(RRtRuntimeErrortmemcachetClientR
R(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR#iscC`s.|j�|jj|�|jj|�dS(N(R RtremoveRtappend(RR%((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytrelease_connectionos
cC`s.x't|j|j�D]}|j�qWdS(N(RRRR(Rtconn((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyRtsc`s��fd�}|S(Nc`s�j�||�S(N(t
_proxy_client(RR(tnameR(sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytwrappedys((RR/R0((R/RsC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__getattr__xscO`s;|j�}zt||�||�SWd|j|�XdS(N(R&tgetattrR,(RR/RRR-((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR.}s(t__name__t
__module__t__doc__RRR R&R#R,RR1R.(((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR
Bs										tCacheModuleKeyscB`sSeZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	sb
    A set subclass that keeps track of insertion time and persists
    the set in memcached.
    tansible_cache_keyscO`s||_t||�|_dS(N(t_cachetdictt_keyset(RtcacheRR((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR�s	cC`s
||jkS(N(R:(Rtkey((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__contains__�scC`s
t|j�S(N(titerR:(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__iter__�scC`s
t|j�S(N(tlenR:(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__len__�scC`s0tj�|j|<|jj|j|j�dS(N(ttimeR:R8RtPREFIX(RR<((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR$�scC`s'|j|=|jj|j|j�dS(N(R:R8RRC(RR<((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytdiscard�s
cC`smxM|jj�D]<}|j|}||ko:|knr|j|=qqW|jj|j|j�dS(N(R:tkeysR8RRC(Rts_mints_maxtktt((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytremove_by_timerange�s

(R3R4R5RCRR=R?RAR$RDRJ(((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR6�s						tCacheModulecB`steZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
RS(cO`sdg}ybtt|�j||�|jd�rF|jd�}n|jd�|_|jd�|_WnZtk
r�tjddd�t	j
r�t	j
jd�}nt	j|_t	j
|_nXi|_t|d	d
�|_t|j|jjtj�pg�|_dS(Ns127.0.0.1:11211t_urit_timeoutt_prefixsTRather than importing CacheModules directly, use ansible.plugins.loader.cache_loadertversions2.12t,tdebugi(tsuperRKRt
get_optionRMRNtKeyErrortdisplayt
deprecatedtCtCACHE_PLUGIN_CONNECTIONtsplittCACHE_PLUGIN_TIMEOUTtCACHE_PLUGIN_PREFIXR8R
t_dbR6tgetRCt_keys(RRRR%((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR�s"	
		cC`sdj|j|�S(Ns{0}{1}(tformatRN(RR<((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt	_make_key�scC`s<|jdkr8tj�|j}|jjd|�ndS(Ni(RMRBR^RJ(Rt
expiry_age((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt_expire_keys�scC`sl||jkr\|jj|j|��}|dkrL|j|�t�n||j|<n|jj|�S(N(R8R\R]R`tNonetdeleteRT(RR<tvalue((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR]�s
	cC`sL|jj|j|�|d|jdd�||j|<|jj|�dS(NRBtmin_compress_leni(R\RR`RMR8R^R$(RR<Re((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyR�s+
cC`s|j�tt|j��S(N(RbtlistR>R^(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyRE�s
cC`s|j�||jkS(N(RbR^(RR<((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytcontains�s
cC`s7|j|=|jj|j|��|jj|�dS(N(R8R\RdR`R^RD(RR<((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyRd�s
cC`s(x!|j�D]}|j|�q
WdS(N(RERd(RR<((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pytflush�scC`s
|jj�S(N(R^tcopy(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyRj�scC`st�S(N(R9(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__getstate__�scC`s|j�dS(N(R(Rtdata((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt__setstate__�s(R3R4RR`RbR]RRERhRdRiRjRkRm(((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyRK�s				
							( t
__future__RRRttypet
__metaclass__t
DOCUMENTATIONRRRBtmultiprocessingRt	itertoolsRtansibleRRWtansible.errorsRt/ansible.module_utils.common._collections_compatRtansible.plugins.cacheRtansible.utils.displayR	R(tImportErrorRUtobjectR
R6RK(((sC/usr/lib/python2.7/site-packages/ansible/plugins/cache/memcached.pyt<module>s(&
	D$

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]