+
    hS  c                   s    ^ RI t ^ RIt^ RIt^ RIHt ^RIHt ^RIHt R t	 ! R R4      t
 ! R R	4      t]! 4       t ! R
 R4      t ! R R4      t ! R R4      t ! R R4      tR# )    N)	Libosinfo)xmlutil)logc                 s    \        \        P                  R 4      '       g!   \        P                  P                  V R4      # \        P                  P	                  V R^ 4      # )create_from_location_with_flagsN)hasattrr   ZMediacreate_from_locationr   )location   &*/usr/share/virt-manager/virtinst/osdict.py_media_create_from_locationr
      sF    9??$EFF33HdCC
 ??::8T1MM    c                   s6   a  ] tR t^t o RtR tR tR tRtV t	R# )_OsinfoIterzL
Helper to turn osinfo style get_length/get_nth lists into python
iterables
c                s    ^ V n         Wn        RV n        V P                  '       d)   V P                  P                  4       ^,
          V n        R# R# )r    N)currentlistobjhighZ
get_length)selfr      &&r	   __init__Z_OsinfoIter.__init__#   s<    	<<<//1A5DI r   c                s    V # N r   r   r	   __iter__Z_OsinfoIter.__iter__*   s    r   c                s    V P                   V P                  8  d   \        hV P                  P	                  V P                   4      pV ;P                   ^,          un         V# )   )r   r   ZStopIterationr   Zget_nth)r   ret   & r	   __next__Z_OsinfoIter.__next__-   sC    <<$))#ll""4<<0
r   )r   r   r   N)
__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes____classdictcell__Z__classdict__   @r	   r   r      s     
6 r   r   c                   s   a  ] tR t^5t o RtR t]R 4       t]R 4       t]R 4       t	RR lt
RR ltR tR	 tRR
 ltRtV tR# )_OSDBz 
Entry point for the public API
c                s"    R V n         R V n        R # r   )_OSDB__os_loader_OSDB__os_genericr   r   r	   r   Z_OSDB.__init__:   s     r   c                s    V P                   '       gS   \        P                  ! 4       pVP                  R R4       VP                  R\	        R4      4       \        V4      V n         V P                   # )zshort-idgenericnamez0Generic or unknown OS. Usage is not recommended.)r'   r   ZOsZ	set_param_
_OsVariantr   Zor   r	   _os_genericZ_OSDB._os_genericB   sS       AKK
I.KK"T UV *1D   r   c                s    V P                   '       g,   \        P                  ! 4       pVP                  4        Wn         V P                   # r   )r&   r   ZLoaderZprocess_default_path)r   Zloaderr   r	   
_os_loaderZ_OSDB._os_loaderL   s:    %%'F'')%r   c                6    V P                   P                  4       # r   )r.   Zget_dbr   r   r	   _os_dbZ_OSDB._os_dbU   s    %%''r   c                s    V P                   P                  V4      pVf&   V'       d   \        \        R4      V,          4      hR # \	        V4      # )NzUnknown libosinfo ID '%s')r0   get_os
ValueErrorr*   r+   )r   full_idraise_errorosobj   &&& r	   lookup_os_by_full_idZ_OSDB.lookup_os_by_full_id]   sB    ""7+= #>!?'!IJJ%  r   c                s   WP                   P                  8X  d   V P                   # \        P                  ! 4       pVP	                  \        P
                  V4       V P                  P                  4       P                  V4      P                  4       p\        V4      ^ 8X  d&   V'       d   \        \        R4      V,          4      hR# \        V^ ,          4      # )r    z;Unknown OS name '%s'. See `--osinfo list` for valid values.N)r-   r)   r   ZFilterZadd_constraintZPRODUCT_PROP_SHORT_IDr0   get_os_listZnew_filteredget_elementsZlenr2   r*   r+   )r   keyr4   Zfltoslist   &&&  r	   	lookup_osZ_OSDB.lookup_ose   s    ""'''### 9::C@((*77<IIKv;! STWZZ  &)$$r   c                s$    \        V4      pT P
                  P                  T4      '       g   R# TP                  4       P                  4       \        T4      3#   \         d,   p\        P                  ! R \	        T4      4        Rp?R# Rp?ii ; i)z)Error creating libosinfo media object: %sN)
r
   	Exceptionr   debugstrr0   Zidentify_mediar1   get_short_id_OsMedia)r   r   Zmediaes   &&  r	   guess_os_by_isoZ_OSDB.guess_os_by_isot   sq    	/9E
 {{))%00||~**,huo==  	IIA3q6J	s   A B$ B

Bc                s   VP                  R 4      '       d
   RV,           p\        P                  ! 4       '       d   VP                  R4      '       g   R#  \        P                  P                  VR4      p\        T P                  R4      '       dM   T P                  P                  T4      '       g   R# TP                  4       P                  4       \        T4      3# T P                  P!                  T4      w  rET'       g   R# TP                  4       \        T4      3#   \         d-   p\        P                  ! RT\        T4      4        Rp?R# Rp?ii ; i)Z/zfile://zfile:Nz9Error creating libosinfo tree object for location=%s : %sidentify_tree)Z
startswithr   Zin_testsuiter   Treer   r>   r   r?   r@   r   r0   rE   r1   rA   _OsTreeZguess_os_from_tree)r   r   treerC   r5   Ztreeobjs   &&    r	   guess_os_by_treeZ_OSDB.guess_os_by_tree   s   s## 8+H!!(*=*=g*F*F 	>>66xFD
 4;;00;;,,T22;;=--/>>![[;;DANE%%')999  	IIQS[]`ab]cd	s    D   E+!EEc                s  aa V P                   P                  4       P                  4        Uu. uF  p\        V4      NK  	  ppVP	                  V P
                  4       R oVV3R lp\        \        W4R7      4      # u upi )zE
List all OSes in the DB, sorting by the passes _OsVariant attribute
c                 sr    V P                  4       '       d   \        V 4      R,          # V P                  4       # )r   r   )ZisdigitZintZlower)Ztextr   r	   to_intZ_OSDB.list_os.<locals>.to_int   s%    '+||~~CING4::<Gr   c                 s   < \        V S4      p\        P                  ! R V4       Uu. uF  pS! V4      NK  	  up# u upi )z([0-9]+))ZgetattrreZsplit)objvalZcsortkeyrJ   s   &  r	   alphanum_keyZ#_OSDB.list_os.<locals>.alphanum_key   s8    #w'C')xx
C'@A'@!F1I'@AAAs   ;)r:   )r0   r8   r9   r+   appendr-   listsorted)r   rN   Zosentr;   rO   rJ   s   &f   @r	   list_osZ_OSDB.list_os   sl     261H1H1J1W1W1YZ1Y*U#1YZd&&'	H	B F6455 [s   A=)Z__os_genericZ__os_loaderN)Fr)   )r   r   r   r   r    r   Zpropertyr-   r.   r0   r7   r=   rD   rI   rS   r!   r"   r#   r$   r	   r%   r%   5   si     ! ! !     ( (!%	>:46 6r   r%   c                   sV   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )_OsResourcesc                s^    V P                  V4      V n        V P                  V4      V n        R # r   )_convert_to_dict_minimum_recommendedr   ZminimumZrecommendeds   &&&r	   r   Z_OsResources.__init__   s'    --g6 11+>r   c                s    / p\        V4       FP  p/ pVP                  4       VR&   VP                  4       VR&   VP                  4       VR&   WBVP	                  4       &   KR  	  V# )zf
Convert an OsResources object to a dictionary for easier
lookups. Layout is: {arch: {strkey: value}}
ramn-cpusstorage)r   get_ramZ
get_n_cpusZget_storageget_architecture)r   	resourcesr   rZvals   &&   r	   rV   Z_OsResources._convert_to_dict   sb    
 Y'AD))+DK\\^DNmmoDO(,""$% ( 
r   c                sv    VR 3 F0  pVP                  V/ 4      P                  VR4      pVR8w  g   K.  Vu # 	  R# )allNr   )Zget)r   r_   r:   archZ	checkarchrM      &&&&  r	   _get_keyZ_OsResources._get_key   s9    I--	2.223;Cby
 'r   c                sd    V P                  V P                  W4      pV'       d   V^ 8  d   V# R# R# )r    N)re   rW   r   r:   rc   rM   r6   r	   _get_minimum_keyZ_OsResources._get_minimum_key   s+    mmDMM3537J 3r   c                s    V P                  V P                  W4      pV'       d
   V^ 8  d   V# V P                  W4      pV'       d!   \        P                  ! RW4       V^,          # R# )r    z=No recommended value found for key='%s', using minimum=%s * 2N)re   rX   rg   r   r?   rf   r6   r	   _get_recommended_keyZ!_OsResources._get_recommended_key   sW    mmD--s937J ##C.IIUWZ`7Nr   c                &    V P                  R V4      # rZ   )rg   r   rc   r   r	   get_minimum_ramZ_OsResources.get_minimum_ram   s    $$UD11r   c                ri   rj   rh   rk   r   r	   get_recommended_ramZ _OsResources.get_recommended_ram   s    ((55r   c                ri   )r[   rm   rk   r   r	   get_recommended_ncpusZ"_OsResources.get_recommended_ncpus   s    ((488r   c                ri   )r\   rm   rk   r   r	   get_recommended_storageZ$_OsResources.get_recommended_storage   s    ((D99r   )rW   rX   N)r   r   r   r   r   rV   re   rg   rh   rl   rn   ro   rp   r!   r"   r#   r$   r	   rU   rU      s7     ?
269: :r   rU   c                   s<  a  ] tR t^t o R tR tR)R ltR tR*R ltR t	R t
R	 tR
 tR tR tR tR+R ltR+R ltR+R ltR+R ltR+R ltR+R ltR+R ltR+R ltR+R ltR+R ltR+R ltR tR tR tR tR tR t R t!R+R  lt"R! t#R" t$R# t%R$ t&R% t'R& t(R' t)R(t*V t+R# ),r+   c                s   Wn         V P                   P                  4       .V n        \        V P                   R 4      '       d    V P                   P	                  4       V n        V P                  ^ ,          V n        \        \        \        V P                  4      4      4      V n	        V P                   P                  4       V n        V P                   P                  4       V n        V P                   P                  4       V n        V P                   P!                  4       ;'       g    RV n        V P                   P%                  4       ;'       g    RV n        V P                   P)                  4       V n        V P-                  4       V n        R# )get_short_id_list N)_osrA   
_short_idsr   rq   r)   rQ   rR   Zset	all_namesZ
get_family_familyget_idr3   get_namelabelZget_codenamecodenameZ
get_distrodistroZget_versionversion_get_eoleolr,   r   r	   r   Z_OsVariant.__init__   s   880023488011"hh88:DOOOA&	fS%9:;xx**,xx(XX&&(
--/552hh))+11rxx++-==?r   c                sT    R V P                   P                  : RV P                  : R2# )Z<z name=Z>)Z	__class__r   r)   r   r   r	   __repr__Z_OsVariant.__repr__  s    !%!8!8$))DDr   Nc           	     s  a T;'       g    V P                   pVP                  4       V9   d   R # . oV3R lpV'       d>   V! VP                  \        P                  P
                  4      P                  4       4       V'       d>   V! VP                  \        P                  P                  4      P                  4       4       V'       d>   V! VP                  \        P                  P                  4      P                  4       4       S F7  pVP                  4       V9   g   V P                  VVVVVR7      '       g   K6   R # 	  R# )Tc                 sN   < V  F  pVS9  g   K  SP                  V4       K  	  R # r   )rP   )ZnewlrL   
check_lists   & r	   _extendZ*_OsVariant._is_related_to.<locals>._extend  s#    j(%%c* r   )r5   check_upgradescheck_derivescheck_clonesF)
rs   rA   Zget_relatedr   ZProductRelationshipZDERIVES_FROMr9   ZCLONESZUPGRADES_is_related_to)	r   Zrelated_os_listr5   r   r   r   r   Zcheckobjr   s	   &&&&&&  @r	   r   Z_OsVariant._is_related_to
  s    !!?2
	+
 E%%i&C&C&P&PQ^^`aE%%i&C&C&J&JKXXZ[E%%i&C&C&L&LMZZ\]"H$$&/9T=P=P-+) >Q > >  # r   c                Z    \        \        V P                  P                  4       4      4      # r   )rQ   r   rs   Zget_all_devicesr   r   r	   _get_all_devicesZ_OsVariant._get_all_devices0  s    K 8 8 :;<<r   c                s   . pT;'       g    . pV P                  4        Fu  pV'       d   VP                  4       V9  d   K"  V'       d-   \        P                  ! W%P	                  4       4      '       g   KV  VP                  VP                  4       4       Kw  	  T;'       g    . pV F9  pVP                  4       V9  d   K  VP                  VP                  4       4       K;  	  V# r   )r   rw   rK   matchZ	get_classrP   rx   )r   devidscls
extra_devsr   Zdevrd   r	   _device_filterZ_OsVariant._device_filter3  s    2((*C#**,f4288C99JJs||~& +  %%2
Czz|6)JJs||~& 
 
r   c                s   V P                   P                  4       pV P                   P                  4       pV P                   P                  \        P
                  4      ;'       g    R pR p\        P                  P                  4       pVe   WT! V4      8  # VR8X  d   R# Ve)   V! V4      \        P                  ! RR7      ,           pWV8  # R# )Nc                 s    V P                  4       : R V P                  4       : 2p\        P                  P                  VR4      # )Z-z%Y-%j)Zget_yearZget_day_of_yeardatetimeZstrptime)ZglibdateZdater   r	   _glib_to_datetimeZ._OsVariant._get_eol.<locals>._glib_to_datetimeQ  s7    &//183K3K3MND$$--dG<<r   ZrollingF)ZdaysiB  )	rs   Zget_eol_dateZget_release_dateZget_param_valuer   ZOS_PROP_RELEASE_STATUSr   ZtodayZ	timedelta)r   r~   ZrelZrelease_statusr   ZnowZrel5s   &      r	   r}   Z_OsVariant._get_eolI  s    hh##%hh'') 11)2R2RS[[W[	= %%'?*3/// Y& ?$S)H,>,>H,MMD:r   c                    V P                   # r   )rs   r   r   r	   
get_handleZ_OsVariant.get_handleg  s    xxr   c                s     V P                   R 8H  # )r(   rT   r   r   r	   
is_genericZ_OsVariant.is_genericj  s    yyI%%r   c                sD    \         P                  ! R V P                  4      # )zlinux\d\d\d\d)rK   r   r)   r   r   r	   is_linux_genericZ_OsVariant.is_linux_genericm  s    xx($))44r   c                s     V P                   R9   # )win9x)r   ZwinntZwin16)rv   r   r   r	   
is_windowsZ_OsVariant.is_windowsp  s    ||:::r   c                sX    V P                  4       '       g   V P                  R9   d   R# R# )solarisZ	localtimeZutc)r   )r   rv   r   r   r	   	get_clockZ_OsVariant.get_clocks  s     ?? ;r   c                s&    V P                  R R7      # )Znet)r   )r   r   r   r	   supported_netmodelsZ_OsVariant.supported_netmodelsx  s    ""u"--r   c                @    R R.p\        V P                  W!R7      4      # )zhttp://pcisig.com/pci/1af4/1001zhttp://pcisig.com/pci/1af4/1042r   r   boolr   r   r   r      && r	   supports_virtiodiskZ_OsVariant.supports_virtiodisk{  &    35VWD''v'MNNr   c                r   )zhttp://pcisig.com/pci/1af4/1004zhttp://pcisig.com/pci/1af4/1048r   r   r   r   r	   supports_virtioscsiZ_OsVariant.supports_virtioscsi  r   r   c                r   )zhttp://pcisig.com/pci/1af4/1000http://pcisig.com/pci/1af4/1041r   r   r   r   r	   supports_virtionetZ_OsVariant.supports_virtionet  r   r   c                r   )zhttp://pcisig.com/pci/1af4/1005zhttp://pcisig.com/pci/1af4/1044r   r   r   r   r	   supports_virtiorngZ_OsVariant.supports_virtiorng  r   r   c                >    R .p\        V P                  W!R7      4      # )zhttp://pcisig.com/pci/1af4/1050r   r   r   r   r	   supports_virtiogpuZ_OsVariant.supports_virtiogpu  #    34D''v'MNNr   c                r   )zhttp://pcisig.com/pci/1af4/1002zhttp://pcisig.com/pci/1af4/1045r   r   r   r   r	   supports_virtioballoonZ!_OsVariant.supports_virtioballoon  r   r   c                s`    R R.pV P                  W!R7      '       d   R# V P                  R4      # )zhttp://pcisig.com/pci/1af4/1003zhttp://pcisig.com/pci/1af4/1043r   Tzrhel6.0)r   r   r   r   r	   supports_virtioserialZ _OsVariant.supports_virtioserial  s7    35VWfDD ""9--r   c                r   )zhttp://pcisig.com/pci/1af4/1052r   r   r   r   r	   supports_virtioinputZ_OsVariant.supports_virtioinput  r   r   c                r   )zhttp://pcisig.com/pci/1b36/0004r   r   r   r   r	   supports_usb3Z_OsVariant.supports_usb3  r   r   c                r   )r   r   r   r   r   r	   supports_virtio1Z_OsVariant.supports_virtio1  r   r   c                s    V P                  VR 7      '       d   V P                  VR 7      '       g   R# R.p\        V P                  W!R7      4      # ))r   Fzhttp://qemu.org/chipset/x86/q35r   )r   r   r   r   r   r   r	   supports_chipset_q35Z_OsVariant.supports_chipset_q35  sZ    ""j"99$BWBW! CX C
 C
 34D''v'MNNr   c                s    \        V P                  R 4      '       d)   V P                  P                  4       P                  4       # . # )get_complete_firmware_list)r   rs   r   r9   r   r   r	   _get_firmware_listZ_OsVariant._get_firmware_list  s5    4889::88668EEGG	r   c                s    V P                  4       pV FA  pVP                  4       V8w  d   K  VP                  4       V8X  g   K1  VP                  4       u # 	  V# r   )r   r^   Zget_firmware_typeZis_supported)r   r)   rc   ZdefaultZ	firmwaresZfirmwarerd   r	   _supports_firmware_typeZ"_OsVariant._supports_firmware_type  sU    ++-	!H((*d2))+t3,,..	 " r   c                s    R p V P                  RVR 4      pV P                  RVR4      pT;'       d    V'       * pV#   \         d    \        P                  ! RRR7        T# i ; i)FZefiZbiosTz&Error checking osinfo firmware support)Zexc_info)r   r>   r   r?   )r   rc   r   Zsupports_efiZsupports_biosra   r	   requires_firmware_efiZ _OsVariant.requires_firmware_efi  ss    	O77tUKL 88tLM44}#4C 
  	OII>N
	Os   .= = #A$#A$c                s    V P                   P                  4       pV P                   P                  4       p\        W4      # r   )rs   Zget_minimum_resourcesget_recommended_resourcesrU   rY      &  r	   r   Z$_OsVariant.get_recommended_resources  s1    ((002hh88:G11r   c                s    \        V P                  R 4      '       dr   V P                  P                  4       p\        V4       FF  pVP	                  4       pWAP
                  P                  8X  g
   VR8X  g   K6  VP                  4       u # 	  R# R# )get_network_install_resourcesrb   N)r   rs   r   r   r^   osrc   r]   )r   Zguestr_   r`   rc   ra   r	    get_network_install_required_ramZ+_OsVariant.get_network_install_required_ram  sh    488<==>>@I +))+88==(DEM99;& , >r   c                s    \        V P                  R4      '       d!   V P                  P                  4       pVe   V# V P                  R9   d   R# V P                  R9  d   R# R# )z{
