o
    	bQ                     @   sL   d dl Z ddlmZ ddlmZ ddlmZ ddlmZ G dd	 d	eZ	dS )
    N   )log   )Device)
NodeDevice)XMLPropertyc                   @   s   e Zd ZdZdd Zg dZedZedZeddd	Z	ed
Z
edZedZedZedZedZedZedZedZedZedZedddZedZedddZedddZedddZedZedZedZedZdd  Zd!S )"DeviceHostdevhostdevc                 C   s  t d|  |jtjkr#d| _|j| _|j| _|j	| _	|j
| _
d S |jtjkrdd| _|j| _|j| _d}| j D ]}|jtjkrS|j| jkrS|j| jkrS|d7 }q;|dkrb|j| _|j| _d S d S |j|jkrd }| j D ]}|j|jkr}|} nqq| | d S |j|jkrd| _d|j | _|j| _|j| _|j| _d| _d S |j|j krd	| _|j!d
krd| _"d| _n0|j!dkrd| _"d| _n$t#$d|j!st#$d|j!rd| _"d| _d| _%d| _&n	t't(d|j! |) | _*d S t't(d|j )Nzset_from_nodedev xml=
%spciusbr   r   scsizscsi_host%sFmdevzvfio_ccw-iozvfio-ccwnozvfio_ap-passthroughzvfio-apz^nvidia-[0-9]{2}z^i915-GVTg_V[0-9]_[0-9]zvfio-pciyesoffz8Don't know how to generate nodedev for mdev type id '%s'z!Unsupported node device type '%s')+r   debugget_xmldevice_typer   CAPABILITY_TYPE_PCItypedomainbusslotfunctionCAPABILITY_TYPE_USBDEV	vendor_idvendor
product_idproductconnfetch_all_nodedevsdeviceCAPABILITY_TYPE_NETnameparentset_from_nodedevCAPABILITY_TYPE_SCSIDEVhostscsi_adapterscsi_bustargetscsi_targetlun	scsi_unitmanagedCAPABILITY_TYPE_MDEVtype_idmodelrematchdisplayramfb
ValueError_get_mdev_uuiduuid)selfnodedevcountdevfounddevcheckdev r@   3/usr/share/virt-manager/virtinst/devices/hostdev.pyr%      sz   


zDeviceHostdev.set_from_nodedev)moder   r.   r   r   r   r   r   r   r1   r4   r5   z./@modez./@typez
./@managedT)is_yesnoz./@modelz
./@displayz./@ramfbz./source/vendor/@idz./source/product/@idz./source/address/@devicez./source/address/@busz./source/address/@domainz./source/address/@functionz./source/address/@slotz./driver/@namez
./rom/@bar)is_onoffz./source/adapter/@name)is_intz./source/address/@targetz./source/address/@unitz./source/interfacez./source/charz./source/blockz./source/address/@uuidc                 C   s2   | j d u r| j rdpd| _ | jsd| _d S d S )Nr   r   	subsystem)r.   r   is_xenrB   )r:   guestr@   r@   rA   set_defaults   s
   

zDeviceHostdev.set_defaultsN)__name__
__module____qualname__XML_NAMEr%   _XML_PROP_ORDERr   rB   r   r.   r1   r4   r5   r   r   r!   r   r   r   r   driver_namerom_barr(   r)   r+   r-   net_interface	misc_charstorage_blockr9   rI   r@   r@   r@   rA   r      s8    Ir   )
r2   loggerr   r!   r   r;   r   
xmlbuilderr   r   r@   r@   r@   rA   <module>   s   