Sindbad~EG File Manager

Current Path : /usr/lib64/python3.6/site-packages/lsm/__pycache__/
Upload File :
Current File : //usr/lib64/python3.6/site-packages/lsm/__pycache__/_common.cpython-36.opt-1.pyc

3

�.'e�M�*@s`ddlZddlZddlZddlZddlZddlZyddlmZWn ek
r`ddl	mZYnXddl
Z
y ddlmZm
Z
ddlmZWn0ek
r�ddlmZm
Z
ddlmZYnXddlZddlZddlZddlZddlZdSdd�Zdd	�ZGd
d�de�ZdZdZd
dTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkd�Zddddd d!gZdld#d$�Zd%d&�Zd'd(�Z dmd)d*�Z!d+d,�Z"d-d.�Z#d/d0�Z$d1d2�Z%d3d4�Z&d5d6�Z'd7d8�Z(Gd9d:�d:e)�Z*ed;d<d=�ed>d?d=�ed@dAd=�GdBdC�dCe)����Z+dndDdE�Z,dFdG�Z-GdHdI�dIe�Z.GdJdK�dKe�Z/dLdM�Z0dNdO�Z1GdPdQ�dQej2�Z3e4dRk�r\ej5�dS)o�N)�Sequence)�URLError�	HTTPError)�urlparseTcsHd���fdd�}�fdd�}t||r,|ndd|����fdd�}|S)	z�
    Creates the get/set properties for the given name.  It assumes that the
    actual attribute is '_' + name

    TODO: Expand this with domain validation to ensure the values are correct.
    �_cs
t|��S)N)�getattr)�self)�attribute_name��/usr/lib64/python3.6/_common.py�getter9sz default_property.<locals>.gettercst|�|�dS)N)�setattr)r�value)r	r
r�setter<sz default_property.<locals>.setterNcst|���|S)N)r
)�cls)�name�propr
r�	decoratorAsz#default_property.<locals>.decorator)�property)rZ	allow_set�docrrrr
)r	rrr�default_property0srcCs&t|t�rttjt|���t|t�rxt|�}d|kr\d|krHttjd��d|kr\ttjd��t	dt
j��ttj|��y*t
jr�t|t
j�r�ttjdt|���Wntk
r�YnXtjr�t|t�r�ttjt|���t|tj	�r�ttjt|���t
j�}t	d|�ttjd	tt|��|��dS)
Nz
urlopen errorz	Errno 111zConnection refusedz	Errno 113zHost is downzUnexpected network error:
zSSL Certificate error (%s)zUnexpected exception:
zUnexpected exception (TYPE= %s))�
isinstancer�LsmError�ErrorNumber�PLUGIN_AUTH_FAILED�strr�NETWORK_CONNREFUSED�NETWORK_HOSTDOWN�error�	traceback�
format_exc�
NETWORK_ERROR�sslZCertificateError�AttributeError�six�PY3�ConnectionError�socket�
PLUGIN_BUG�type)�expZdescZstack_tracer
r
r�common_urllib2_error_handlerHs:

r+c@s*eZdZdZd	dd�Zdd�Zdd�ZdS)
�ProxyzQ
    Used to provide an unambiguous error when a feature is not implemented.
    NcCs
||_dS)z<
        Constructor which takes an object to wrap.
        N)�proxied_obj)r�objr
r
r�__init__{szProxy.__init__cCs*t|j|�rtj|j|�Sttjd��dS)zJ
        Called each time an attribute is requested of the object
        zUnsupported operationN)�hasattrr-�	functools�partial�_presentrr�
NO_SUPPORT)rrr
r
r�__getattr__�szProxy.__getattr__cOst|j|�||�S)zQ
        Method which is called to invoke the actual method of interest.
        )rr-)rZ_proxy_method_name�args�kwargsr
r
rr3�szProxy._present)N)�__name__�
__module__�__qualname__�__doc__r/r5r3r
r
r
rr,ss

r,z/var/run/lsm/ipc���
�����	�(��2��<�)�B�KiBZKB�K�k�MiBZMB�M�m�GiBZGB�G�g�TiBZTB�T�t�PiBZPB�P�p�EiBZEB�E�erZrWrTrQrNrKFcCsTd}|rLx.tD]&}|t|kr|tt|�}|}PqW|s@d}d||fS|SdS)a
    Convert size in bytes to human readable size
    The return string will follow IEC binary prefixes, e.g. '1.9 KiB'
    For size less than 1024, we do nothing but return the int we get.
    TODO: Need a expect to handle when size is not a int. int() might do.
    NrJz%.2f %s)�SIZE_CONS_CHK_LST�	SIZE_CONS�float)�sizeZhuman�unitsZkey_namer
r
r�sh�s
rbcCs
t|d�S)a
    Convert integer size in bytes to human readable size.
    We are following rules of IEC binary prefixes on size:
        http://en.wikipedia.org/wiki/Gibibyte
    The biggest of unit this function supported is PiB.
    The precision is 2 which means you will get '1.99 KiB'
    T)rb)r`r
