;ò
êw?c           @   sÆ   d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z d k l Z l	 Z	 h  d h  d d <<d h  d d <<d h  d d <<d h  d d <<Z
 d	   Z d
 e  i  f d     YZ d  S(   N(   s   _s   N_s   caneatCheeses   versions   21s   supportsAutoUp2dateOptions   1s   registration.finish_messages#   registration.extendedPackageProfilec   	      C   så   t  } t i |  d  } g  } xŒ | D]Ž } y+ t t i	 t i | d d   \ } } Wn t j
 o
 q% n Xt i | d d  \ } } | d d j o	 d GHn | d  } h  d | <d	 | <} | i | | f  q% W| Sd  S(
   Ns   ,s   =i   s   (iÿÿÿÿs   )s2   something broke in parsing the capabilited headerss   versions   value(   s   Nones   values   strings   splits	   capstrings   capss   capslists   caps   maps   strips   key_versions
   ValueErrors   keys   versions   datas   append(	   s	   capstrings   caps   values   capss   versions   keys   capslists   datas   key_version(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   parseCap   s      +	
s   Capabilitiesc           B   s>   t  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s5   t  i  i |   h  |  _ t |  _ t i   |  _ d  S(   N(   s   UserDicts   __init__s   selfs   missingCapss
   neededCapss   configs   initUp2dateConfigs   cfg(   s   self(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   __init__5   s    		c         C   s`   xY | i   D]K } | d j o8 t | |  } x% | D] \ } } | |  i | <q7 Wq q Wd  S(   Ns   x-rhn-server-capability(   s   headerss   keyss   keys   parseCaps   capslists   caps   datas   self(   s   selfs   headerss   caps   keys   capslists   data(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   populate>   s      c         C   sŒ   t  i | d  } | d j oM t  i | d  } | d } | d } t t	 |  t	 |  d  } | Sn t  i | d  } t |  d j o t d   |  } | Sn t	 |  g Sd  S(   Ns   -i    i   s   :c         C   s
   t  |   S(   N(   s   ints   a(   s   a(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   <lambda>R   s    (   s   strings   finds   versionStrings   indexs   splits   rngs   starts   ends   ranges   ints   versionss   verss   lens   map(   s   selfs   versionStrings   indexs   verss   ends   versionss   rngs   start(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   parseCapVersionF   s    

c         C   s   |  i i |  o! t d  | } t |  i | <nJ |  i | } t | d  |  i
 | d  j o |  i | |  i | <n d  S(   NsX   This client requires the server to support %s, which the current server does not supports   version(   s   selfs   datas   has_keys   caps   _s   errstrs   Nones   missingCapss   ints   capvalues   parseCapVersions
   neededCaps(   s   selfs   caps   capvalues   errstrs   data(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   validateCapW   s    $c         C   s?   x. |  i i   D] } |  i | |  i |  q W|  i   d  S(   N(   s   selfs
   neededCapss   keyss   keys   validateCaps   workaroundMissingCaps(   s   selfs   key(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   validatec   s     c   	      C   sX  |  i } d } | i |  o | | =n d } | i |  o d |  i d <| | =n d |  i d <d } | i |  o d |  i d <| | =n d |  i d <d } | i |  o d |  i d <| | =n d |  i d <g  } g  } t |  oV xS | D]G } | | } | t
 j o | i | | f  qû | i | | f  qû Wn d	 } g  } t |  op xm | D]a \ } } | d
 | | d |  i | d f } | i h  d | <d | <d |  i | < qjWn t |  oQ xN | D]B \ } } | d | } | i h  d | <d | <d d	 < qçWn t |  o t i | |   n d  S(   Ns   caneatCheeses   supportsAutoUp2dateOptioni    i   s   registration.finish_messages   supportsFinishMessages#   registration.extendedPackageProfiles   supportsExtendedPackageProfiles    s3   Needs %s of version: %s but server has version: %s
s   versions   capNames   capInfos   serverVersions6   Needs %s but server does not support that capabilitie
(   s   selfs   missingCapss   tmpCapss   keys   has_keys   cfgs   wrongVersionCapss   lens   caps   capInfos   Nones   appends	   errStrings	   errorLists   datas   up2dateErrorss   ServerCapabilityError(	   s   selfs   missingCapss   keys   caps	   errorLists   tmpCapss   wrongVersionCapss	   errStrings   capInfo(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   workaroundMissingCapsi   sV    	  
 &7 0(   s   __name__s
   __module__s   __init__s   populates   parseCapVersions   validateCaps   validates   workaroundMissingCaps(    (    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   Capabilities4   s   						(   s   UserDicts   oss   syss   configs   up2dateErrorss	   rpcServers   strings   rhpl.translates   _s   N_s
   neededCapss   parseCaps   Capabilities(   s
   neededCapss   oss   parseCaps   UserDicts   up2dateErrorss   Capabilitiess   syss   N_s	   rpcServers   configs   _s   string(    (    s-   /usr/share/rhn/up2date_client/capabilities.pys   ?   s   							N	