;ò
>5¡@c           @   sI  d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z e i i d ƒ d k	 l
 Z
 d k	 l Z d k	 l Z d k	 l Z d k	 l Z d k	 l Z d k	 l Z d	 k	 l Z d
 k	 l Z d  k Z d  k Z d e i f d „  ƒ  YZ d d d d „ Z d e
 i f d „  ƒ  YZ d e i f d „  ƒ  YZ d „  Z d  S(   Ns   /usr/share/rhn/(   s	   rpmSource(   s   rpmSourceUtils(   s
   rhnChannel(   s   repoDirector(   s   config(   s	   rpcServer(   s   rpmUtils(   s   up2dateUtils(   s   transactions   DirSolveDepc           B   s   t  Z d „  Z RS(   Nc         C   s   t  i i |  ƒ d |  _ d  S(   Ns   dir(   s   genericSolveDeps   SolveByHeadersSolveDeps   __init__s   selfs   type(   s   self(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   __init__   s    (   s   __name__s
   __module__s   __init__(    (    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   DirSolveDep   s   i    s   *c   
      C   sG  g  }	 y t i |  ƒ } Wn t i j
 o |	 Sn X| p d } t i | d ƒ } xç | D]ß } t i i t i i |  | ƒ ƒ } xf | D]^ } t i | | ƒ oE t i i | ƒ p | o t i i | ƒ o |	 i | ƒ qŠ qŠ qŠ qŠ W| oH t i i | ƒ o t i i | ƒ o |	 t | | | | ƒ }	 q;q\ q\ W|	 Sd  S(   Ns   *s   ;(   s   results   oss   listdirs   roots   namess   errors   patterns   strings   splitfieldss   pat_lists   names   paths   normpaths   joins   fullnames   pats   fnmatchs   isfiles   return_folderss   isdirs   appends   recurses   islinks   walk(
   s   roots   recurses   patterns   return_folderss   pats   names   namess   pat_lists   fullnames   result(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   walk$   s(    	 ! -'%s   DirRepoSourcec           B   s†   t  Z e e e d „ Z d „  Z e e d „ Z e e d „ Z e e d „ Z d „  Z e e d „ Z	 e e d „ Z
 e e d	 „ Z RS(
   Nc         C   s;   t  i ƒ  |  _ t i i |  d | ƒ| |  _ g  |  _	 d  S(   Ns   cacheObject(
   s   configs   initUp2dateConfigs   selfs   cfgs	   rpmSources   PackageSources   __init__s   cacheObjects   headerCaches   obsList(   s   selfs	   proxyHosts	   loginInfos   cacheObject(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   __init__G   s    	c         C   sd   t  i | t  i ƒ } t i ƒ  } y | i | ƒ } Wn t  i
 | ƒ t Sn Xt  i
 | ƒ | Sd  S(   N(   s   oss   opens   paths   R_OKs   fds   transactions   initReadOnlyTransactions   tss   hdrFromFdnos   hdrs   closes   None(   s   selfs   paths   hdrs   tss   fd(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   __getHeaderN   s    c      
   C   s  d |  i d | d | d f } | d } d | } d |  i d | d f } t | d d	 d
 d d d	 ƒ} g  } g  } g  |  _ t | ƒ } d	 } xö | D]î } t i i | ƒ }
 t i |
 d ƒ } | d } t i | ƒ d	 j o q n |  i | ƒ } t i | i ƒ  ƒ } t i | ƒ d } | d } | t" j o
 d } n t# | ƒ } | i$ | d | d | d | | d | | d | g ƒ q Wh  } xN | D]F } t' | d  ƒ } | i) | ƒ o g  | | <n | | i$ | ƒ qœWh  } x¦ | i+ ƒ  D]˜ } | d	 } t' | ƒ } | i) | ƒ o | | | | <qùn t. i/ | | d	 t0 | ƒ ƒ }	 |	 d	 j o qùn |	 d	 j  o | | | | <qùqùqùWg  } x< | i+ ƒ  D]. } | | } x | D] } | i$ | ƒ q¿Wq¨Wxy | D]q } | d } |  i | ƒ } t i | i ƒ  ƒ } | d o qán t. i4 | ƒ } | o |  i | |  _ qáqáW| i6 d „  ƒ t7 i8 | | | ƒ | Sd  S(   Ns   %s/%s.%ss
   storageDirs   labels   versions   paths   %s/*.rpms   %s/%s.*s   recursei    s   patterns   *.rpms   return_folderss   .iþÿÿÿi   s   epochs    s   names   releases   archi   i   s	   obsoletesc         C   s   t  |  d | d ƒ S(   Ni    (   s   cmps   as   b(   s   as   b(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   <lambda>Ë   s    (9   s   selfs   cfgs   channels   filePaths   paths   globPatterns   fileGlobPatterns   walks   rpmpathss   pkgLists   hdrLists   obsLists   lens   totals   counts   rpmpaths   oss   basenames   filenames   strings   splits   bitss   archs   rpms	   archscores   _DirRepoSource__getHeaders   hdrBufs   rpmUtilss   readHeaderBlobs   unloads   hdrs   stats   sizes   epochs   Nones   strs   appends   pkgsDicts   pkgs   tuples   pkgNvres   has_keys   latestPkgsDicts   keyss   pkgNames   tupNvres   up2dateUtilss   comparePackagess   lists   rets   names   pkgss   genObsoleteTupleFromHdrs   obss   sorts   rpmSourceUtilss   saveListToDisk(   s   selfs   channels   msgCallbacks   progressCallbacks   latestPkgsDicts   pkgs   totals   pkgLists   sizes   rets   filenames   epochs   pkgss   bitss   rpmpaths   pkgNames   names   filePaths   pkgsDicts   globPatterns   hdrBufs   rpmpathss   paths   archs   hdrs   counts   fileGlobPatterns   tupNvres   hdrLists   pkgNvres   obs(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   listPackages[   s„    "

	 


=  
  
  
c      
   C   sV  d |  i d | d | d f } | d } d | } d |  i d | d f } t | d d	 d
 d d d	 ƒ} g  } g  } xö | D]î } t i i | ƒ } t i | d ƒ }
 |
 d } t i | ƒ d	 j o q‚ n |  i | ƒ } t i | i ƒ  ƒ } t i | ƒ d } | d } | t j o
 d } n t | ƒ } | i  | d | d | d | | d | | d | g ƒ q‚ Wh  } xN | D]F } t# | d  ƒ } | i% | ƒ o g  | | <n | | i  | ƒ qWg  } x< | i& ƒ  D]. } | | }	 x |	 D] } | i  | ƒ qõWqÞW| i) d „  ƒ t* i+ | | | ƒ | Sd |  i d | d f } d  S(   Ns   %s/%s-all.%ss
   storageDirs   labels   versions   paths   %s/*.rpms   %s/%s.*s   recursei    s   patterns   *.rpms   return_folderss   .iþÿÿÿi   s   epochs    s   names   releases   archi   c         C   s   t  |  d | d ƒ S(   Ni    (   s   cmps   as   b(   s   as   b(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   <lambda>  s    s   %s/%s-all.*(,   s   selfs   cfgs   channels   filePaths   paths   globPatterns   fileGlobPatterns   walks   rpmpathss   pkgLists   hdrLists   rpmpaths   oss   basenames   filenames   strings   splits   bitss   archs   rpms	   archscores   _DirRepoSource__getHeaders   hdrBufs   rpmUtilss   readHeaderBlobs   unloads   hdrs   stats   sizes   epochs   Nones   strs   appends   pkgsDicts   pkgs   tuples   pkgNvres   has_keys   keyss   names   pkgss   sorts   rpmSourceUtilss   saveListToDisk(   s   selfs   channels   msgCallbacks   progressCallbacks   pkgs   pkgLists   sizes   filenames   epochs   pkgss   bitss   rpmpaths   names   filePaths   pkgsDicts   globPatterns   hdrBufs   rpmpathss   paths   archs   hdrs   fileGlobPatterns   hdrLists   pkgNvre(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   listAllPackagesÒ   sP    "

 


=  
 c         C   sÁ   d |  i d | d | d f } d |  i d | d f } |  i oE |  i i d „  ƒ t i |  i | | ƒ | o | d d ƒ q¤ n | o | d d ƒ n |  i o |  i Sn g  Sd  S(   Ns   %s/%s-obsoletes.%ss
   storageDirs   labels   versions   %s/%s-obsoletes.*c         C   s   t  |  d | d ƒ S(   Ni    (   s   cmps   as   b(   s   as   b(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   <lambda>&  s    i   (
   s   selfs   cfgs   channels   filePaths   globPatterns   obsLists   sorts   rpmSourceUtilss   saveListToDisks   progressCallback(   s   selfs   channels   msgCallbacks   progressCallbacks   filePaths   globPattern(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   getObsoletes  s    "

c         C   s&   t  i | i ƒ  ƒ } t i | ƒ d  S(   N(   s   rpmUtilss   readHeaderBlobs   hdrs   unloads   tmps   rpmSourceUtilss
   saveHeader(   s   selfs   hdrs   tmp(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   __saveHeader4  s    c   	      C   s¶   t  i ƒ  } | i | d ƒ } | d } t i | t i	 ƒ o t
 Sn |  i | ƒ } y t i | i ƒ  ƒ } Wn t
 Sn Xt i | ƒ | |  i t i | ƒ <|  i | ƒ | Sd  S(   Ni   i   (   s
   rhnChannels   getChannelss   channelss	   getByNames   pkgs   channels   filenames   oss   accesss   R_OKs   Nones   selfs   _DirRepoSource__getHeaders   hdrBufs   rpmUtilss   readHeaderBlobs   unloads   hdrs   rpmSourceUtilss
   saveHeaders   headerCaches   up2dateUtilss   pkgToStringArchs   _DirRepoSource__saveHeader(	   s   selfs   pkgs   msgCallbacks   progressCallbacks   hdrs   filenames   channelss   hdrBufs   channel(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys	   getHeader8  s    
c   	      C   sÙ   d | d | d | d | d f } t i ƒ  } | i | d ƒ } d |  i d | f } | d	 } | d
 |  i d j o; y t i | ƒ Wn t j
 o n Xt i | | ƒ n | o | d d ƒ n d Sd  S(   Ns   %s-%s-%s.%s.rpmi    i   i   i   i   s   %s/%ss
   storageDiri   s   path(   s   pkgs   pkgFileNames
   rhnChannels   getChannelss   channelss
   getByLabels   channels   selfs   cfgs   storageFilePaths   fileNames   oss   removes   OSErrors   symlinks   progressCallback(	   s   selfs   pkgs   msgCallbacks   progressCallbacks   channels   storageFilePaths   channelss   fileNames   pkgFileName(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys
   getPackageN  s    &
c         C   sˆ   d | d | f } | d |  i d j oT y t i | ƒ Wn t j
 o n X| o" | | ƒ t i	 t
 d | ƒ q€ n d Sd  S(   Ns   %s/%ss   srpmpaths   paths
   storageDiri    i   (   s   channels   srcpkgs   fileNames   selfs   cfgs   oss   removes   OSErrors   msgCallbacks   symlinks   tmpFileNames(   s   selfs   channels   srcpkgs   msgCallbacks   progressCallbacks   fileName(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   getPackageSourcei  s    
(   s   __name__s
   __module__s   Nones   __init__s   _DirRepoSource__getHeaders   listPackagess   listAllPackagess   getObsoletess   _DirRepoSource__saveHeaders	   getHeaders
   getPackages   getPackageSource(    (    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   DirRepoSourceF   s   	wH	s   DirRepoc           B   s   t  Z d „  Z d „  Z RS(   Nc      
   C   sH  t  i i |  ƒ t i ƒ  |  _ t ƒ  |  _ t i	 ƒ  } t i ƒ  |  _ t i d | ƒ |  _ t i ƒ  |  _ t i ƒ  |  _ | |  i _ h  d h  d d <d |  i <h  d d <d |  i <g <d h  d d <d |  i <h  d d <d |  i <g <d h  d d	 <d |  i <h  d d <d |  i <h  d d <d |  i <g <d
 h  d d <d |  i <h  d d <d |  i <h  d d	 <d |  i <h  d d <d |  i <g <d h  d d	 <d |  i <h  d d <d |  i <h  d d <d |  i <g <d h  d d <d |  i <h  d d <d |  i <g <|  _ d  S(   Ns   cacheObjects   listPackagess   names	   diskcaches   objects   dirs   getObsoletess
   getPackages	   localdisks	   getHeaders   memcaches   getPackageSources   listAllPackages(   s   genericRepos   GenericRepos   __init__s   selfs	   rpmSources	   DiskCaches   hdss   DirRepoSources   dss   HeaderCaches   localHeaderCaches	   LocalDisks   hldcs   HeaderMemoryCaches   hcss   pscs   headerCaches   sources(   s   selfs   localHeaderCache(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   __init__y  s    c         C   s   d  S(   N(    (   s   self(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   updateAuthInfo¢  s    (   s   __name__s
   __module__s   __init__s   updateAuthInfo(    (    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   DirRepox  s   	)c         C   s0   t  ƒ  } | |  i d <t ƒ  } | |  i d <d  S(   Ns   dir(   s   DirRepos   dirRepos   rds   handlerss   DirSolveDeps   dirSolveDeps   depSolveHandlers(   s   rds   dirRepos   dirSolveDep(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   register¥  s    		(   s   oss   syss   times   globs   strings   fnmatchs   rpms   paths   appends   up2date_clients	   rpmSources   rpmSourceUtilss
   rhnChannels   repoDirectors   configs	   rpcServers   rpmUtilss   up2dateUtilss   transactions   genericRepos   genericSolveDeps   SolveByHeadersSolveDeps   DirSolveDeps   walks   PackageSources   DirRepoSources   GenericRepos   DirRepos   register(   s	   rpcServers   walks   rpms   rpmSourceUtilss   DirRepoSources   genericRepos   DirSolveDeps   configs
   rhnChannels   DirRepos   strings	   rpmSources   globs   genericSolveDeps   syss   up2dateUtilss   repoDirectors   transactions   registers   times   fnmatchs   rpmUtilss   os(    (    s5   /usr/share/rhn/up2date_client/repoBackends/dirRepo.pys   ?   s2   										"ÿ 3-