;ò
wþs=c           @   s  d  Z  d k Z d k Z d k Z d k l Z d e f d „  ƒ  YZ d „  Z d f  d „  ƒ  YZ d f  d	 „  ƒ  YZ e	 d
 j oû d k
 Z
 e ƒ  Z e i d ƒ e GHd Ge i ƒ  GHe i d ƒ d GHe ƒ  Z e i d ƒ e GHd GHd GHd GHe i ƒ  GHe i d ƒ GHd GHd GHd Z e d d d d ƒ Z e i d d ƒ e i d d ƒ e i e ƒ d GHd GHe i d ƒ GHe GHn d S(   s+   Module for manipulation of lilo.conf files.N(   s   UserDicts   UserDictCasec           B   sh   t  Z d  Z h  d „ Z d „  Z d „  Z e Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(
   s'   A dictionary with case insensitive keysc         C   sH   t  i |  ƒ x4 | i ƒ  D]& } t i | ƒ } | | |  i | <q Wd  S(   N(	   s   UserDicts   __init__s   selfs   datas   keyss   ks   strings   lowers   kl(   s   selfs   datas   kls   k(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __init__   s
     c         C   s    t  i | ƒ } | |  i | <d  S(   N(   s   strings   lowers   keys   values   selfs   data(   s   selfs   keys   value(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __setitem__   s    c         C   s:   t  i | ƒ } |  i i | ƒ o t Sn |  i | Sd  S(   N(   s   strings   lowers   keys   selfs   datas   has_keys   None(   s   selfs   key(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __getitem__   s    c         C   s   t  i | ƒ } |  i | =d  S(   N(   s   strings   lowers   keys   selfs   data(   s   selfs   key(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __delitem__$   s    c         C   s#   t  i | ƒ } |  i i | ƒ Sd  S(   N(   s   strings   lowers   keys   selfs   datas   has_key(   s   selfs   key(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   has_key'   s    c         C   s   |  i Sd  S(   N(   s   selfs   data(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   get_hash+   s    c         C   s   |  i Sd  S(   N(   s   selfs   data(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __getstate__.   s    c         C   s   |  i | ƒ d  S(   N(   s   selfs   __init__s   state(   s   selfs   state(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __setstate__1   s    c         C   s   |  i Sd  S(   N(   s   selfs   data(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   dict4   s    (   s   __name__s
   __module__s   __doc__s   __init__s   __setitem__s   __getitem__s   gets   __delitem__s   has_keys   get_hashs   __getstate__s   __setstate__s   dict(    (    (    s%   /usr/share/rhn/up2date_client/lilo.pys   UserDictCase   s    							c          C   s¾   d } y t d d ƒ }  Wn t j
 o d Sn Xx€ |  i ƒ  D]r } t i | ƒ } | d d j o q@ n t i | d d ƒ d t i | d d ƒ } | d	 j o
 d } q@ q@ W| Sd  S(
   Ni    s   /proc/e820infos   ri   s
   (reserved)i   i   i   l   ÿÿ (
   s   rcs   opens   fs   IOErrors	   readliness   ls   strings   splits   atols	   regionEnd(   s   fs	   regionEnds   ls   rc(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   needsEnterpriseKernel8   s    	  .s   LiloConfigFilec           B   sª   t  Z d  Z d d „ Z e d d „ Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 e d
 „ Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z e e d „ Z RS(   s`   class representing a lilo.conf lilo configuration file. Used to manipulate
    the file directlyi    c         C   s(  d } x„ |  i D]y } | o | d } n | d d j o | | d } n2 | | } |  i | o | d |  i | } n | d } q WxO t t |  i ƒ ƒ D]8 } | d |  i | d } | d	 |  i
 | d } q£ Wx> |  i D]3 } | d
 | i | i f } | | i d ƒ } qé W| Sd  S(   Ns    s   	i    s   #i   s   =s   
s
   disk = %s
s   	bios = %s
s   
%s=%s
(   s   ss   selfs   orders   ns   tabs   itemss   ranges   lens
   diskRemapss   counts
   biosRemapss   imagess   cls	   imageTypes   paths   __repr__(   s   selfs   tabs   counts   cls   ss   n(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __repr__L   s(    
 
 
 i   c         C   sg   |  i i | ƒ o |  i i | ƒ n | o d  Sn | o t | ƒ |  i | <n t	 |  i | <d  S(   N(
   s   selfs   itemss   has_keys   items   orders   appends   replaces   vals   strs   None(   s   selfs   items   vals   replace(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   addEntry`   s    c         C   s*   |  i i | ƒ o |  i | Sn t Sd  S(   N(   s   selfs   itemss   has_keys   items   None(   s   selfs   item(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   getEntryk   s    c         C   sO   g  } x/ |  i D]$ } | | j o | i | ƒ q q W| |  _ |  i | =d  S(   N(   s   newOrders   selfs   orders   is   items   appends   items(   s   selfs   items   is   newOrder(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   delEntryq   s    
  	c         C   s   |  i } | Sd  S(   N(   s   selfs   itemss   foo(   s   selfs   foo(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   listEntriesy   s    	c         C   s#   |  i i | ƒ o d Sn d Sd  S(   Ni   i    (   s   selfs   itemss   has_keys   item(   s   selfs   item(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   testEntry}   s    c         C   sÃ   x¯ |  i D]¤ } t i | i d ƒ ƒ t i | ƒ j o | i | | i | i	 f Sn | i d ƒ oI t i | i d ƒ ƒ t i | ƒ j o | i | | i | i	 f Sq® q
 q
 Wt
 d | ‚ d  S(   Ns   labels   aliass   unknown image %s(   s   selfs   imagess   configs   strings   lowers   getEntrys   labels	   imageTypes   paths   others
   IndexError(   s   selfs   labels   config(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   getImageƒ   s    
 ((%c         C   sb   | i d ƒ | i p | i o t d ‚ n | o | g |  i |  _ n |  i i | ƒ d  S(   Ns   labels$   subconfig missing path or image type(	   s   configs   getEntrys   paths	   imageTypes
   ValueErrors   firsts   selfs   imagess   append(   s   selfs   configs   first(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   addImageŽ   s    c         C   sh   xQ |  i D]F } t i | i d ƒ ƒ t i | ƒ j o |  i i | ƒ d  Sq
 q
 Wt d | f ‚ d  S(   Ns   labels   unknown image %s(	   s   selfs   imagess   configs   strings   lowers   getEntrys   labels   removes
   IndexError(   s   selfs   labels   config(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   delImage™   s    
 (c         C   s8   g  } x' |  i D] } | i | i d ƒ ƒ q W| Sd  S(   Ns   label(   s   ls   selfs   imagess   configs   appends   getEntry(   s   selfs   configs   l(    (    s%   /usr/share/rhn/up2date_client/lilo.pys
   listImages¡   s
    
 c         C   sL   g  } x; |  i D]0 } | i d ƒ o | i | i d ƒ ƒ q q W| Sd  S(   Ns   alias(   s   ls   selfs   imagess   configs   getEntrys   append(   s   selfs   configs   l(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   listAliases§   s    
 c         C   s   |  i Sd  S(   N(   s   selfs   path(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   getPath®   s    i¤  c         C   s@   t  | d ƒ } | i |  i ƒ  ƒ | i ƒ  t i | | ƒ d  S(   Ns   w(
   s   opens   files   fs   writes   selfs   __repr__s   closes   oss   chmods   perms(   s   selfs   files   permss   f(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   write±   s    
c   
      C   sJ  t  | d ƒ } t } x| i ƒ  D]þ} | d  } | }	 x8 | o | d d j p | d d j o | d } q; W| o q" n | d d j o |  i	 i
 d |	 ƒ q" n t i | d d ƒ } t | ƒ d	 j oû t i | d ƒ } t i | d ƒ } | d
 j p
 | d j oQ | o |  i | ƒ n t d | d | ƒ } | d j o d | _ n t } n | | f } | d j o  |  i i
 | | f ƒ t } n | d j o  |  i i
 | | f ƒ t } qãn t i | ƒ f } | o | o t | i | ƒ q" | o t |  i | ƒ q" q" W| o |  i | ƒ n | i ƒ  d  S(   Ns   riÿÿÿÿi    s    s   	i   s   #s   =i   s   images   others	   imageTypes   paths   disks   bios(   s   opens   files   fs   Nones   images	   readliness   ls   origs   selfs   orders   appends   strings   splits   fieldss   lens   strips   f0s   f1s   addImages   LiloConfigFiles   others   argss
   diskRemapss
   biosRemapss   applys   addEntrys   close(
   s   selfs   files   f0s   f1s   fs   fieldss   argss   ls   images   orig(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   read·   sR     
 ) 	

 c         C   sX   | |  _  | |  _ g  |  _ g  |  _ t |  _ t ƒ  |  _ g  |  _	 g  |  _
 g  |  _ d  S(   N(   s	   imageTypes   selfs   paths   orders   imagess   Nones   others   UserDictCases   itemss
   biosRemapss
   diskRemapss   unsupported(   s   selfs	   imageTypes   path(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __init__ä   s    							(   s   __name__s
   __module__s   __doc__s   __repr__s   Nones   addEntrys   getEntrys   delEntrys   listEntriess	   testEntrys   getImages   addImages   delImages
   listImagess   listAliasess   getPaths   writes   reads   __init__(    (    (    s%   /usr/share/rhn/up2date_client/lilo.pys   LiloConfigFileI   s     										-s   LiloConfigurationc           B   sh   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   sJ   Class used to represent the data in the lilo.conf lilo configuration file.c         C   sC   | i ƒ  } | d d !d j o |  i d | f ƒ t Sn d Sd  S(   Ni    i   s   mds   raidi   (   s   fstabs   getBootDevices
   bootDevices   selfs	   setDevices   None(   s   selfs   fstabs
   bootDevice(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   allowLiloLocationConfigò   s
    c         C   s   | |  _ d  S(   N(   s   imagess   selfs
   liloImages(   s   selfs   images(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   setLiloImagesú   s    c         C   sd   t  | ƒ t  d f ƒ j o | |  _ n/ | d j o | d j o | o t d ‚ n | |  _ d  S(   Ni   s   mbrs	   partitions,   device must be raid, mbr, partition, or None(   s   types   devices   selfs
   liloDevices
   ValueError(   s   selfs   device(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   setDeviceþ   s
    !c         C   s   | |  _ d  S(   N(   s   linears   selfs
   liloLinear(   s   selfs   linear(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   setLinear  s    c         C   s   | |  _ d  S(   N(   s   appends   selfs
   liloAppend(   s   selfs   append(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   setAppend  s    c         C   sR   x; |  i i ƒ  D]* \ } } | | j o | |  _ d  Sq q Wt d | f ‚ d  S(   Ns   unknown lilo label %s(   s   selfs
   liloImagess   valuess   labels   fsTypes   defaults
   IndexError(   s   selfs   defaults   fsTypes   label(    (    s%   /usr/share/rhn/up2date_client/lilo.pys
   setDefault  s     	c         C   s   |  i Sd  S(   N(   s   selfs
   liloLinear(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   getLinear  s    c         C   s   |  i Sd  S(   N(   s   selfs
   liloDevice(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   getDevice  s    c         C   s   |  i Sd  S(   N(   s   selfs
   liloAppend(   s   self(    (    s%   /usr/share/rhn/up2date_client/lilo.pys	   getAppend  s    c         C   si   h  |  _ d |  _ d |  _ t |  _ h  |  _ t i ƒ  d j o d  k	 } | i
 ƒ  |  _	 n
 d |  _	 d  S(   Ns   mbri   s   i386i    (   s   selfs
   liloImagess
   liloDevices
   liloLinears   Nones   defaults   initrdsMades   iutils   getArchs   edds   detect(   s   selfs   edd(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   __init__  s    						(   s   __name__s
   __module__s   __doc__s   allowLiloLocationConfigs   setLiloImagess	   setDevices	   setLinears	   setAppends
   setDefaults	   getLinears	   getDevices	   getAppends   __init__(    (    (    s%   /usr/share/rhn/up2date_client/lilo.pys   LiloConfigurationð   s    									s   __main__s   /etc/lilo.confs
   image lists   linuxs"   ----------------------------------s   list imagess   addimage (testlinux)sB   
read-only
blippy-blob=sdfsdf
append="sdfasdfasdf"
root=/dev/hda6
s	   imageTypes   images   paths   /boot/somevmlinuz-2.4.0s   labels	   newkernels   initrds   blipppys%   -------------------------------------s   writing out /tmp/lilo.confs   /tmp/lilo.conf(   s   __doc__s   strings   oss   iutils   UserDicts   UserDictCases   needsEnterpriseKernels   LiloConfigFiles   LiloConfigurations   __name__s   syss   configs   reads
   listImagess   delImages   getImages   blips   sls   addEntrys   addImages   write(   s   syss   strings   LiloConfigFiles   UserDicts   sls   needsEnterpriseKernels   iutils   blips   LiloConfigurations   UserDictCases   configs   os(    (    s%   /usr/share/rhn/up2date_client/lilo.pys   ?
   sF   			&	§:			