Uname: Linux server.digisquadtech.com 4.18.0-553.100.1.el8_10.x86_64 #1 SMP Mon Feb 2 04:13:33 EST 2026 x86_64
User: 1091 (madhavfluid)
Group: 1090 (madhavfluid)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//usr/lib64/python3.6/site-packages///lsm/__pycache__      ( Reset | Go to )
File Name: _data.cpython-36.opt-1.pyc
3
.'eǑ@s,ddlmZddlZddlZddlmZy ddlZWne    k
rPddlZYnXddl
m Z ddl m Z mZmZmZddlZGdddejZGdd    d    ejZGd
d d eeeZed d dedddedddedddedddedddedddedddGdddeZejdZed d dedd ded!d"dedd#dedd$ded%d&deddded'd(dedddGd)d*d*eZed d dedd+dedd,ded-d.dedddGd/d0d0eZed d dedd1ded2d3ded4d5deddded-d6dedddedd7ded8d9ded:d;dGd<d=d=eZed d dedd>ded2d3ded4d?ded'd@deddAdedddGdBdCdCeZed d deddDdedEdFdedddGdGdHdHeZed d dedIdJdedKdLdedMdNdedOdPdedQdRdedSdTdedUdVdedWdXdedYdZdedd[dGd\d]d]eZed^d_ded`dadedbd$dGdcddddeZ ed dededdfdedgdhdedidjdedddedd[dGdkdldleZ!ed dededmdndedodpdedqdrdedsdtdedudvdedddedd[dGdwdxdxeZ"GdydzdzeZ#ed d dedd ded{d|dedd}dedddedddGd~ddeZ$e%dkr(dS))ABCMetaN)with_metaclass)
WHITESPACE)    get_classdefault_property ErrorNumberLsmErrorc@seZdZdZddZdS) DataEncoderz?
    Custom json encoder for objects derived form ILsmData
    cCs,t|ts tdtt|n|jSdS)Nzincorrect class type:)
isinstanceIData
ValueErrorstrtype_to_dict)selfZmy_classr/usr/lib64/python3.6/_data.pydefault*s
zDataEncoder.defaultN)__name__
__module__ __qualname____doc__rrrrrr    %sr    c@sBeZdZdZeddZeddZeddZej    fdd    Z
d
S) DataDecoderz?
    Custom json decoder for objects derived from ILsmData
    cCs@i}d|krtj|}n$x"|jD]\}}tj|||<q"W|S)z(
        Processes a dictionary
        class)r _factoryitemsr_DataDecoder__decode)drckvrrrZ__process_dict6s  zDataDecoder.__process_dictcCsdg}xZt|D]N\}}t|tkr4|jtj|qt|tkrR|jtj|q|j|qW|S)z"
        Processes a list
        )    enumeraterlistappendr_DataDecoder__process_listdict_DataDecoder__process_dict)lrelemvaluerrrZ__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)rrjsonloads)rZ json_stringZ_wrrrdecode`szDataDecoder.decodeN) rrrr staticmethodr&r$rrmatchr-rrrrr1s
   rc@s,eZdZdZddZeddZddZdS)    r z?
    Base class functionality of serializable
    classes.
    cCs\d|jji}xJt|jjD]8\}}t|trD|j||dd<q|||dd<qW|S)z5
        Represent the class as a dictionary
        rN)    __class__rr"__dict__rr
r r)rrrr rrrrjs  
zIData._to_dictcCsd|kr|d}|d=ttd|}xVt|jD]F\}}t|trhd|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%r rpop)r
class_namecrr rrrrzszIData._factorycCs t|jS)z7
        Used for human string representation.
        )r r)rrrr__str__sz IData.__str__N)rrrrrr.rr8rrrrr ds r idzUnique identifier)docnamezDisk name (aka. vendor)Z    disk_typezEnumerated type of disk
block_sizezSize of each block num_of_blockszTotal number of blocksZstatuszEnumerated status    system_idzSystem identifierZ plugin_datazPrivate plugin datac@sXeZdZdZddgZd&Zd'ZdZdZdZ    dZ
dZ d    Z d
Z d Zd 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.d Z/d Z0dZ1dZ2d:Z3d;Z4d<Z5d=Z6d>Z7d?Z8d@Z9dZ:dAZ;dZ<dZ=dZ>ddde"e&fddZ?e@ddZAe@ddZBe@ddZCe@d d!ZDe@d"d#ZEd$d%ZFdS)BDiskz
    Represents a disk.
    r9r>r0r    3456
Nc Csl||_||_||_||_||_||_||_||_|    rPtj    |     rPt
t j 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_dataVolume vpd83_verifyrrINVALID_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)rrrrvpd83s

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)rrrrlocation&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)rrrrrpm1s 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)GrrrrSUPPORTED_SEARCH_KEYSZBLOCK_COUNT_NOT_FOUNDZBLOCK_SIZE_NOT_FOUND TYPE_UNKNOWN
TYPE_OTHERZTYPE_ATAZ    TYPE_SATAZTYPE_SASTYPE_FCZTYPE_SOPZ    TYPE_SCSIZTYPE_LUNZ TYPE_NL_SASZTYPE_HDDZTYPE_SSDZ TYPE_HYBRIDSTATUS_UNKNOWN    STATUS_OK STATUS_OTHERSTATUS_PREDICTIVE_FAILURE STATUS_ERRORZSTATUS_REMOVEDZSTATUS_STARTINGZSTATUS_STOPPINGSTATUS_STOPPEDSTATUS_INITIALIZINGZSTATUS_MAINTENANCE_MODEZSTATUS_SPARE_DISKZSTATUS_RECONSTRUCTZ STATUS_FREEreZ RPM_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 blocksZ admin_statez$Enabled or disabled by administratorpool_idzPool identifierc@s eZdZdZdddgZdZdZdZdZd    Z    d Z
dZ dZ dZ d
ZdZd!Zd
ZdZdZdZd    Zd Zd Zd ZdZdZdZdZdZdZdZdZ d
Z!d
Z"d
Z#d
Z$d
Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6d"ddZ7e8ddZ9ddZ:e;ddZ<dS)#rYz
    Represents a volume.
    r9r>r|r0rKr@rArBrrCrLrj2<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\rTrUrrWrrXrrrr`szVolume.__init__cCs |j|jS)z'
        Volume size in bytes.
        )r<r=)rrrrraszVolume.size_bytescCs|jS)N)r;)rrrrr8szVolume.__str__cCs|rtj|rdSdS)zI
        Returns True if string is valid vpd 0x83 representation
        TF)_vol_regex_vpd83r/)ZvpdrrrrZszVolume.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 systemZ status_infoz#Detail status information of systemc@sjeZdZdZdZdZdZdZdZdZ    dZ