r
r�size_bytes_2_size_human�srccCsttjdtj�}|j|�}d}|rl|jd�}|jd�}|s@t|�S|j�}|jdd�}|tkrlt|t	|�}t|�S)a�
    Convert human readable size string into integer size in bytes.
    Following rules of IEC binary prefixes on size:
        http://en.wikipedia.org/wiki/Gibibyte
    Supported input size_human in these formats:
        '1.9KiB'        # int(1024*1.9)
        '1 KiB'         # 2**10
        '1B'            # 1
        '2K'            # 2*(2**10), treated as '2KiB'
        '2k'            # 2*(2**10), treated as '2KiB'
        '2KB'           # 2*(10**3)
    z�
        ^
        ([0-9\.]+)          # 1: number
        [ \t]*              # might have space between number and unit
        ([a-zA-Z]*)         # 2: units
        $
    rr<r=ZIBZiB)
�re�compile�X�match�group�int�upper�replacer^r_)Z
size_humanZregex_size_humanZregex_matchZ
size_bytesZnumberrar
r
r�size_human_2_size_bytes�s




rlcCsy�i}t|�}|jr|j|d<|jr.|j|d<|jr>|j|d<|jrN|j|d<|jr`|j|d<nd|d<t|�|d<|r�x$|D]}||kr~ttj	d|��q~W|r�x(|D] }||dkr�ttj	d	|��q�W|St
k
�r}zttj	d
t|���WYdd}~XnXdS)zq
    Common uri parse method that optionally can check for what is needed
    before returning successfully.
    �scheme�netloc�port�host�usernameNZ
parametersz&uri missing "%s" or is in invalid formzuri missing query parameter %szuri invalid: reason: %s)rrmrnroZhostnamerq�uri_parametersrr�INVALID_ARGUMENT�
ValueErrorr)�uriZrequiresZrequired_paramsZrc�u�rZver
r
r�	uri_parses:





rxcCsP|jr|j}n|jr(td|d�j}niS|rHtdd�|jd�D��SiSdS)Nzhttp:r=cSsg|]}|jd��qS)�=)�split)�.0�partr
r
r�
<listcomp>Ssz"uri_parameters.<locals>.<listcomp>�&)�query�pathr�dictrz)rurr
r
rrrDsrrcCsFytjdd�}Wntk
r,tj�}YnX|j|jd��|j�S)NF)Zusedforsecurityzutf-8)�hashlib�md5�	Exception�update�encodeZ	hexdigest)rV�hr
r
rr�[sr�cCstjr||S||SdS)N)r$r%)�a�br
r
r�int_divfsr�cGsdjdd�|D��S)N�cSsg|]}t|��qSr
)r)r{r\r
r
rr}ssz$params_to_string.<locals>.<listcomp>)�join)r6r
r
r�params_to_stringrsr�cCs4x.|jd�D] }t|�rtj||d|�qWdS)z�
    If a message includes new lines we will create multiple syslog
    entries so that the message is readable.  Otherwise it isn't very readable.
    Hopefully we won't be logging much :-)
    �
z: N)rz�len�syslog)�levelZprg�msg�lr
r
r�post_msgsr�cGs$ttjtjjtjd�t|��dS)Nr)	r�r�ZLOG_ERR�osr��basename�sys�argvr�)r�r
r
rr�srcGs(tr$ttjtjjtjd�t	|��dS)Nr)
�LOG_VERBOSEr�r�ZLOG_INFOr�r�r�r�r�r�)r�r
r
r�info�sr�c@seZdZdZdS)�	SocketEOFzL
    Exception class to indicate when we read zero bytes from a socket.
    N)r8r9r:r;r
r
r
rr��sr��codez
Error code)rr�z
Error message�datazOptional error datac@seZdZddd�Zdd�ZdS)rNcOs(tj|f|�|�||_||_||_dS)z,
        Class represents an error.
        N)r�r/�_codeZ_msg�_data)rr��messager�r6r7r
r
rr/�szLsmError.__init__cCs@tj|j�}|jdk	r.|jr.d||j|jfSd||jfSdS)Nz%s: %s Data: %sz%s: %s )r�error_number_to_strr�r�r�)rZerror_no_strr
r
r�__str__�s
zLsmError.__str__)N)r8r9r:r/r�r
r
r
rr�s
	rcCs|||||d�S)zC
    Used for gathering additional information about an error.
    )�domainr��	exception�debug�
debug_datar
)r�r�r�r�r�r
r
r�addl_error_data�sr�cCsd|jd�}dj|dd��}t|�rNt|�}x2|dd�D]}t||�}q:Wntd�}t||�}|S)zn
    Given a class name it returns the class, caller will then
    need to run the constructor to create.
    �.Nr<�__main__���)rzr�r��
__import__r)�
class_name�parts�modulerP�compr
r
r�	get_class�s

r�c@s�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-e.�Z/e0d,d-��Z1d.S)/rrr<r=��rE�
rF�4�e�}�����������������������������i,i-i3i7i^i�i�i�i�i�i�iicCs:x0ttjj��D]}tj||krd||fSqWd|S)Nz%s(%d)zUNKNOWN_ERROR_NUMBER(%d))�listr�_LOCALS�keys)Zerror_noZ	error_strr
r
rr�szErrorNumber.error_number_to_strN)2r8r9r:ZOKZLIB_BUGr(ZJOB_STARTEDZTIMEOUTZDAEMON_NOT_RUNNINGZPERMISSION_DENIEDZ
NAME_CONFLICTZEXISTS_INITIATORrsZNO_STATE_CHANGErrr!Z	NO_MEMORYr4Z	IS_MASKEDZHAS_CHILD_DEPENDENCYZNOT_FOUND_ACCESS_GROUPZNOT_FOUND_FSZ
NOT_FOUND_JOBZNOT_FOUND_POOLZNOT_FOUND_FS_SSZNOT_FOUND_VOLUMEZNOT_FOUND_NFS_EXPORTZNOT_FOUND_SYSTEMZNOT_FOUND_DISKZNOT_LICENSEDZNO_SUPPORT_ONLINE_CHANGEZNO_SUPPORT_OFFLINE_CHANGErZPLUGIN_IPC_FAILZPLUGIN_SOCKET_PERMISSIONZPLUGIN_NOT_EXISTZNOT_ENOUGH_SPACEZTRANSPORT_COMMUNICATIONZTRANSPORT_SERIALIZATIONZTRANSPORT_INVALID_ARGZLAST_INIT_IN_ACCESS_GROUPZUNSUPPORTED_SEARCH_KEYZEMPTY_ACCESS_GROUPZPOOL_NOT_READYZ
DISK_NOT_FREE�localsr��staticmethodr�r
r
r
rr�sZrc@seZdZdZdZdZdS)�	JobStatusr<r=r?N)r8r9r:Z
INPROGRESSZCOMPLETEZERRORr
r
r
rr�sr�cCs�t|t�r~t|t�s,td|tt|��f��t|�dkrXxB|D]}t||d|�q>Wq�x�t||�D]\}}t|||�qdWnj|t|�kr�|dk	r�t|tj	�r�t|tj	�r�dSt
j|�s�tt|�|�r�td|t|�tt|��f��dS)Nz6%s call is returning a %s, but is expecting a sequencer<rz%s call expected: %s got: %s )
rr�	TypeErrorrr)r��type_compare�zipr$Zstring_types�inspectZisclass�
issubclass)Zmethod_nameZexp_typeZact_val�avr*Zactr
r
rr�%s$


r�cs�fdd�}|S)a4
    Decorator function that allows us to ensure that we are getting the
    correct types back from a function/method call.

    Note: This is normally frowned upon by the python community, but this API
    needs to be language agnostic, so making sure we have the correct types
    is quite important.
    cstj����fdd��}|S)Ncst�||�}t��dkrRt|�t��krBtd�jt��t|�f��t�j�|�nt��dkrpt�j�d|�|S)Nr<z.%s call expected %d return values, actual = %dr)r�r�r8r�)r6r7rw)�func�typesr
r�innerMs
z-return_requires.<locals>.outer.<locals>.inner)r1�wraps)r�r�)r�)r�r�outerLszreturn_requires.<locals>.outerr
)r�r�r
)r�r�return_requiresCs	r�c@s$eZdZdd�Zdd�Zdd�ZdS)�
TestCommoncCsdS)Nr
)rr
r
r�setUpeszTestCommon.setUpc"Cs�y
t��Wn2tk
r<}z|jt|t��WYdd}~XnXytddd��WnFtk
r�}z*|j|jdko�|jdko�|jdk�WYdd}~XnXtddddd�}|j|ddko�|ddko�|ddko�|ddko�|ddk�dS)	Nr>ZMessageZDatar�r�r�r�r�)r�Z
assertTruerrr�r�r�r�)rr\Zedr
r
r�test_simplehs
"
zTestCommon.test_simplecCsdS)Nr
)rr
r
r�tearDown|szTestCommon.tearDownN)r8r9r:r�r�r�r
r
r
rr�dsr�r�)TNii�iiii@Biii@iʚ;i@i@llJ)�lll l�I�5l l ll�N�Zoll)F)NN)NN)6r�r�Zunittestrdr�r��collections.abcr�ImportError�collectionsr�Zurllib.errorrrZurllib.parserZurllib2r1rr$r"r'rr+�objectr,ZUDS_PATHr�r^r]rbrcrlrxrrr�r�r�r�rr�r�r�rr�r�rr�r�r�ZTestCaser�r8�mainr
r
r
r�<module>s�
+)
(
1



Q!


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists