;ň
cő<c           @   s   d  k  Z  d  k Z d  k Z d Z d Z d   Z d   Z d   Z d   Z d d  Z	 e
 d	 j o& e	   Z e o d
 e GHq d GHn d  S(   Ns   /boot/grub/grub.confs   /etc/lilo.confc         C   sJ  t  |   } |  d  d j p |  d  d j p |  d  d j o: |  d d j o
 d	 } qľ |  d
 d j o
 d } qľ n= |  d t i j o
 d } n |  d	 t i j o
 d	 } n |  |  } | d	 d j oA x> | D]2 } | t i j o
 | d j o | d	  } Pq× q× Wn | d j  o t |  |  d } n t
 } | | f Sd S(   s-   Return (disk, partition number) tuple for devi   s   rd/i   s   ida/i   s   cciss/iţ˙˙˙s   pi˙˙˙˙iý˙˙˙s   /i    i   N(   s   lens   devs   cuts   strings   digitss   names   letters   letterss   ints   partNums   None(   s   devs   cuts   names   letters   partNum(    (    s0   /usr/share/rhn/up2date_client/checkbootloader.pys   getDiskPart   s,     3



 
c   	      C   s˙   g  } y) t d d  } | i   } | i   Wn | Sn Xxˇ | D]Ż } t i | d  } | d |  j o x | d D]s } t i | d  d j o qx n t i | d  d } t |  d j o qx n t |  d } | i |  qx WqD qD W| Sd  S(   Ns   /proc/mdstats   rs    i    i   s   [i˙˙˙˙(   s   rcs   opens   fs	   readliness   liness   closes   lines   strings   splits   fieldss
   raidDevices   fields   finds   devs   lens   getDiskParts   disks   append(	   s
   raidDevices   fs   fieldss   liness   devs   fields   rcs   lines   disk(    (    s0   /usr/share/rhn/up2date_client/checkbootloader.pys   getRaidDisks:   s*      c         C   sÄ   d d } |  t j o | Sn |  d d !d j o t |  d  } | i   n |  d g } x[ | D]S } yC t i d | f t i	  } t i | d  } t i |  | SWqe qe Xqe W| Sd S(   s;   Get the boot block from bootDev.  Return a 512 byte string.s    i   i   i   s   mds   /dev/%sN(   s   blocks   bootDevs   Nones   getRaidDiskss   bootDevss   sorts   devs   oss   opens   O_RDONLYs   fds   reads   close(   s   bootDevs   devs   bootDevss   fds   block(    (    s0   /usr/share/rhn/up2date_client/checkbootloader.pys   getBootBlockS   s$     
 c         C   sW   t  i |  d  d } t  i |  } t  i | d d  } t  i | d d  } | Sd  S(   Ns   =i   s   "s    s   '(   s   strings   splits   lines   devs   strips   replace(   s   lines   dev(    (    s0   /usr/share/rhn/up2date_client/checkbootloader.pys   getBootDevStringq   s
    s   /c         C   sm  d } d } t } t i |  t t i  o
 d } n t i |  t	 t i  o
 d } n | o t
 t d  } | i   } x3 | D]+ } | d d !d j o t |  } Pq q Wt |  } t i | d  d j o d Sqĺ n | o} t
 t	 d  } | i   } x3 | D]+ } | d d !d j o t |  } PqqWt |  } | d d	 !d
 j o d
 Sqin d  S(   Ni   i    s   ri   s   #boot=s   GRUBi   s   boot=i
   s   LILO(   s   haveGrubConfs   haveLiloConfs   Nones   bootDevs   oss   accesss   instRoots   grubConfigFiles   R_OKs   liloConfigFiles   opens   fs	   readliness   liness   lines   getBootDevStrings   getBootBlocks   blocks   strings   find(   s   instRoots   fs   liness   bootDevs   haveLiloConfs   blocks   lines   haveGrubConf(    (    s0   /usr/share/rhn/up2date_client/checkbootloader.pys   whichBootLoaderx   s:    

 	 	s   __main__s	   Found %s.s    Unable to determine boot loader.(   s   oss   syss   strings   grubConfigFiles   liloConfigFiles   getDiskParts   getRaidDiskss   getBootBlocks   getBootDevStrings   whichBootLoaders   __name__s
   bootloader(   s   getBootDevStrings   strings   getRaidDiskss   liloConfigFiles   oss   getBootBlocks   syss   getDiskParts
   bootloaders   grubConfigFiles   whichBootLoader(    (    s0   /usr/share/rhn/up2date_client/checkbootloader.pys   ?   s   		 			(	