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__/_data.cpython-36.opt-1.pyc

3

�.'eǑ�@s,ddlmZddlZddlZddlmZyddlZWne	k
rPddlZYnXddl
mZddlm
Z
mZmZmZddlZGdd�dej�ZGdd	�d	ej�ZGd
d�deee��Zedd
d�eddd�eddd�eddd�eddd�eddd�eddd�eddd�Gdd�de���������Zejd�Zedd
d�edd d�ed!d"d�edd#d�edd$d�ed%d&d�eddd�ed'd(d�eddd�Gd)d*�d*e����������Zedd
d�edd+d�edd,d�ed-d.d�eddd�Gd/d0�d0e������Zedd
d�edd1d�ed2d3d�ed4d5d�eddd�ed-d6d�eddd�edd7d�ed8d9d�ed:d;d�Gd<d=�d=e�����������Zedd
d�edd>d�ed2d3d�ed4d?d�ed'd@d�eddAd�eddd�GdBdC�dCe��������Zedd
d�eddDd�edEdFd�eddd�GdGdH�dHe�����Zedd
d�edIdJd�edKdLd�edMdNd�edOdPd�edQdRd�edSdTd�edUdVd�edWdXd�edYdZd�edd[d�Gd\d]�d]e������������Zed^d_d�ed`dad�edbd$d�Gdcdd�dde����Z edded�eddfd�edgdhd�edidjd�eddd�edd[d�Gdkdl�dle�������Z!edded�edmdnd�edodpd�edqdrd�edsdtd�edudvd�eddd�edd[d�Gdwdx�dxe���������Z"Gdydz�dze�Z#edd
d�edd d�ed{d|d�edd}d�eddd�eddd�Gd~d�de�������Z$e%d�k�r(dS)��)�ABCMetaN)�with_metaclass)�
WHITESPACE)�	get_class�default_property�ErrorNumber�LsmErrorc@seZdZdZdd�ZdS)�DataEncoderz?
    Custom json encoder for objects derived form ILsmData
    cCs,t|t�s tdtt|����n|j�SdS)Nzincorrect class type:)�
isinstance�IData�
ValueError�str�type�_to_dict)�selfZmy_class�r�/usr/lib64/python3.6/_data.py�default*s
zDataEncoder.defaultN)�__name__�
__module__�__qualname__�__doc__rrrrrr	%sr	c@sBeZdZdZedd��Zedd��Zedd��Zej	fdd	�Z
d
S)�DataDecoderz?
    Custom json decoder for objects derived from ILsmData
    cCs@i}d|krtj|�}n$x"|j�D]\}}tj|�||<q"W|S)z(
        Processes a dictionary
        �class)r�_factory�itemsr�_DataDecoder__decode)�d�rc�k�vrrrZ__process_dict6szDataDecoder.__process_dictcCsdg}xZt|�D]N\}}t|�tkr4|jtj|��qt|�tkrR|jtj|��q|j|�qW|S)z"
        Processes a list
        )�	enumerater�list�appendr�_DataDecoder__process_list�dict�_DataDecoder__process_dict)�lr�elem�valuerrrZ__process_listEszDataDecoder.__process_listcCs4t|�tkrtj|�St|�tkr,tj|�S|SdS)z)
        Decodes the parsed json
        N)rr%rr&r"r$)�errrZ__decodeTs


zDataDecoder.__decodecCstjtj|��S)N)rr�json�loads)rZjson_stringZ_wrrr�decode`szDataDecoder.decodeN)rrrr�staticmethodr&r$rr�matchr-rrrrr1s
rc@s,eZdZdZdd�Zedd��Zdd�ZdS)	rz?
    Base class functionality of serializable
    classes.
    cCs\d|jji}xJt|jj��D]8\}}t|t�rD|j�||dd�<q|||dd�<qW|S)z5
        Represent the class as a dictionary
        r�N)�	__class__rr"�__dict__rr
rr)rrrr rrrrjs
zIData._to_dictcCs�d|kr�|d}|d=ttd|�}xVt|j��D]F\}}t|t�rhd|krhtj|j|��|d|<q4|j|�|d|<q4W|f|�SdS)z�
        Factory for creating the appropriate class given a dictionary.
        This only works for objects that inherit from IData
        r�.�_N)	rrr"rr
