
    W'Fg]                     :    S SK r SSKJr  SSKJr   " S S\5      rg)    N   )Device   )XMLPropertyc                      \ rS rSrSr/ SQrSrSrSrSr	Sr
S	rS
rSrSr\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" SSS9r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r \" S 5      r!\" S!5      r"\" S"5      r#\" S#5      r$\" S$5      r%\" S%5      r&\" S&5      r'\" S'5      r(\" S(SS)9r)\" S*5      r*\" S+SS)9r+\" S,SS)9r,\" S-5      r-S. r.S/ r/S0 r0\1" \/\05      r2S1 r3S2 r4\1" \3\45      r5S3 r6S4 r7\1" \6\75      r8S5 r9S6 r:S7 r;S8 r<S9r=g:);DeviceFilesystem   
filesystem)
_type_prop
accessmodefmodedmodemounttemplatefileblockrammappedsquashloopnbdz./@typez./@accessmodez./@modelz./@multidevsz./@fmodez./@dmodez
./readonlyT)is_boolz./space_hard_limitz./space_soft_limitz./driver/@wrpolicyz./driver/@typez./driver/@formatz./driver/@queuez./driver/@namez./target/@dirz./source/@dirz./source/@namez./source/@filez./source/@devz./source/@usagez./source/@unitsz./source/@poolz./source/@volumez./source/@socketz./binary/@pathz./binary/@xattr)is_onoffz./binary/cache/@modez./binary/lock/@posixz./binary/lock/@flockz./binary/sandbox/@modec                     U R                   [        R                  :X  a  gU R                   [        R                  :X  a  gU R                   [        R                  :X  a  gU R                   [        R
                  :X  a  gg)Nsource_namesource_file
source_devsource_usage
source_dir)typer   TYPE_TEMPLATE	TYPE_FILE
TYPE_BLOCKTYPE_RAMselfs    6/usr/share/virt-manager/virtinst/devices/filesystem.py_type_to_source_prop%DeviceFilesystem._type_to_source_propA   s]    99(666 YY*444 YY*555YY*333!    c                 4    [        X R                  5       5      $ N)getattrr(   r%   s    r'   _get_sourceDeviceFilesystem._get_sourceM   s    t66899r*   c                 6    [        X R                  5       U5      $ r,   )setattrr(   r&   vals     r'   _set_sourceDeviceFilesystem._set_sourceO   s    t668#>>r*   c                     U R                   $ r,   
target_dirr%   s    r'   _get_targetDeviceFilesystem._get_targetS   s    r*   c                     Xl         g r,   r7   r2   s     r'   _set_targetDeviceFilesystem._set_targetU   s    r*   c                     [        U S5      $ Nr   )r-   r%   s    r'   	_get_typeDeviceFilesystem._get_typeY   s    t\**r*   c                     U R                  5       nU R                  n[        U SU5      nX R                  5       :w  a  X0l        U$ r?   )r(   sourcer1   )r&   r3   old_source_typeold_source_valuenew_types        r'   	_set_typeDeviceFilesystem._set_type[   sE    335;; 4s3 7799*Kr*   c                 F   U R                   R                  5       (       d  U R                   R                  5       (       a(  U R                  b  U R                  U R                  :X  a  g [
        R                  R                  U5      (       d  [        [        S5      U-  5      eg )Nz/Filesystem target '%s' must be an absolute path)
connis_qemuis_testr    
TYPE_MOUNTospathisabs
ValueError_)r&   targets     r'   validate_target DeviceFilesystem.validate_targetq   s     YY  DII$5$5$7$7YYYY$//)ww}}V$$Q  & ')/0 1 1 %r*   c                 ^    U R                   (       a  U R                  U R                   5        g g r,   )rS   rT   r%   s    r'   validateDeviceFilesystem.validate~   s     ;;  - r*   c                 <    U R                   S:X  a  g U R                  $ )Nvirtiofs)driver_typeMODE_MAPPEDr%   s    r'   default_accessmode#DeviceFilesystem.default_accessmode   s!    z) r*   c                 F   UnU R                   R                  5       (       d?  U R                   R                  5       (       d   U R                   R                  5       (       d  g U R                  c  U R
                  U l        U R                  c  U R                  5       U l        g g r,   )rJ   rK   is_lxcrL   r    rM   r   r]   )r&   guestignores      r'   set_defaultsDeviceFilesystem.set_defaults   sy    		!!##		  ""		!!## 99DI??""557DO #r*   )r   rC   r8   r    N)>__name__
__module____qualname____firstlineno__XML_NAME_XML_PROP_ORDERrM   r!   r"   r#   r$   r\   MODE_SQUASHDRIVER_LOOP
DRIVER_NBDr   r   r   model	multidevsr   r   readonlyspace_hard_limitspace_soft_limitdriver_wrpolicyr[   driver_formatdriver_queuedriver_namer8   r   r   r   r   r   source_unitssource_poolsource_volumesource_socketbinary_pathbinary_xattrbinary_cache_modebinary_lock_posixbinary_lock_flockbinary_sandbox_moder(   r.   r4   propertyrC   r9   r<   rS   r@   rG   r    rT   rW   r]   rc   __static_attributes__ r*   r'   r   r      s   HDOJMIJHKKKJY'J_-J
#EN+I
#E
#E<6H"#78"#78!"67O./K 23M01L./K_-J_-J./K./K_-J01L01L./K 23M 23M./K04@L#$:;#$:TJ#$:TJ%&>?
 :?k;/Fk;/F+ Iy)D1. 8r*   r   )rN   devicer   
xmlbuilderr   r   r   r*   r'   <module>r      s    
  $Q8v Q8r*   