dZ dZ dZ dZdd    d
Zed d Zed dZeddZdS)Systemr0rrKr@rArBNrPc        CsX||_||_||_||_||_||_|dkr6tj|_n||_|dkrNtj    |_
n||_
dS)N) rQrRrV _status_inforX _fw_versionrREAD_CACHE_PCT_NO_SUPPORT_read_cache_pctMODE_NO_SUPPORT_mode)    rrQrRrVrrXrrrrrrr` 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)rrrrb)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)rrrrrrb)rrrrmode)s z System.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)rrrrrrb)rrrrread_cache_pct=s     zSystem.read_cache_pctr0rKrArErjrkrorirori)NrPNN)rrrrtrurxSTATUS_DEGRADEDrwrvrZ MODE_UNKNOWNZMODE_HARDWARE_RAIDZMODE_HBArZREAD_CACHE_PCT_UNKNOWNr`r{rrrrrrrrs"
 rzUser supplied nameZ total_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@seZdZdZddgZdZdZdZdZdZ    dZ
dZ dZ dZ dZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Zd ZdZdZdZd)ddZdS)*Poolz#
    Pool specific information
    r9r>r0rKr@rArBrCrLrrFrNrOr}Nc Cs@||_||_||_||_||_||_||_||_|    |_|
|_    dS)N)
rQrR _element_type_unsupported_actions _total_space _free_spacerVrrWrX) rrQrRrrrrrVrrWrXrrrr`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_SHRINKrtrurvrrxryZSTATUS_RECONSTRUCTINGZSTATUS_VERIFYINGrzZSTATUS_GROWINGZMEMBER_TYPE_UNKNOWNZMEMBER_TYPE_OTHERZMEMBER_TYPE_DISKZMEMBER_TYPE_POOLr`rrrrrMs8rzFile system namezFree space availablez$What pool the file system resides onz    System IDc@s eZdZdddgZdddZdS)
FileSystemr9r>r|NcCs.||_||_||_||_||_||_||_dS)N)rQrRrrrrWrX)rrQrRrrrrWrXrrrr`szFileSystem.__init__)N)rrrrpr`rrrrrs
rz Snapshot nameZtsz#Time stamp the snapshot was createdc@seZdZdddZdS)
FsSnapshotNcCs ||_||_t||_||_dS)N)rQrRint_tsrX)rrQrRrrXrrrr`s
zFsSnapshot.__init__)N)rrrr`rrrrrsrfs_idzFilesystem that is exportedZ export_pathz Export pathZauthzAuthentication typerootz!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
ddZdS)     NfsExportr9rr0rKNc CsF||_||_||_||_||_||_||_||_|    |_|
|_    | |_
dS)N) rQ_fs_id _export_path_auth_root_rw_ro_anonuid_anongid_optionsrX) rrQrrrrrrrrrrXrrrr`szNfsExport.__init__riro)N)rrrrpZANON_UID_GID_NAZANON_UID_GID_ERRORr`rrrrrs rZ    src_blockzSource logical block addressZ
dest_blockz!Destination logical block addressZ block_countc@seZdZddZdS)
BlockRangecCs||_||_||_dS)N)
_src_block _dest_block _block_count)rrrrrrrr`szBlockRange.__init__N)rrrr`rrrrrsrzUnique instance identifierzAccess group nameinit_idszList of initiator IDs    init_typezInitiator typec@sheZdZddgZdZdZdZdZdZdd    d
Z    e
d d Z e j d e jZe
dddZe
dddZdS) AccessGroupr9r>rr0rKrBrDNcCs.||_||_tj||_||_||_||_dS)N)rQrRr_standardize_init_list    _init_ids
_init_typerWrX)rrQrRrrrWrXrrrr`s  zAccessGroup.__init__cCsFg}x<|D]4}tj|\}}}|r.|j|q
ttjd|q
W|S)NzInvalid initiator ID %s)rinitiator_id_verifyr#rrr[)rriZvalidrinit_idrrrrs
 z"AccessGroup._standardize_init_listzR
        ^(0x|0X)?([0-9A-Fa-f]{2})
        (([\.:\-])?[0-9A-Fa-f]{2}){7}$
        FcCs|jds|jds|jdr<|dks0|tjkr<dtj|fStjjt|rp|dks^|tjkrpdtjtj|fS|rtt    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)
startswithrINIT_TYPE_ISCSI_IQN _regex_wwpnr/r INIT_TYPE_WWPN_wwpn_to_lsm_typerrr[)rrZraise_exceptionrrrrs 

 
 
zAccessGroup.initiator_id_verifyTcCsjtjjt|rRt|}|j}tjdd|}tjdd|}djtjd|}|S|rft    t
j d|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) rrr/r lowerresubjoinfindallrrr[)ZwwpnZ raise_errorsrrrr+s
zAccessGroup._wwpn_to_lsm_type)N)NF)T)rrrrpZINIT_TYPE_UNKNOWNZINIT_TYPE_OTHERrrZINIT_TYPE_ISCSI_WWPN_MIXEDr`r.rrcompileXrrrrrrrrs


 rZ    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)    rrQrrrrrrWrXrrrr`bszTargetPort.__init__)N)    rrrrprrrsZ    TYPE_FCOEZ
TYPE_ISCSIr`rrrrrRs     rc@seZdZdZdZdZdZdZdZdZ    dZ
dZ d    Z d
Z d Zd 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@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTdRZUdSZVdTZWdUdVZXdgdXdYZYdZd[ZZd\d]Z[e\d^d_Z]dhdadbZ^efdcddZ_dedfZ`dWS)i Capabilitiesrr0irrr!"#$%&'()*+,-./0rIrJ789:;rr>?rlABdefghijkmnopqrxyz{|cCs |jjdjdd|jDdS)NrPcSsg|] }d|qS)z%02xr).0brrr
<listcomp>sz)Capabilities._to_dict.<locals>.<listcomp>)rZcap)r1rr_cap)rrrrrszCapabilities._to_dictNcCs*|dk    rttj||_n ttj|_dS)N)    bytearraybinasciiZ    unhexlifyrr_NUM)rrrrrr`szCapabilities.__init__cCs|j|tjkS)N)getr    SUPPORTED)r
capabilityrrr    supportedszCapabilities.supportedcCs|t|jkrtjS|j|S)N)lenrr UNSUPPORTED)rrrrrrszCapabilities.getcCsnt}xbttjjD]P\}}t|tjrt|t    kr|ddkrtj
|koXtj knr|||<qW|S)zc
        Return a dict containing all valid capability:
            integer => string name
        rr4) r%r"rr2rr
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|jD](}|j|tjkr"||kr"||||<q"W|S)za
        Returns a hash of the supported capabilities in the form
        constant, name
        )rr"r"keysrr)rZall_capZall_capsrrrrr get_supportedszCapabilities.get_supportedcCs||j|<dS)N)r)rrr)rrrset&szCapabilities.setcCs(x"tt|jD]}tj|j|<qWdS)N)rangerrrr)rrrrr
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_DISABLEZ VOLUME_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_INFOZ VOLUME_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_FILESZ EXPORT_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'rrrrrs
 
 rrzCache hardware typezBattery statusc@sNeZdZddgZdZdZdZdZdZdZ    dZ
dZ dZ dZ dZdZdd d Zd S)Batteryr9r>r0rKr@rArrBrCrDNcCs(||_||_||_||_||_||_dS)N)rQrR_typerVrWrX)rrQrRr)rVrWrXrrrr`Es zBattery.__init__r0rKrArErjrkrlrm)N)rrrrprqrrZ TYPE_CHEMICALZTYPE_CAPACITORrtrvruZSTATUS_DISCHARGINGZSTATUS_CHARGINGZSTATUS_LEARNINGrrxr`rrrrr(.sr(__main__)&abcrZ_ABCMetarrr rZ
simplejsonr+ ImportErrorZ json.decoderrZ lsm._commonrrrrZ JSONEncoderr    Z JSONDecoderrobjectr r?rrrYrrrrrrrrrr(rrrrr<module>s     31






S








{



R








<








    











 




j






*+







All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL