403Webshell
Server IP : 104.21.21.239  /  Your IP : 216.73.216.55
Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.7
System : Linux ip-172-31-69-123.ec2.internal 6.1.177-224.371.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jul 27 20:28:29 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib64/python3.9/site-packages/lsm/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib64/python3.9/site-packages/lsm/__pycache__/_data.cpython-39.pyc
a

�Mb���@s*ddlmZddlZddlZddlmZzddlZWne	yNddlZYn0ddl
mZddlm
Z
mZmZmZddlZGdd�dej�ZGdd	�d	ej�ZGd
d�deee��Zedd
d�eddd�eddd�eddd�eddd�eddd�eddd�eddd�Gdd�de���������Ze�d�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|��SdS)Nzincorrect class type:)�
isinstance�IData�
ValueError�str�type�_to_dict)�selfZmy_class�r�//usr/lib64/python3.9/site-packages/lsm/_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|vrt�|�}n |��D]\}}t�|�||<q |S)z(
        Processes a dictionary
        �class)r�_factory�itemsr�_DataDecoder__decode)�d�rc�k�vrrrZ__process_dict4szDataDecoder.__process_dictcCs`g}t|�D]N\}}t|�tur2|�t�|��qt|�turP|�t�|��q|�|�q|S)z"
        Processes a list
        )�	enumerater�list�appendr�_DataDecoder__process_list�dict�_DataDecoder__process_dict)�lr�elem�valuerrrZ__process_listCszDataDecoder.__process_listcCs4t|�turt�|�St|�tur,t�|�S|SdS)z)
        Decodes the parsed json
        N)rr%rr&r"r$)�errrZ__decodeRs


zDataDecoder.__decodecCst�t�|��S�N)rr�json�loads)rZjson_stringZ_wrrr�decode^szDataDecoder.decodeN)rrrr�staticmethodr&r$rr�matchr.rrrrr0s


rc@s,eZdZdZdd�Zedd��Zdd�ZdS)	rz?
    Base class functionality of serializable
    classes.
    cCsXd|jji}t|j���D]8\}}t|t�rB|��||dd�<q|||dd�<q|S)z5
        Represent the class as a dictionary
        r�N)�	__class__rr"�__dict__rr
rr)rrrr rrrrgs
zIData._to_dictcCs�d|vr�|d}|d=ttd|�}t|���D]F\}}t|t�rfd|vrft�|�|��|d|<q2|�|�|d|<q2|fi|��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 rrrrwszIData._factorycCst|���S)z7
        Used for human string representation.
        )r
r�rrrr�__str__�sz
IData.__str__N)rrrrrr/rr:rrrrrbs

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@sXeZdZdZddgZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+d	Z,d
Z-dZ.dZ/d
Z0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>d d!d!e"e&fd"d#�Z?e@d$d%��ZAe@d&d'��ZBe@d(d)��ZCe@d*d+��ZDe@d,d-��ZEd.d/�ZFd S)0�Diskz
    Represents a disk.
    r;r@���rr1�������	�3�4�5�6��� �@����i�� ����
�N�c

Csj||_||_||_||_||_||_||_||_|	rNt�	|	�sNt
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)
rr]r^r_r`rarbrcrdrhrirjrkrrr�__init__�s&
��z
Disk.__init__cCs|j|jS)z%
        Disk size in bytes.
        �r>r?r9rrr�
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.
        r[z5Disk.vpd83 is not supported by current disk or plugin)rhrr�
NO_SUPPORTr9rrr�vpd83s
�z
Disk.vpd83cCs|jdkrttjd��|jS)zP
        String. Disk location in storage topology. New in version 1.3.
        r[z:Disk.location property is not supported by this plugin yet)rirrror9rrr�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)rjrA�RPM_NO_SUPPORTrrror9rrr�rpm8s
�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)rkrA�LINK_TYPE_NO_SUPPORTrrror9rrr�	link_typeKs�zDisk.link_typecCs|jSr+�r=r9rrrr:qszDisk.__str__)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_FREErrZRPM_UNKNOWNZRPM_NON_ROTATING_MEDIUMZRPM_ROTATING_UNKNOWN_SPEEDrtZLINK_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_GOODrl�propertyrnrprqrsrur:rrrrrA�s�		
�





%rAz*(?:^6[0-9a-f]{31})|(?:^[235][0-9a-f]{15})$zUser given namerpz"Vital product page 0x83 identifierzVolume block sizezNumber of blocksZadmin_statez$Enabled or disabled by administrator�pool_idzPool identifierc@s
eZdZdZgd�ZdZdZdZdZdZ	dZ
dZdZdZ
d	ZdZdZd	ZdZdZdZdZd
ZdZdZd
ZdZdZdZdZdZdZdZ d	Z!d	Z"d	Z#d	Z$d	Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6ddd�Z7e8dd��Z9dd�Z:e;dd��Z<dS)rez
    Represents a volume.
    �r;r@r�rBrNrCrDrEr1rrFrY�rO�2�<rJ�=���Nc