r%rr�pop)r�
class_name�crr rrrrzszIData._factorycCst|j��S)z7
        Used for human string representation.
        )r
r)rrrr�__str__�sz
IData.__str__N)rrrrrr.rr8rrrrrdsr�idzUnique identifier)�doc�namezDisk name (aka. vendor)Z	disk_typezEnumerated type of disk�
block_sizezSize of each block�
num_of_blockszTotal number of blocksZstatuszEnumerated status�	system_idzSystem identifierZplugin_datazPrivate plugin datac@sXeZdZdZddgZd&Zd'ZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZd(Zd)Zd*Zd+Zd,Zd-Zd.Zd/Zd0Zd1Zd2Zd3Zd4Z d5Z!d6Z"d7Z#dZ$dZ%d8Z&d9Z'dZ(dZ)dZ*dZ+dZ,d	Z-d
Z.dZ/dZ0dZ1dZ2d:Z3d;Z4d<Z5d=Z6d>Z7d?Z8d@Z9dZ:dAZ;dZ<dZ=dZ>ddde"e&fdd�Z?e@dd��ZAe@dd��ZBe@dd��ZCe@d d!��ZDe@d"d#��ZEd$d%�ZFdS)B�Diskz
    Represents a disk.
    r9r>r0r�������	�3�4�5�6��
���
N�c

Csl||_||_||_||_||_||_||_||_|	rPtj	|	�rPt
tjd|	��|	|_
|
|_||_||_dS)Nz^Incorrect format of VPD 0x83 NAA(3) string: '%s', expecting 32 or 16 lower case hex characters)�_id�_name�
_disk_type�_block_size�_num_of_blocks�_status�
_system_id�_plugin_data�Volume�vpd83_verifyrr�INVALID_ARGUMENT�_vpd83�	_location�_rpm�
_link_type)
rrQrRrSrTrUrVrWrXr\r]r^r_rrr�__init__�s z
Disk.__init__cCs|j|jS)z%
        Disk size in bytes.
        )r<r=)rrrr�
size_bytesszDisk.size_bytescCs|jdkrttjd��|jS)z�
        String. SCSI VPD83 ID. New in version 1.3.
        Only available for DAS(direct attached storage) systems.
        The VPD83 ID could be used in 'lsm.SCSI.disk_paths_of_vpd83()'
        when physical disk is exposed to OS directly.
        rPz5Disk.vpd83 is not supported by current disk or plugin)r\rr�
NO_SUPPORT)rrrr�vpd83s

z
Disk.vpd83cCs|jdkrttjd��|jS)zP
        String. Disk location in storage topology. New in version 1.3.
        rPz:Disk.location property is not supported by this plugin yet)r]rrrb)rrrr�location&s
z
Disk.locationcCs|jtjkrttjd��|jS)a�
        Integer. New in version 1.3.
        Disk rotation speed - revolutions per minute(RPM):
            -1 (LSM_DISK_RPM_UNKNOWN):
                Unknown RPM
             0 (LSM_DISK_RPM_NON_ROTATING_MEDIUM):
                Non-rotating medium (e.g., SSD)
             1 (LSM_DISK_RPM_ROTATING_UNKNOWN_SPEED):
                Rotational disk with unknown speed
            >1:
                Normal rotational disk (e.g., HDD)
        z,Disk.rpm is not supported by this plugin yet)r^r?�RPM_NO_SUPPORTrrrb)rrrr�rpm1szDisk.rpmcCs|jtjkrttjd��|jS)a
        Integer. New in version 1.3.
        Link type, possible values are:
            lsm.Disk.LINK_TYPE_UNKNOWN
                Failed to detect link type
            lsm.Disk.LINK_TYPE_FC
                Fibre Channel
            lsm.Disk.LINK_TYPE_SSA
                Serial Storage Architecture, Old IBM tech.
            lsm.Disk.LINK_TYPE_SBP
                Serial Bus Protocol, used by IEEE 1394.
            lsm.Disk.LINK_TYPE_SRP
                SCSI RDMA Protocol
            lsm.Disk.LINK_TYPE_ISCSI
                Internet Small Computer System Interface
            lsm.Disk.LINK_TYPE_SAS
                Serial Attached SCSI
            lsm.Disk.LINK_TYPE_ADT
                Automation/Drive Interface Transport
                Protocol, often used by Tape.
            lsm.Disk.LINK_TYPE_ATA
                PATA/IDE or SATA.
            lsm.Disk.LINK_TYPE_USB
                USB disk.
            lsm.Disk.LINK_TYPE_SOP
                SCSI over PCI-E
            lsm.Disk.LINK_TYPE_PCIE
                PCI-E, e.g. NVMe
        z2Disk.link_type is not supported by this plugin yet)r_r?�LINK_TYPE_NO_SUPPORTrrrb)rrrr�	link_typeDszDisk.link_typecCs|jS)N)r;)rrrrr8iszDisk.__str__���rir0rKrArE�� �@��iiiii ���rirorir0rKrArErjrkrlri)Grrrr�SUPPORTED_SEARCH_KEYSZBLOCK_COUNT_NOT_FOUNDZBLOCK_SIZE_NOT_FOUND�TYPE_UNKNOWN�
TYPE_OTHERZTYPE_ATAZ	TYPE_SATAZTYPE_SAS�TYPE_FCZTYPE_SOPZ	TYPE_SCSIZTYPE_LUNZTYPE_NL_SASZTYPE_HDDZTYPE_SSDZTYPE_HYBRID�STATUS_UNKNOWN�	STATUS_OK�STATUS_OTHER�STATUS_PREDICTIVE_FAILURE�STATUS_ERRORZSTATUS_REMOVEDZSTATUS_STARTINGZSTATUS_STOPPING�STATUS_STOPPED�STATUS_INITIALIZINGZSTATUS_MAINTENANCE_MODEZSTATUS_SPARE_DISKZSTATUS_RECONSTRUCTZSTATUS_FREEreZRPM_UNKNOWNZRPM_NON_ROTATING_MEDIUMZRPM_ROTATING_UNKNOWN_SPEEDrgZLINK_TYPE_UNKNOWNZLINK_TYPE_FCZ
LINK_TYPE_SSAZ
LINK_TYPE_SBPZ
LINK_TYPE_SRPZLINK_TYPE_ISCSIZ
LINK_TYPE_SASZ
LINK_TYPE_ADTZ
LINK_TYPE_ATAZ
LINK_TYPE_USBZ
LINK_TYPE_SOPZLINK_TYPE_PCIEZLED_STATUS_UNKNOWNZLED_STATUS_IDENT_ONZLED_STATUS_IDENT_OFFZLED_STATUS_IDENT_UNKNOWNZLED_STATUS_FAULT_ONZLED_STATUS_FAULT_OFFZLED_STATUS_FAULT_UNKNOWNZLINK_SPEED_UNKNOWNZHEALTH_STATUS_UNKNOWNZHEALTH_STATUS_FAILZHEALTH_STATUS_WARNZHEALTH_STATUS_GOODr`�propertyrarcrdrfrhr8rrrrr?�s�	%r?z*(?:^6[0-9a-f]{31})|(?:^[235][0-9a-f]{15})$zUser given namercz"Vital product page 0x83 identifierzVolume block sizezNumber of blocksZadmin_statez$Enabled or disabled by administrator�pool_idzPool identifierc@seZdZdZdddgZdZdZdZdZd	Z	d Z
dZdZdZ
d
ZdZd!Zd
ZdZdZdZd	ZdZdZd
ZdZdZdZdZdZdZdZdZ d
Z!d
Z"d
Z#d
Z$d
Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6d"dd�Z7e8dd��Z9dd�Z:e;dd��Z<dS)#rYz
    Represents a volume.
    r9r>r|r0rKr@rArBrrCrL�rj�2�<rG�=���Nc

CsZ||_||_|r,tj|�r,ttjd|��||_||_||_	||_
||_||_|	|_
dS)Nz^Incorrect format of VPD 0x83 NAA(3) string: '%s', expecting 32 or 16 lower case hex characters)rQrRrYrZrrr[r\rTrU�_admin_staterW�_pool_idrX)
rrQrRr\rTrUr�rWr�rXrrrr`�szVolume.__init__cCs|j|jS)z'
        Volume size in bytes.
        )r<r=)rrrrra�szVolume.size_bytescCs|jS)N)r;)rrrrr8�szVolume.__str__cCs|rtj|�rdSdS)zI
        Returns True if string is valid vpd 0x83 representation
        TF)�_vol_regex_vpd83r/)ZvpdrrrrZ�szVolume.vpd83_verifyririri)N)=rrrrrpZREPLICATE_UNKNOWNZREPLICATE_CLONEZREPLICATE_COPYZREPLICATE_MIRROR_SYNCZREPLICATE_MIRROR_ASYNCZPROVISION_UNKNOWNZPROVISION_THINZPROVISION_FULLZPROVISION_DEFAULTZADMIN_STATE_DISABLEDZADMIN_STATE_ENABLEDZRAID_TYPE_UNKNOWNZRAID_TYPE_RAID0ZRAID_TYPE_RAID1ZRAID_TYPE_RAID3ZRAID_TYPE_RAID4ZRAID_TYPE_RAID5ZRAID_TYPE_RAID6ZRAID_TYPE_RAID10ZRAID_TYPE_RAID15ZRAID_TYPE_RAID16ZRAID_TYPE_RAID50ZRAID_TYPE_RAID60ZRAID_TYPE_RAID51ZRAID_TYPE_RAID61ZRAID_TYPE_JBODZRAID_TYPE_MIXEDZRAID_TYPE_OTHERZSTRIP_SIZE_UNKNOWNZDISK_COUNT_UNKNOWNZMIN_IO_SIZE_UNKNOWNZOPT_IO_SIZE_UNKNOWNZVCR_STRIP_SIZE_DEFAULTZWRITE_CACHE_POLICY_UNKNOWNZWRITE_CACHE_POLICY_WRITE_BACKZWRITE_CACHE_POLICY_AUTOZ WRITE_CACHE_POLICY_WRITE_THROUGHZWRITE_CACHE_STATUS_UNKNOWNZWRITE_CACHE_STATUS_WRITE_BACKZ WRITE_CACHE_STATUS_WRITE_THROUGHZREAD_CACHE_POLICY_UNKNOWNZREAD_CACHE_POLICY_ENABLEDZREAD_CACHE_POLICY_DISABLEDZREAD_CACHE_STATUS_UNKNOWNZREAD_CACHE_STATUS_ENABLEDZREAD_CACHE_STATUS_DISABLEDZPHYSICAL_DISK_CACHE_UNKNOWNZPHYSICAL_DISK_CACHE_ENABLEDZPHYSICAL_DISK_CACHE_DISABLEDZ$PHYSICAL_DISK_CACHE_USE_DISK_SETTINGr`r{rar8r.rZrrrrrYrsp

rYzUser defined system namezEnumerated status of systemZstatus_infoz#Detail status information of systemc@sjeZdZdZdZdZdZdZdZdZ	dZ
dZdZdZ
dZdd	d
�Zedd��Zed
d��Zedd��ZdS)�Systemr0rrKr@rArBNrPc		CsX||_||_||_||_||_||_|dkr6tj|_n||_|dkrNtj	|_
n||_
dS)N)rQrRrV�_status_inforX�_fw_versionr��READ_CACHE_PCT_NO_SUPPORT�_read_cache_pct�MODE_NO_SUPPORT�_mode)	rrQrRrVr�rXr�r�r�rrrr`s

zSystem.__init__cCs|jdkrttjd��|jS)z�
        String. Firmware version string. New in version 1.3.
        On some system, it might contain multiple version strings, example:
            "Package: 23.32.0-0009, FW: 3.440.05-3712"
        rPz7System.fw_version() is not supported by this plugin yet)r�rrrb)rrrr�
fw_versions
zSystem.fw_versioncCs|jtjkrttjd��|jS)aQ
        Integer(enumerated value). System mode. New in version 1.3.
        Only available for HW RAID systems at this time.
        Possible values:
            * lsm.System.MODE_HARDWARE_RAID
                The logical volume(aka, RAIDed virtual disk) can be exposed
                to OS  while hardware RAID card is handling the RAID
                algorithm. Physical disk can not be exposed to OS directly.

            * lsm.System.MODE_HBA
                The physical disks can be exposed to OS directly.
                SCSI enclosure service might be exposed to OS also.
        z/System.mode is not supported by this plugin yet)r�r�r�rrrb)rrrr�mode)szSystem.modecCs|jtjkrttjd��|jS)z�
        Integer. Read cache percentage. New in version 1.3.
        Possible values:
            * 0-100
                The read cache percentage. The write cache percentage will
                then be 100 - read_cache_pct
        z9System.read_cache_pct is not supported by this plugin yet)r�r�r�rrrb)rrrr�read_cache_pct=s	zSystem.read_cache_pctr0rKrArErjrkrorirori)NrPNN)rrrrtrurx�STATUS_DEGRADEDrwrvr�ZMODE_UNKNOWNZMODE_HARDWARE_RAIDZMODE_HBAr�ZREAD_CACHE_PCT_UNKNOWNr`r{r�r�r�rrrrr��s"

r�zUser supplied nameZtotal_spacezTotal space in bytesZ
free_spacezFree space in byteszText explaining statuszPlug-in private dataZelement_typezWhat pool can be used forZunsupported_actionsz"What cannot be done with this poolc@s�eZdZdZddgZdZdZdZdZdZ	dZ
dZdZdZ
dZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(ZdZdZdZdZd)dd�ZdS)*�Poolz#
    Pool specific information
    r9r>r0rKr@rArBrCrLrrFrNrO�r}NcCs@||_||_||_||_||_||_||_||_|	|_|
|_	dS)N)
rQrR�
_element_type�_unsupported_actions�_total_space�_free_spacerVr�rWrX)rrQrRr�r�r�r�rVr�rWrXrrrr`�sz
Pool.__init__ririrKrArErjrkrlir0rKr0rKrArjrkiii i@i�)N)rrrrrpZTOTAL_SPACE_NOT_FOUNDZFREE_SPACE_NOT_FOUNDZELEMENT_TYPE_POOLZELEMENT_TYPE_VOLUMEZELEMENT_TYPE_FSZELEMENT_TYPE_DELTAZELEMENT_TYPE_VOLUME_FULLZELEMENT_TYPE_VOLUME_THINZELEMENT_TYPE_SYS_RESERVEDZUNSUPPORTED_VOLUME_GROWZUNSUPPORTED_VOLUME_SHRINKrtrurvr�rxryZSTATUS_RECONSTRUCTINGZSTATUS_VERIFYINGrzZSTATUS_GROWINGZMEMBER_TYPE_UNKNOWNZMEMBER_TYPE_OTHERZMEMBER_TYPE_DISKZMEMBER_TYPE_POOLr`rrrrr�Ms8r�zFile system namezFree space availablez$What pool the file system resides onz	System IDc@s eZdZdddgZddd�ZdS)�
FileSystemr9r>r|NcCs.||_||_||_||_||_||_||_dS)N)rQrRr�r�r�rWrX)rrQrRr�r�r�rWrXrrrr`�szFileSystem.__init__)N)rrrrpr`rrrrr��s
r�z
Snapshot nameZtsz#Time stamp the snapshot was createdc@seZdZddd�ZdS)�
FsSnapshotNcCs ||_||_t|�|_||_dS)N)rQrR�int�_tsrX)rrQrRr�rXrrrr`�s
zFsSnapshot.__init__)N)rrrr`rrrrr��sr��fs_idzFilesystem that is exportedZexport_pathzExport pathZauthzAuthentication type�rootz!List of hosts with no_root_squashZrwz*List of hosts with Read & Write privilegesZroz'List of hosts with Read only privilegesZanonuidzUID for anonymous user idZanongidzGID for anonymous group idZoptionsz"String containing advanced optionszPlugin private datac@s&eZdZddgZdZd	Zd
dd�ZdS)�	NfsExportr9r�r0rKNcCsF||_||_||_||_||_||_||_||_|	|_|
|_	||_
dS)N)rQ�_fs_id�_export_path�_auth�_root�_rw�_ro�_anonuid�_anongid�_optionsrX)rrQr�r�r�r�r�r�r�r�r�rXrrrr`�szNfsExport.__init__riro)N)rrrrpZANON_UID_GID_NAZANON_UID_GID_ERRORr`rrrrr��sr�Z	src_blockzSource logical block addressZ
dest_blockz!Destination logical block addressZblock_countc@seZdZdd�ZdS)�
BlockRangecCs||_||_||_dS)N)�
_src_block�_dest_block�_block_count)rr�r�r�rrrr`�szBlockRange.__init__N)rrrr`rrrrr��sr�zUnique instance identifierzAccess group name�init_idszList of initiator IDs�	init_typezInitiator typec@sheZdZddgZdZdZdZdZdZdd	d
�Z	e
dd��Zej
d
ej�Ze
ddd��Ze
ddd��ZdS)�AccessGroupr9r>rr0rKrBrDNcCs.||_||_tj|�|_||_||_||_dS)N)rQrRr��_standardize_init_list�	_init_ids�
_init_typerWrX)rrQrRr�r�rWrXrrrr`�szAccessGroup.__init__cCsFg}x<|D]4}tj|�\}}}|r.|j|�q
ttjd|��q
W|S)NzInvalid initiator ID %s)r��initiator_id_verifyr#rrr[)r�r�iZvalidr��init_idrrrr��s
z"AccessGroup._standardize_init_listzR
        ^(0x|0X)?([0-9A-Fa-f]{2})
        (([\.:\-])?[0-9A-Fa-f]{2}){7}$
        FcCs�|jd�s|jd�s|jd�r<|dks0|tjkr<dtj|fStjjt|��rp|dks^|tjkrpdtjtj|�fS|r�tt	j
