403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.16.149.93
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib/python3.7/site-packages/beaker/ext/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib/python3.7/site-packages/beaker/ext/__pycache__/redisnm.cpython-37.pyc
B

��[��@s�ddlZddlZddlZddlZyddlZWnek
rDdZYnXddlmZddlm	Z	ddl
mZmZddl
mZddlmZmZGdd�de�ZGd	d
�d
e	�ZdS)�N)�NamespaceManager)�SynchronizerImpl)�SyncDict�machine_identifier)�sha1)�string_type�PY2cs~eZdZdZdZe�Zd�fdd�	Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�Zddd�Z
dd�Zdd�Zdd�Zdd�Z�ZS)�RedisNamespaceManagerazProvides the :class:`.NamespaceManager` API over Redis.

    Provided ``url`` can be both a redis connection string or
    an already existing StrictRedis instance.

    The data will be stored into redis keys, with their name
    starting with ``beaker_cache:``. So make sure you provide
    a specific database number if you don't want to mix them
    with your own data.
    iNcsXtt|��|�d|_||_tdkr,td��t|t�rNtj	�
|tjj|�|_
n||_
dS)Nzredis is not available)�superr	�__init__Zlock_dir�timeout�redis�RuntimeError�
isinstancer�clients�get�StrictRedis�from_url�client)�self�	namespace�urlr�kw)�	__class__��C/opt/alt/python37/lib/python3.7/site-packages/beaker/ext/redisnm.pyr!s
zRedisNamespaceManager.__init__cCs`t|t�s|�d�}t|�|jt|j�td�dkrRtsF|�d�}t|��	�}d|j|fS)N�asciiz
beaker_cache:�zutf-8zbeaker_cache:%s:%s)
r�str�decode�len�MAX_KEY_LENGTHrr�encoder�	hexdigest)r�keyrrr�_format_key.s

$
z!RedisNamespaceManager._format_keycCst|�|�|j�S)N)�RedisSynchronizerr%r)rr$rrr�get_creation_lock7sz'RedisNamespaceManager.get_creation_lockcCs,|j�|�|��}|dkr"t|��t�|�S)N)rrr%�KeyError�pickle�loads)rr$�entryrrr�__getitem__:sz!RedisNamespaceManager.__getitem__cCs|j�|�|��S)N)r�existsr%)rr$rrr�__contains__@sz"RedisNamespaceManager.__contains__cCs||kS)Nr)rr$rrr�has_keyCszRedisNamespaceManager.has_keycCs^t�|�}|dkr"|jdk	r"|j}|dk	rF|j�|�|�t|�|�n|j�|�|�|�dS)N)r)�dumpsrrZsetexr%�int�set)rr$�valueZ
expiretimerrr�	set_valueFs
zRedisNamespaceManager.set_valuecCs|�||�dS)N)r4)rr$r3rrr�__setitem__Osz!RedisNamespaceManager.__setitem__cCs|j�|�|��dS)N)r�deleter%)rr$rrr�__delitem__Rsz!RedisNamespaceManager.__delitem__cCs"x|��D]}|j�|�q
WdS)N)�keysrr6)r�krrr�	do_removeUszRedisNamespaceManager.do_removecCs|j�d|j�S)Nzbeaker_cache:%s:*)rr8r)rrrrr8YszRedisNamespaceManager.keys)N)N)�__name__�
__module__�__qualname__�__doc__r!rrrr%r'r,r.r/r4r5r7r:r8�
__classcell__rr)rrr	s

	
	r	csReZdZdZdZe�Z�fdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Z�Z
S)r&z�Synchronizer based on redis.

    Provided ``url`` can be both a redis connection string or
    an already existing StrictRedis instance.

    This Synchronizer only supports 1 reader or 1 writer at time, not concurrent readers.
    i�csDtt|���d||_t|t�r:tj�|t	j
j|�|_n||_dS)Nzbeaker_lock:%s)
r
r&r�
identifierrrr	rrr
rrr)rr@r)rrrrjs


zRedisSynchronizer.__init__cCs d|jt��t��jf�d�S)Nz%s-%s-%sr)�
MACHINE_ID�os�getpid�	threading�current_thread�identr")rrrr�
_get_owner_idrszRedisSynchronizer._get_owner_idcCs|��dS)N)�do_release_write_lock)rrrr�do_release_read_lockwsz&RedisSynchronizer.do_release_read_lockcCs|�|�dS)N)�do_acquire_write_lock)r�waitrrr�do_acquire_read_lockzsz&RedisSynchronizer.do_acquire_read_lockcs.|j�|�����fdd�}|j�|��dS)Ncs |���}|�kr|���dS)N)rr6)�pipeZ
lock_value)r@�owner_idrr�execute_release�s
z@RedisSynchronizer.do_release_write_lock.<locals>.execute_release)r@rGrZtransaction)rrOr)r@rNrrH}sz'RedisSynchronizer.do_release_write_lockcCs@|��}x2|jj|j||jdd�r&dS|s.dSt�d�q
WdS)NT)�exZnxFg�������?)rGrr2r@�LOCK_EXPIRATION�time�sleep)rrKrNrrrrJ�sz'RedisSynchronizer.do_acquire_write_lock)r;r<r=r>rQrrArrGrIrLrHrJr?rr)rrr&]s	r&)rBrDrRr)r
�ImportErrorZbeaker.containerrZbeaker.synchronizationrZbeaker.utilrrZbeaker.crypto.utilrZbeaker._compatrrr	r&rrrr�<module>s
K

Youez - 2016 - github.com/yon3zu
LinuXploit