CsX||_||_|r*t�|�s*ttjd|��||_||_||_	||_
||_||_|	|_
dSr\)r]r^rerfrrrgrhr`ra�_admin_staterc�_pool_idrd)
rr]r^rhr`rar�rcr�rdrrrrl�s 
��zVolume.__init__cCs|j|jS)z'
        Volume size in bytes.
        rmr9rrrrn�szVolume.size_bytescCs|jSr+rvr9rrrr:�szVolume.__str__cCs|rt�|�rdSdS)zI
        Returns True if string is valid vpd 0x83 representation
        TF)�_vol_regex_vpd83r0)Zvpdrrrrf�szVolume.vpd83_verify)N)=rrrrrwZREPLICATE_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_SETTINGrlr�rnr:r/rfrrrrrezsv
�

rezUser defined system namezEnumerated status of systemZstatus_infoz#Detail status information of systemc@sjeZdZdZdZdZdZdZdZdZ	dZ
d	ZdZdZ
dZddd
�Zedd��Zedd��Zedd��Zd
S)�Systemr1rNrDrHrOrPrXrBrNr[c		CsX||_||_||_||_||_||_|dur6tj|_n||_|durNtj	|_
n||_
dSr+)r]r^rb�_status_inford�_fw_versionr��READ_CACHE_PCT_NO_SUPPORT�_read_cache_pct�MODE_NO_SUPPORT�_mode)	rr]r^rbr�rdr�r�r�rrrrls	

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"
        r[z7System.fw_version() is not supported by this plugin yet)r�rrror9rrr�
fw_version3s
�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�rrror9rrr�modeAs
�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�rrror9rrr�read_cache_pctUs	�zSystem.read_cache_pct)Nr[NN)rrrr{r|r�STATUS_DEGRADEDr~r}r�ZMODE_UNKNOWNZMODE_HARDWARE_RAIDZMODE_HBAr�ZREAD_CACHE_PCT_UNKNOWNrlr�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
d	Zd
ZdZ
dZdZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZddd�ZdS)�Poolz#
    Pool specific information
    r;r@rBrNrDrHrOrPrQrUr1rTrVrWi@i�rrCNcCs@||_||_||_||_||_||_||_||_|	|_|
|_	dSr+)
r]r^�
_element_type�_unsupported_actions�_total_space�_free_spacerbr�rcrd)rr]r^r�r�r�r�rbr�rcrdrrrrl�sz
Pool.__init__)N)rrrrrwZTOTAL_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_SHRINKr{r|r}r�rr�ZSTATUS_RECONSTRUCTINGZSTATUS_VERIFYINGr�ZSTATUS_GROWINGZMEMBER_TYPE_UNKNOWNZMEMBER_TYPE_OTHERZMEMBER_TYPE_DISKZMEMBER_TYPE_POOLrlrrrrr�fs:�r�zFile system namezFree space availablez$What pool the file system resides onz	System IDc@seZdZgd�Zddd�ZdS)�
FileSystemr�NcCs.||_||_||_||_||_||_||_dSr+)r]r^r�r�r�rcrd)rr]r^r�r�r�rcrdrrrrl�szFileSystem.__init__)N)rrrrwrlrrrrr��s	�r�z
Snapshot nameZtsz#Time stamp the snapshot was createdc@seZdZddd�ZdS)�
FsSnapshotNcCs ||_||_t|�|_||_dSr+)r]r^�int�_tsrd)rr]r^r�rdrrrrl�s
zFsSnapshot.__init__)N�rrrrlrrrrr��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 id�optionsz"String containing advanced optionszPlugin private datac@s&eZdZddgZdZdZddd�ZdS)	�	NfsExportr;r�rBrXNcCs^|dusJ�|dusJ�||_||_||_||_||_||_||_||_|	|_|
|_	||_
dSr+)r]�_fs_id�_export_path�_auth�_root�_rw�_ro�_anonuid�_anongid�_optionsrd)rr]r�r�r�r�r�r�r�r�r�rdrrrrl�szNfsExport.__init__)N)rrrrwZANON_UID_GID_NAZANON_UID_GID_ERRORrlrrrrr��s

�r�Z	src_blockzSource logical block addressZ
dest_blockz!Destination logical block addressZblock_countc@seZdZdd�ZdS)�
BlockRangecCs||_||_||_dSr+)�
_src_block�_dest_block�_block_count)rr�r�r�rrrrlszBlockRange.__init__Nr�rrrrr�sr�zUnique instance identifierzAccess group name�init_idszList of initiator IDs�	init_typezInitiator typec@sheZdZddgZdZdZdZdZdZdd	d
�Z	e
dd��Ze�
d
ej�Ze
ddd��Ze
ddd��ZdS)�AccessGroupr;r@rr1rNrErGNcCs.||_||_t�|�|_||_||_||_dSr+)r]r^r��_standardize_init_list�	_init_ids�
_init_typercrd)rr]r^r�r�rcrdrrrrl!szAccessGroup.__init__cCsBg}|D]4}t�|�\}}}|r,|�|�qttjd|��q|S)NzInvalid initiator ID %s)r��initiator_id_verifyr#rrrg)r�r�iZvalidr��init_idrrrr�1s�z"AccessGroup._standardize_init_listzR
        ^(0x|0X)?([0-9A-Fa-f]{2})
        (([\.:\-])?[0-9A-Fa-f]{2}){7}$
        FcCs�|�d�s|�d�s|�d�r<|dus0|tjkr<dtj|fStj�t|��rp|dus^|tjkrpdtjt�|�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 invalid)FNN)�
startswithr��INIT_TYPE_ISCSI_IQN�_regex_wwpnr0r
�INIT_TYPE_WWPN�_wwpn_to_lsm_typerrrg)r�r�Zraise_exceptionrrrr�Ds&�����zAccessGroup.initiator_id_verifyTcCsjtj�t|��rRt|�}|��}t�dd|�}t�dd|�}d�t�d|��}|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.
        Z0xr[z	[^0-9a-f]�:z..zInvalid WWPN Initiator: %sN)r�r�r0r
�lower�re�sub�join�findallrrrg)ZwwpnZraise_error�srrrr�as�zAccessGroup._wwpn_to_lsm_type)N)NF)T)rrrrwZINIT_TYPE_UNKNOWNZINIT_TYPE_OTHERr�r�ZINIT_TYPE_ISCSI_WWPN_MIXEDrlr/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)�
TargetPortr;r@r1rNrCrDNc		Cs4||_||_||_||_||_||_||_||_dSr+)r]�
_port_type�_service_address�_network_address�_physical_address�_physical_namercrd)	rr]r�r�r�r�r�rcrdrrrrl�s	zTargetPort.__init__)N)	rrrrwryrzZ	TYPE_FCOEZ
TYPE_ISCSIrlrrrrr��s	
�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�Capabilitiesrr1rTr�r�r�����������!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0rLrM�7�8�9�:�;r�r��>�?rQ�A�B�d�e�f�g�h�i�j�k�m�n�o�p�q�r�x�y�z�{�|��������������������������������cCs |jjd�dd�|jD��d�S)Nr[cSsg|]}d|�qS)z%02xr)�.0�brrr�
<listcomp>4�z)Capabilities._to_dict.<locals>.<listcomp>)rZcap)r2rr��_capr9rrrr1s�zCapabilities._to_dictNcCs*|durtt�|��|_nttj�|_dSr+)�	bytearray�binasciiZ	unhexlifyr r��_NUM)rr rrrrl7szCapabilities.__init__cCs|�|�tjkSr+)�getr��	SUPPORTED�r�
capabilityrrr�	supported=szCapabilities.supportedcCs|t|j�krtjS|j|Sr+)�lenr r��UNSUPPORTEDr&rrrr$@szCapabilities.getcCsjt�}ttj���D]P\}}t|tj�rt|�t	kr|ddkrtj
|krXtjkrnq|||<q|S)zc
        Return a dict containing all valid capability:
            integer => string name
        rr5)r%r"r�r3rr
�sixZstring_typesrr��_CAP_NUM_BEGINr#)Zlsm_cap_to_str_convZc_strZc_intrrr�_lsm_cap_to_str_dictEs
���

z!Capabilities._lsm_cap_to_str_dictFcCsNt��}|r|Si}t|���D](}|j|tjkr ||vr ||||<q |S)za
        Returns a hash of the supported capabilities in the form
        constant, name
        )r�r-r"�keysr r%)rZall_capZall_capsrr�rrr�
get_supportedSszCapabilities.get_supportedcCs||j|<dSr+)r )rr'r)rrr�setdszCapabilities.setcCs$tt|j��D]}tj|j|<qdSr+)�ranger)r r�r%)rr�rrr�
enable_allgszCapabilities.enable_all)N)F)arrrr*r%r#r,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_GETrrlr(r$r/r-r/r0r2rrrrr��s�


r�rzCache hardware typezBattery statusc@sNeZdZddgZdZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdd
d�ZdS)�Batteryr;r@r1rNrCrDrHrOrPrQrRNcCs(||_||_||_||_||_||_dSr+)r]r^�_typerbrcrd)rr]r^r4rbrcrdrrrrl�szBattery.__init__)N)rrrrwrxryZ
TYPE_CHEMICALZTYPE_CAPACITORr{r}r|ZSTATUS_DISCHARGINGZSTATUS_CHARGINGZSTATUS_LEARNINGr�rrlrrrrr3ls�r3�__main__)&�abcrZ_ABCMetar�r"r+rZ
simplejsonr,�ImportErrorZjson.decoderrZlsm._commonrrrrZJSONEncoderr	ZJSONDecoderr�objectrrAr�r�rer�r�r�r�r�r�r�r�r�r3rrrrr�<module>s�20







 ^









"




[








�$D





















&!








p







 0-





 


Youez - 2016 - github.com/yon3zu
LinuXploit