ó -ÎP`c@sddlZddlmZmZddlmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZd„Zdefd„ƒYZdS(iÿÿÿÿN(tLsmErrort ErrorNumber( t_local_disk_vpd83_searcht_local_disk_vpd83_gett_local_disk_health_status_gett_local_disk_rpm_gett_local_disk_listt_local_disk_link_type_gett_local_disk_ident_led_ont_local_disk_ident_led_offt_local_disk_fault_led_ont_local_disk_fault_led_offt_local_disk_serial_num_gett_local_disk_led_status_gett_local_disk_link_speed_getcCs:||ƒ\}}}|tjkr6t||ƒ‚n|S(N(RtOKR(tfunc_reftargtdataterr_noterr_msg((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt_use_c_lib_functionst LocalDiskcBsËeZed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZ ed„ƒZ ed„ƒZ ed „ƒZ ed „ƒZ ed „ƒZed „ƒZRS( cCs tt|ƒS(s lsm.LocalDisk.vpd83_search(vpd83) Version: 1.3 Usage: Find out the disk paths for given SCSI VPD page 0x83 NAA type ID. Considering multipath, certain VPD83 might have multiple disks associated. Parameters: vpd83 (string) The VPD83 NAA type ID. Returns: [disk_path] List of string. Empty list if not disk found. The disk_path string format is '/dev/sd[a-z]+' for SCSI and ATA disks. SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. Capability: N/A No capability required as this is a library level method. (RR(tvpd83((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt vpd83_search(scCs tt|ƒS(sk lsm.LocalDisk.serial_num_get(disk_path) Version: 1.4 Usage: Query the SCSI VPD80 serial number of given disk path. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: serial_num (string) String of VPD80 serial number. Empty string if not supported. The string format regex is: SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb' ErrorNumber.NOT_FOUND_DISK Provided disk is not found. Capability: N/A No capability required as this is a library level method. (RR (t disk_path((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pytserial_num_getEscCs tt|ƒS(s’ lsm.LocalDisk.vpd83_get(disk_path) Version: 1.3 Usage: Query the SCSI VPD83 NAA ID of given disk path. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: vpd83 (string) String of VPD83 NAA ID. Empty string if not supported. The string format regex is: (?:^6[0-9a-f]{31})|(?:^[235][0-9a-f]{15})$ SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb' ErrorNumber.NOT_FOUND_DISK Provided disk is not found. Capability: N/A No capability required as this is a library level method. (RR(R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt vpd83_getcscCs tt|ƒS(s lsm.LocalDisk.health_status_get(disk_path) Version: 1.5 Usage: Retrieve the health status of given disk path. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: health_status (integer) Disk health status: -1 (lsm.Disk.HEALTH_STATUS_UNKNOWN): Unknown health status 0 (lsm.Disk.HEALTH_STATUS_FAIL): health status indicates failure 1 (lsm.Disk.HEALTH_STATUS_WARN): health status warns of near failure 2 (lsm.Disk.HEALTH_STATUS_GOOD): health status indicates good health SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb' ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Not supported. Capability: N/A No capability required as this is a library level method. (RR(R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pythealth_status_get‚s%cCs tt|ƒS(sx Version: 1.3 Usage: Query the disk rotation speed - revolutions per minute (RPM) of given disk path. Require permission to open disk path as read-only and non-block, normally it's root or disk group privilege. Parameters: disk_path (string) The disk path, example '/dev/sdb', '/dev/nvme0n1'. Returns: rpm (integer) Disk rotation speed: -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) SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb'. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Not supported. Capability: N/A No capability required as this is a library level method. (RR(R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pytrpm_get©s'cCs7tƒ\}}}|tjkr3t||ƒ‚n|S(sm Version: 1.3 Usage: Query local disk paths. Currently, only SCSI, ATA and NVMe disks will be included. Parameters: N/A Returns: [disk_path] List of string. Empty list if not disk found. The disk_path string format is '/dev/sd[a-z]+' for SCSI and ATA disks, '/dev/nvme[0-9]+n[0-9]+' for NVMe disks. SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb'. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. Capability: N/A No capability required as this is a library level method. (RRRR(t disk_pathsRR((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pytlistÒscCs tt|ƒS(s Version: 1.3 Usage: Query the disk link type of given disk path. For SATA disks connected to SAS enclosure, will return lsm.Disk.LINK_TYPE_ATA. Require permission to open disk_path(root user or disk group). Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: link_type (integer) 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 SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb'. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk does not support SCSI SPC. ErrorNumber.PERMISSION_DENIED Insufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR(R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt link_type_getòs9cCs tt|ƒS(s Version: 1.3 Usage: Turn on the identification LED for specified disk. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: None SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk does not support SCSI SPC. ErrorNumber.PERMISSION_DENIED No sufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR(R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt ident_led_on-scCs tt|ƒS(s Version: 1.3 Usage: Turn off the identification LED for specified disk. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: None SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk does not support SCSI SPC. ErrorNumber.PERMISSION_DENIED No sufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR (R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt ident_led_offIscCs tt|ƒS(s Version: 1.3 Usage: Turn on the fault LED for specified disk. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: None SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk does not support SCSI SPC. ErrorNumber.PERMISSION_DENIED No sufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR (R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt fault_led_onescCs tt|ƒS(sƒ Version: 1.3 Usage: Turn off the fault LED for specified disk. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: None SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb'. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk does not support SCSI SPC. ErrorNumber.PERMISSION_DENIED No sufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR (R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyt fault_led_offscCs tt|ƒS(s Version: 1.3 Usage: Get LED status for specified disk. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: led_status (integer, bit map) Could be combination of these values: lsm.Disk.LED_STATUS_UNKNOWN lsm.Disk.LED_STATUS_IDENT_ON lsm.Disk.LED_STATUS_IDENT_OFF lsm.Disk.LED_STATUS_IDENT_UNKNOWN Has identification LED, but status is unknown. If certain disk has no identification LED, 'led_status' should not contain 'lsm.Disk.LED_STATUS_IDENT_ON' or 'lsm.Disk.LED_STATUS_IDENT_OFF' or 'lsm.Disk.LED_STATUS_IDENT_UNKNOWN' lsm.Disk.LED_STATUS_FAULT_ON lsm.Disk.LED_STATUS_FAULT_OFF lsm.Disk.LED_STATUS_FAULT_UNKNOWN Has fault LED, but status is unknown. If certain disk has no fault LED, 'led_status' should not contain 'lsm.Disk.LED_STATUS_FAULT_ON' or 'lsm.Disk.LED_STATUS_FAULT_OFF' or 'lsm.Disk.LED_STATUS_FAULT_UNKNOWN' SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb'. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk does not support SCSI SPC. ErrorNumber.PERMISSION_DENIED No sufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR (R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pytled_status_getŸs0cCs tt|ƒS(sþ Version: 1.4 Usage: Get current negotiated logical link speed for specified disk. Parameters: disk_path (string) The disk path, example '/dev/sdb'. Returns: link_speed Integer for link speed in Mbps. For example, '3.0 Gbps' will get 3000. SpecialExceptions: LsmError ErrorNumber.LIB_BUG Internal bug. ErrorNumber.INVALID_ARGUMENT Invalid disk_path. Should be like '/dev/sdb'. ErrorNumber.NOT_FOUND_DISK Provided disk is not found. ErrorNumber.NO_SUPPORT Provided disk is not supported yet. ErrorNumber.PERMISSION_DENIED No sufficient permission to access provided disk path. Capability: N/A No capability required as this is a library level method. (RR(R((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pytlink_speed_getÑs(t__name__t __module__t staticmethodRRRRRRR R!R"R#R$R%R&(((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyR&s') ;2(tsixtlsmRRt lsm._clibRRRRRRRR R R R R RRtobjectR(((s3/usr/lib/python2.7/site-packages/lsm/_local_disk.pyts X