Kernel argument name the distro's installer uses to reference
a network source, possibly bypassing some installer prompts
get_kernel_url_argumentNZinstallz	inst.repo)ZcaaspZsleZsledZslesZopensuse)ZcentosZrhelZfedora)r   rs   r   r{   )r   Zosargr   r	   get_kernel_url_argZ_OsVariant.get_kernel_url_arg  sZ     488677HH446E  ;;FF;;:: r   c                s   \        \        P                  R 4      '       g3   V F*  pVP                  4       V8X  g   K  VP	                  4       u # 	  R# RpVR8X  d   RpMVR8X  d   RpM
V'       g   RpV Ff  pVP                  4       V8w  d   K  VP                  4       pTp\        V4       F+  pW7P                  4       9   g   K  VP	                  4       u u # 	  Kh  	  V'       d   VP	                  4       # R# )get_os_variantsNZjeosZServerZdesktopZWorkstationZ
Everything)r   r   rF   r^   Zget_urlr   r   rx   )r   treelistrc   profilerH   Zfallback_treeZvariant_listvariants   &&&&    r	   _get_generic_locationZ _OsVariant._get_generic_location  s    y~~'899 ((*d2<<>) ! fG	!#G"GD$$&$.//1L M&|4..00<<>) 5   ((**r   c                s>   \        \        V P                  P                  4       4      4      pV'       g&   \	        \        R 4      V P                  ,          4      hV P                  W1V4      pV'       d   V# \	        \        R4      RV P                  RV/,          4      h)z$OS '%s' does not have a URL locationzPOS '%(osname)s' does not have a URL location for the architecture '%(archname)s'ZosnameZarchname)rQ   r   rs   Zget_tree_listZRuntimeErrorr*   r)   r   )r   rc   r   r   r   r<   r	   get_locationZ_OsVariant.get_location  s    DHH$:$:$<=>q!GH499TUU --hgFO`aJ56
 	
