Mini Shell
3
{)ce} � @ s" d dl Z d dlZd dlZd dlZd dlZddlmZ e jd�Ze jd�Z e j
e j� ejd�Z
ejd�Zejd�Zejd �Zejd
�Zejd�Zejd�Zejd
�Zejd�Zejd�Zejd�Zejd�Zejd�Zejd�ZG dd� de�ZG dd� de�Zddd�Zddd�Zd dd�Z dS )!� N� )�utilZblivetZtestdataz.*/int13_dev([0-9a-fA-F]+)/*$z2^(PCIX|PCI|XPRS|HTPT)\s*(\S*)\s*channel: (\S*)\s*$z'^ATAPI\s*device: (\S*)\s*lun: (\S*)\s*$z^ATA\s*device: (\S*)\s*$z"^SCSI\s*id: (\S*)\s*lun: (\S*)\s*$z^USB\s*serial_number: (\S*)\s*$z^1394\s*eui: (\S*)\s*$z%^FIBRE\s*wwid: (\S*)\s*lun: (\S*)\s*$z^I2O\s*identity_tag: (\S*)\s*$z^RAID\s*identity_tag: (\S*)\s*$z^SATA\s*device: (\S*)\s*$z&^SATA\s*device: (\S*)\s*pmp: (\S*)\s*$z,^SAS\s*sas_address: (\S*)\s*lun: \(\S*\)\s*$z!^(\S*)\s*unknown: (\S*) (\S*)\s*$c @ sb e Zd ZdZddd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dS )�EddEntryz[ This object merely collects what the /sys/firmware/edd/* entries can
provide.
Nc C s� t j|p
ddd�| _t j|| jd�| _tj|�}t|jd�dd�| _d | _ t j
| jd�| _d | _d | _
d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _| j � d S )N� )�root� � )�base�version)!r �Pathr � sysfspath�re_bios_device_number�match�int�group�bios_device_number� sysfslink�get_sysfs_attrr
�mbr_sig�sectors�host_bus�pci_dev�channel� interface�type�atapi_device� atapi_lun�
ata_device�ata_pmp�scsi_id�scsi_lun�
usb_serial�ieee1394_eui64�
fibre_wwid� fibre_lun�i2o_identity�sas_address�sas_lun�load)�selfr r r � r* �/usr/lib/python3.6/edd.py�__init__F s6
zEddEntry.__init__c C sL d}| j d k r|d7 }| jd k r(|d7 }t| j| j| jd k g�rH|d7 }| jd k rZ|d7 }t| jd k | jd k g�rz|d7 }| j d k r�|d7 }| j
d k r�|d7 }t| jd k | jd k g�r�|d 7 }| j
d k r�|d
7 }| jd k r�|d7 }t| j| jg�r�|d7 }| jd k �r|d
7 }t| j| jg��r(|d7 }tj| j�}||d<