d|��dS)	a�
        Public method which can be used to verify an initiator id
        :param init_id:
        :param init_type:
        :param raise_exception: Will throw a LsmError INVALID_ARGUMENT if
                                not a valid initiator address
        :return:(Bool, init_type, init_id)  Note: init_id will be returned in
                normalized format if it's a WWPN
        ZiqnZeuiZnaaNTzInitiator id '%s' is invalidF)FNN)�
startswithr��INIT_TYPE_ISCSI_IQN�_regex_wwpnr/r
�INIT_TYPE_WWPN�_wwpn_to_lsm_typerrr[)r�r�Zraise_exceptionrrrr�s



zAccessGroup.initiator_id_verifyTcCsjtjjt|��rRt|�}|j�}tjdd|�}tjdd|�}djtjd|��}|S|rft	t
jd|��dS)a�
        Convert provided WWPN string into LSM standard one:

        LSM WWPN format:
            ^(?:[0-9a-f]{2}:){7}[0-9a-f]{2}$
        LSM WWPN Example:
           10:00:00:00:c9:95:2f:de

        Acceptable WWPN format is:
            ^[0x|0X]{0,1}(:?[0-9A-Fa-f]{2}[\.\-:]{0,1}){7}[0-9A-Fa-f]{2}$
        Acceptable WWPN example:
           10:00:00:00:c9:95:2f:de
           10:00:00:00:C9:95:2F:DE
           10-00-00-00-C9-95-2F-DE
           10-00-00-00-c9-95-2f-de
           10.00.00.00.C9.95.2F.DE
           10.00.00.00.c9.95.2f.de
           0x10000000c9952fde
           0X10000000C9952FDE
           10000000c9952fde
           10000000C9952FDE
        Return the LSM WWPN
        Return None if raise_error is False and not a valid WWPN.
        Z0xrPz	[^0-9a-f]�:z..zInvalid WWPN Initiator: %sN)r�r�r/r
�lower�re�sub�join�findallrrr[)ZwwpnZraise_error�srrrr�+s
zAccessGroup._wwpn_to_lsm_type)N)NF)T)rrrrpZINIT_TYPE_UNKNOWNZINIT_TYPE_OTHERr�r�ZINIT_TYPE_ISCSI_WWPN_MIXEDr`r.r�r��compile�Xr�r�r�rrrrr��s



r�Z	port_typezTarget port typeZservice_addresszTarget port service addressZnetwork_addresszTarget port network addressZphysical_addresszTarget port physical addressZ
physical_namezTarget port physical port namec@s.eZdZddgZdZdZdZdZd
dd	�ZdS)�
TargetPortr9r>r0rKr@rANc		Cs4||_||_||_||_||_||_||_||_dS)N)rQ�
_port_type�_service_address�_network_address�_physical_address�_physical_namerWrX)	rrQr�r�r�r�r�rWrXrrrr`bszTargetPort.__init__)N)	rrrrprrrsZ	TYPE_FCOEZ
TYPE_ISCSIr`rrrrr�Rs	r�c@s�eZdZdZdZdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!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.d,Z/d-Z0d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTdRZUdSZVdTZWdUdV�ZXdgdXdY�ZYdZd[�ZZd\d]�Z[e\d^d_��Z]dhdadb�Z^efdcdd�Z_dedf�Z`dWS)i�Capabilitiesrr0ir�r�r�����������!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0rIrJ�7�8�9�:�;rr��>�?rl�A�B�d�e�f�g�h�i�j�k�m�n�o�p�q�r�x�y�z�{�|��������������������������������cCs |jjdjdd�|jD��d�S)NrPcSsg|]}d|�qS)z%02xr)�.0�brrr�
<listcomp>�sz)Capabilities._to_dict.<locals>.<listcomp>)rZcap)r1rr��_cap)rrrrr�szCapabilities._to_dictNcCs*|dk	rttj|��|_nttj�|_dS)N)�	bytearray�binasciiZ	unhexlifyrr��_NUM)rrrrrr`�szCapabilities.__init__cCs|j|�tjkS)N)�getr��	SUPPORTED)r�
capabilityrrr�	supported�szCapabilities.supportedcCs|t|j�krtjS|j|S)N)�lenrr��UNSUPPORTED)rrrrrrszCapabilities.getcCsnt�}xbttjj��D]P\}}t|tj�rt|�t	kr|ddkrtj
|koXtjknr|||<qW|S)zc
        Return a dict containing all valid capability:
            integer => string name
        rr4)r%r"r�r2rr
�sixZstring_typesrr��_CAP_NUM_BEGINr)Zlsm_cap_to_str_convZc_strZc_intrrr�_lsm_cap_to_str_dictsz!Capabilities._lsm_cap_to_str_dictFcCsRtj�}|r|Si}x8t|j��D](}|j|tjkr"||kr"||||<q"W|S)za
        Returns a hash of the supported capabilities in the form
        constant, name
        )r�r"r"�keysrr)rZall_capZall_capsrr�rrr�
get_supportedszCapabilities.get_supportedcCs||j|<dS)N)r)rrr)rrr�set&szCapabilities.setcCs(x"tt|j��D]}tj|j|<qWdS)N)�rangerrr�r)rr�rrr�
enable_all)szCapabilities.enable_all)N)F)arrrrrrr!ZVOLUMESZ
VOLUME_CREATEZ
VOLUME_RESIZEZVOLUME_REPLICATEZVOLUME_REPLICATE_CLONEZVOLUME_REPLICATE_COPYZVOLUME_REPLICATE_MIRROR_ASYNCZVOLUME_REPLICATE_MIRROR_SYNCZVOLUME_COPY_RANGE_BLOCK_SIZEZVOLUME_COPY_RANGEZVOLUME_COPY_RANGE_CLONEZVOLUME_COPY_RANGE_COPYZ
VOLUME_DELETEZ
VOLUME_ENABLEZVOLUME_DISABLEZVOLUME_MASKZ
VOLUME_UNMASKZ
ACCESS_GROUPSZACCESS_GROUP_CREATE_WWPNZACCESS_GROUP_DELETEZACCESS_GROUP_INITIATOR_ADD_WWPNZACCESS_GROUP_INITIATOR_DELETEZ"VOLUMES_ACCESSIBLE_BY_ACCESS_GROUPZACCESS_GROUPS_GRANTED_TO_VOLUMEZVOLUME_CHILD_DEPENDENCYZVOLUME_CHILD_DEPENDENCY_RMZACCESS_GROUP_CREATE_ISCSI_IQNZ$ACCESS_GROUP_INITIATOR_ADD_ISCSI_IQNZ VOLUME_ISCSI_CHAP_AUTHENTICATIONZVOLUME_RAID_INFOZVOLUME_THINZ	BATTERIESZVOLUME_CACHE_INFOZ!VOLUME_PHYSICAL_DISK_CACHE_UPDATEZ.VOLUME_PHYSICAL_DISK_CACHE_UPDATE_SYSTEM_LEVELZ+VOLUME_WRITE_CACHE_POLICY_UPDATE_WRITE_BACKZ%VOLUME_WRITE_CACHE_POLICY_UPDATE_AUTOZ.VOLUME_WRITE_CACHE_POLICY_UPDATE_WRITE_THROUGHZ,VOLUME_WRITE_CACHE_POLICY_UPDATE_IMPACT_READZ0VOLUME_WRITE_CACHE_POLICY_UPDATE_WB_IMPACT_OTHERZVOLUME_READ_CACHE_POLICY_UPDATEZ,VOLUME_READ_CACHE_POLICY_UPDATE_IMPACT_WRITEZFSZ	FS_DELETEZ	FS_RESIZEZ	FS_CREATEZFS_CLONEZ
FILE_CLONEZFS_SNAPSHOTSZFS_SNAPSHOT_CREATEZFS_SNAPSHOT_DELETEZFS_SNAPSHOT_RESTOREZ"FS_SNAPSHOT_RESTORE_SPECIFIC_FILESZFS_CHILD_DEPENDENCYZFS_CHILD_DEPENDENCY_RMZ%FS_CHILD_DEPENDENCY_RM_SPECIFIC_FILESZEXPORT_AUTHZEXPORTSZ	EXPORT_FSZ
EXPORT_REMOVEZEXPORT_CUSTOM_PATHZSYS_READ_CACHE_PCT_UPDATEZSYS_READ_CACHE_PCT_GETZSYS_FW_VERSION_GETZSYS_MODE_GETZ
DISK_LOCATIONZDISK_RPMZDISK_LINK_TYPEZ
VOLUME_LEDZPOOLS_QUICK_SEARCHZVOLUMES_QUICK_SEARCHZDISKS_QUICK_SEARCHZACCESS_GROUPS_QUICK_SEARCHZFS_QUICK_SEARCHZNFS_EXPORTS_QUICK_SEARCHZTARGET_PORTSZTARGET_PORTS_QUICK_SEARCHZDISKSZPOOL_MEMBER_INFOZVOLUME_RAID_CREATEZDISK_VPD83_GETrr`rrr.r"r$r%r'rrrrr��s�

r�rzCache hardware typezBattery statusc@sNeZdZddgZdZdZdZdZdZdZ	dZ
dZdZdZ
dZdZddd
�ZdS)�Batteryr9r>r0rKr@rArrBrCrDNcCs(||_||_||_||_||_||_dS)N)rQrR�_typerVrWrX)rrQrRr)rVrWrXrrrr`EszBattery.__init__r0rKrArErjrkrlrm)N)rrrrprqrrZ
TYPE_CHEMICALZTYPE_CAPACITORrtrvruZSTATUS_DISCHARGINGZSTATUS_CHARGINGZSTATUS_LEARNINGr�rxr`rrrrr(.sr(�__main__)&�abcrZ_ABCMetar�rr rZ
simplejsonr+�ImportErrorZjson.decoderrZlsm._commonrrrrZJSONEncoderr	ZJSONDecoderr�objectrr?r�r�rYr�r�r�r�r�r�r�r�r�r(rrrrr�<module>s�31






S








{



R








<








	
















j






*+







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