r   c                r   r   )rQ   r   rs   get_install_script_listr   r   r	   r   Z"_OsVariant.get_install_script_list'  s    K @ @ BCDDr   c                s    . p\        \        V P                  P                  4       4      4      pV F2  pVR 8w  d   VP	                  4       V8w  d   K!  VP                  V4       K4  	  V# )rb   )rQ   r   rs   Zget_device_driversr^   rP   )r   rc   installable_driversZdevice_driversZdevice_driverra   r	   _get_installable_driversZ#_OsVariant._get_installable_drivers*  s^     k$((*E*E*GHI+Mu}!?!?!AT!I&&}5	 ,
 #"r   c                s    V P                  V4      p. pV F,  pVP                  4       '       g   K  VP                  V4       K.  	  V# r   )r   Zget_pre_installablerP   )r   rc   r   pre_inst_driversdriverra   r	   _get_pre_installable_driversZ'_OsVariant._get_pre_installable_drivers4  sH    ";;DA)F))++ ''/ *  r   c                s    . pV F[  pVP                  4       pV FB  p\        P                  P                  VP	                  4       V4      pVP                  V4       KD  	  K]  	  V# r   )Z	get_filesr   ZpathZjoinr   rP   )r   driversZ	locationsr   Z	filenamesZfilenamer   s   &&     r	   _get_drivers_locationZ _OsVariant._get_drivers_location<  s\    	F((*I%77<<(;(;(=xH  * & 
 r   c                sF    V P                  V4      pV P                  V4      # r   )r   r   )r   rc   r   r   r	   $get_pre_installable_drivers_locationZ/_OsVariant.get_pre_installable_drivers_locationE  s%    <<TB))*:;;r   c                s    V P                  V4      p. pV F,  pV\        \        VP                  4       4      4      ,          pK.  	  V# r   )r   rQ   r   Zget_devices)r   rc   r   Zdevicesr   ra   r	   get_pre_installable_devicesZ&_OsVariant.get_pre_installable_devicesJ  sC    33D9FtK(:(:(<=>>G r   c                s8    V P                  V4      '       d   R # R# )TF)r   rk   r   r	   supports_unattended_driversZ&_OsVariant.supports_unattended_driversQ  s    ,,T22r   )rv   rs   rt   ru   rz   r{   r~   r3   ry   r)   r|   )NTTT)NNNr   ),r   r   r   r   r   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r	   r+   r+      s     #$E$L=,<&5;
.O
O
O
O
O
O
.O
O
O
O
		2
'*:
(E# <
 r   r+   c                   sJ   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )rB   iW  c                    Wn         R # r   _media)r   Zosinfo_mediar   r	   r   Z_OsMedia.__init__X  s    "r   c                r/   r   )r   get_kernel_pathr   r   r	   r   Z_OsMedia.get_kernel_path[      {{**,,r   c                r/   r   )r   get_initrd_pathr   r   r	   r   Z_OsMedia.get_initrd_path^  r   r   c                r/   r   )r   supports_installer_scriptr   r   r	   r   Z"_OsMedia.supports_installer_scripta  s    {{4466r   c                s    \        \        V P                  P                  4       4      4      pV F  pR VP	                  4       9   g   K   R# 	  R# )ZnetinstTF)rQ   r   r   r   rw   )r   Zvariantsr   r   r	   
is_netinstZ_OsMedia.is_netinstd  s?    DKK$?$?$ABCGGNN,,   r   c                r   r   )rQ   r   r   r   r   r   r	   r   Z _OsMedia.get_install_script_listk  s    K C C EFGGr   c                r   r   r   r   r   r	   get_osinfo_mediaZ_OsMedia.get_osinfo_median  s    {{r   r   N)r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r	   rB   rB   W  s.     #--7H r   rB   c                   s,   a  ] tR tRt o R tR tRtV tR# )rG   ir  c                r   r   Z_tree)r   Zosinfo_treer   r	   r   Z_OsTree.__init__s  s     
r   c                r   r   r   r   r   r	   get_osinfo_treeZ_OsTree.get_osinfo_treev  s    zzr   r   N)r   r   r   r   r   r   r!   r"   r#   r$   r	   rG   rG   r  s     ! r   rG   )r   r   rK   Zgi.repositoryr   rr   r   Zloggerr   r
   r   r%   ZOSDBrU   r+   rB   rG   r   r   r	   <module>r      sk     	 	 #  N 0s6 s6l w5: 5:zd dN 6 r   