;ò
½@c           @   s(  d  Z  d k l Z d k l Z d k Z d k Z d k Z d k Z d k Z d k l	 Z	 y d k
 Z
 Wn e j
 o e Z
 n Xd „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z e d j oC x@ e ƒ  D]1 Z x' e i ƒ  D] Z d e e e f GHqþ WHqë Wn d S(   s1   Used to read hardware info from kudzu, /proc, etc(   s   gethostname(   s   gethostbynameN(   s   ethtoolc          C   s4  g  } t i d t i ƒ o | Sn t d d ƒ i ƒ  } t i | d ƒ } xÝ | D]Õ } t
 | ƒ o qS n t i | d ƒ } h  } x‡ | D] } t
 | ƒ o q n t i | d ƒ } t
 | ƒ d j o q n t i | d ƒ }  |  | d <t i | d ƒ | | d <q W| o | i | ƒ qS qS W| Sd  S(   Ns   /etc/sysconfig/hwconfs   rs   -
s   
s   :i   i    (   s   rets   oss   accesss   R_OKs   opens   reads   hwlists   strings   splits   hws   lens   itemss   hwdicts   items   valss   strips   strippedstrings   joins   append(   s   strippedstrings   hws   rets   hwdicts   items   hwlists   itemss   vals(    (    s)   /usr/share/rhn/up2date_client/hardware.pys
   read_kudzu$   s0      
c          C   sß   t  i d t  i ƒ o h  Sn t d d ƒ i ƒ  } h  } d | d <x | D]ˆ }  t |  ƒ o qK n t	 i
 |  d ƒ } t | ƒ d j o qK n t	 i | d ƒ } | | d <t	 i t	 i | d ƒ ƒ | | d <qK W| Sd  S(   Ns   /etc/sysconfig/installinfos   rs   INSTALLINFOs   classs   =i   i    (   s   oss   accesss   R_OKs   opens	   readliness   installinfos   installdicts   infos   lens   strings   splits   valss   strips   strippedstrings   join(   s   infos   installdicts   strippedstrings   installinfos   vals(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   read_installinfo?   s     
 
(c          C   sc	  d „  }  t i d t i ƒ o h  Sn t o t i t i d ƒ n t d d ƒ i ƒ  }	 t
 i t i ƒ  d ƒ } h  d d <d d	 <} | d
 d j o | d d j p
 | d j o.d
 } h  } xê t
 i |	 d ƒ D]Ö } t | ƒ o qÚ n | d } | d j o qÚ n xš t
 i | d ƒ D]† } t | ƒ o q&n t
 i | d ƒ } t | ƒ d j o q&n t
 i | d
 ƒ t
 i | d ƒ f \ } }
 |
 | t
 i | ƒ <q&WqÚ W| d j o d | d <n d | d <| | d <|  | d ƒ | d <|  | d ƒ | d <|  | d ƒ | d <|  | d ƒ | d <|  | d ƒ | d <|  | d  ƒ | d! <|  | d" ƒ | d" <|  | d# ƒ | d$ <|  | d% ƒ } | d& j o
 d' } n y$ t t t | ƒ ƒ d ƒ | d( <Wqöt j
 o d) | d( <qöXn| d* d+ g j oÕh  } x£ t
 i |	 d ƒ D] } t | ƒ o qn t
 i | d ƒ } t | ƒ d j o qn t
 i | d
 ƒ t
 i | d ƒ f \ } }
 t
 i |
 ƒ | t
 i | ƒ <qWd* | d <|  | d, ƒ | d <|  | d- ƒ | d <|  | d. ƒ | d <|  | d/ ƒ | d <d0 |  | d1 ƒ |  | d2 ƒ f | d3 <|  | d4 ƒ | d <d& | d! <|  | d" ƒ | d" <|  | d5 ƒ | d$ <|  | d6 ƒ } t
 i | ƒ } y( t t t | d
 ƒ ƒ ƒ d7 | d( <Wqöt j
 o d) | d( <qöXn&| d8 g j oÚh  } d
 } xó t
 i |	 d ƒ D]ß } t | ƒ o q n | d } | d j o q n x£ t
 i | d ƒ D] } t | ƒ o qLn t
 i | d ƒ } t | ƒ d j o qLn t
 i | d
 ƒ t
 i | d ƒ f \ } }
 t
 i |
 ƒ | t
 i | ƒ <qLWq W| | d <| | d <|  | d9 ƒ | d <|  | d: ƒ | d <|  | d; ƒ | d <|  | d< ƒ | d <|  | d" ƒ | d" <| d% } y$ t t t | ƒ ƒ d ƒ | d( <Wn t j
 o d) | d( <n X|  | d= ƒ | d$ <n<| d> g j o½h  } d
 } xó t
 i |	 d ƒ D]ß } t | ƒ o qên | d } | d j o qên x£ t
 i | d ƒ D] } t | ƒ o q6n t
 i | d ƒ } t | ƒ d j o q6n t
 i | d
 ƒ t
 i | d ƒ f \ } }
 t
 i |
 ƒ | t
 i | ƒ <q6WqêW| | d <| | d <|  | d- ƒ | d <|  | d< ƒ | d <|  | d" ƒ | d" <|  | d? ƒ | d9 <|  | d@ ƒ dA  } y$ t t t | ƒ ƒ d ƒ | d( <Wqöt j
 o d) | d( <qöXno | | d <d | d <| | d <| | d <d& | d <d& | d <d& | d <d& | d! <d& | d" <d& | d$ <d
 | d( <| d o d | d <nL y t | d ƒ | d <Wn d | d <n  X| d d
 j o d | d <n | Sd  S(B   Nc         C   s4   t  i | ƒ } |  i | ƒ o d Sn |  | Sd  S(   Ns    (   s   strings   lowers   entrys   es   as   has_key(   s   as   entrys   e(    (    s)   /usr/share/rhn/up2date_client/hardware.pys	   get_entryU   s    s   /proc/cpuinfos   Cs   ri   s   classs   CPUs   descs	   Processori    s   iiþÿÿÿs   86s   x86_64s   

i   s   
s   :i   s   platforms   i386s   counts	   vendor_ids   types
   model names   models
   cpu familys   model_numbers	   model_vers   steppings	   model_revs
   cache sizes   caches   bogomipss   flagss   others   cpu mhzs    s   -1s   speediÿÿÿÿs   alphas   alphaev6s   cpus detecteds   cpus	   cpu models   cpu variations   %s/%ss   system types   system variations   model_versions   cpu revisions   platform strings   cycle frequency [Hz]i@B s   ia64s   vendors   familys   archrevs   revisions   featuress   ppc64s   machines   clockiýÿÿÿ(   s	   get_entrys   oss   accesss   R_OKs   locales	   setlocales
   LC_NUMERICs   opens   reads   cpulists   strings   lowers   unames   hwdicts   counts   tmpdicts   splits   cpus   lens   cpu_attrs   valss   strips   names   values	   mhz_speeds   ints   rounds   floats
   ValueErrors   hz_speed(   s	   get_entrys   hz_speeds   unames   tmpdicts   hwdicts	   mhz_speeds   valss   names   counts   cpulists   values   cpu_attrs   cpu(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   read_cpuinfoT   s6   		/ 
 ,


$ , 
&
( 
 ,$


$ 
 ,$

$










c          C   s!  t  i d t  i ƒ o h  Sn t d d ƒ i ƒ  } t i | d ƒ } | d } t i | ƒ } h  }  d |  d <t t | d ƒ d d ƒ } | d j  o | d	 | d	 } n | d
 | d
 } t | ƒ |  d <| d } t i | ƒ } t t | d ƒ d d ƒ } t | ƒ |  d <|  Sd  S(   Ns   /proc/meminfos   rs   
i   s   MEMORYs   classi   i    i   i   s   rami   s   swap(   s   oss   accesss   R_OKs   opens   reads   meminfos   strings   splits   liness   curlines   memlists   memdicts   ints   longs   megss   str(   s   memdicts   meminfos   curlines   liness   megss   memlist(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   read_memory   s$    


c          C   sá   t  i ƒ  } t i ƒ  } | d } t i | d ƒ d } d } | d o4 t
 i ƒ  } t i | d ƒ \ } } t | ƒ } n | i | | f ƒ | i ƒ  \ }  } y t i |  ƒ d } Wn d } n X| i ƒ  | |  f Sd  S(	   Ns	   serverURLs   /i   iP   s   enableProxys   :i    s   unknown(   s   configs   initUp2dateConfigs   cfgs   sockets   ss	   serverUrls   strings   splits   servers   ports   up2dateUtilss   getProxySettings   server_ports   ints   connects   getsocknames   intfs   gethostbyaddrs   hostnames   close(   s   intfs   cfgs   hostnames	   serverUrls   servers   ss   server_ports   port(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   findHostByRoute8  s"    


c          C   s™   h  } d | d <t ƒ  | d <y t t ƒ  ƒ | d <Wn d | d <n X| d d j p | d d j o' t ƒ  \ }  } |  | d <| | d <n | Sd  S(   Ns   NETINFOs   classs   hostnames   ipaddrs	   127.0.0.1s   localhost.localdomain(   s   netdicts   gethostnames   gethostbynames   findHostByRoutes   hostnames   ipaddr(   s   hostnames   ipaddrs   netdict(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   read_networkO  s    
"
6c          C   s2  h  }  d |  d <t i ƒ  } x| D]} y t i | ƒ } Wn d } n Xy t i | ƒ } Wn$ | d j o
 d } q† d } n Xy t i	 | ƒ } Wn d } n Xy t i | ƒ } Wn d } n Xy t i | ƒ } Wn d } n Xh  d | <d | <d	 | <d
 | <d | <|  | <q# W|  Sd  S(   Ns   NETINTERFACESs   classs    s   los   loopbacks   Unknowns   hwaddrs   ipaddrs   netmasks	   broadcasts   module(   s   intDicts   ethtools   get_devicess
   interfacess	   interfaces
   get_hwaddrs   hwaddrs
   get_modules   modules
   get_ipaddrs   ipaddrs   get_netmasks   netmasks   get_broadcasts	   broadcast(   s   intDicts
   interfacess   ipaddrs   modules	   broadcasts   hwaddrs   netmasks	   interface(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   read_network_interfaces–  s:    
 





;c    	      C   sä  t  i t i ƒ  d ƒ } h  } | d d j o | d d j o | d j o h  Sn y d  k } Wn h  Sn Xy | i ƒ  }  Wn d GHh  Sn X|  i d ƒ o |  d i	 d	 ƒ | d	 <d
 } |  d i d ƒ o d |  d d } n |  d i d ƒ o d | |  d d f } n | o | | d <q6n |  i d ƒ o2 |  d i	 d ƒ | d <|  d i	 d	 ƒ | d <n |  i d ƒ oI |  d i	 d	 ƒ | d <|  d i	 d ƒ | d <|  d i	 d ƒ | d <n d
 } x¯ d d d g D]ž } |  i | ƒ o qçn x} d d g D]o } |  | i | ƒ o qn t  i |  | | ƒ } | t d
 d d d g j o qn d | | | f } qWqçW| o | | d <n x1 | i ƒ  D]" } | | t j o | | =q¬q¬Wd | d <| Sd  S(   Ni   i    s   iiþÿÿÿs   86s   x86_64s   Reading DMI info faileds   systems   vendors    s   products   %ss   versions   %s %ss   boards   bioss   bios_vendors   bios_versions   releases   bios_releases   chassiss   serials   assets   Not Availables   Nones   N/As   %s(%s: %s) s   DMIs   class(   s   strings   lowers   oss   unames   dmidicts   dmis   DMIs   ds   has_keys   gets   ss   assets   ks   ls   strips   ts   Nones   keys(	   s   ds   dmidicts   dmis   ks   ls   ts   unames   ss   asset(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   read_dmiÂ  sd    1      
c          C   sî   g  } t ƒ  }  |  o
 |  } n t ƒ  }  |  o | i |  ƒ n t ƒ  }  |  o | i |  ƒ n t ƒ  }  |  o | i |  ƒ n t ƒ  }  |  o | i |  ƒ n t ƒ  }  |  o | i |  ƒ n t	 ƒ  }  |  o | i |  ƒ n | Sd  S(   N(
   s   allhws
   read_kudzus   rets   read_cpuinfos   appends   read_memorys   read_networks   read_dmis   read_installinfos   read_network_interfaces(   s   rets   allhw(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   Hardwareø  s.    	
	 	 	 	 		s   __main__s   '%s' : '%s'(   s   __doc__s   sockets   gethostnames   gethostbynames   oss   strings   configs   up2dateUtilss   rhpls   ethtools   locales   ImportErrors   Nones
   read_kudzus   read_installinfos   read_cpuinfos   read_memorys   findHostByRoutes   read_networks   read_network_interfacess   read_dmis   Hardwares   __name__s   hws   keyss   k(   s   read_networks   locales   read_network_interfacess   gethostnames   findHostByRoutes
   read_kudzus   configs   ethtools   strings   hws   gethostbynames   up2dateUtilss   read_memorys   read_dmis   sockets   ks   Hardwares   read_installinfos   read_cpuinfos   os(    (    s)   /usr/share/rhn/up2date_client/hardware.pys   ?
   s8   									Ì			G	,	6	+
  