;ò
>5¡@c           @   s±  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 l Z d k l Z d  k Z d  k Z d  k Z e	 i ƒ  Z e i ƒ  Z d d d d d d d d g Z d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d d „ Z! d d  „ Z" e d! „ Z# d" „  Z$ d# „  Z% d$ „  Z& d% „  Z' e( d& j o e' ƒ  n d  S('   Ns   /usr/share/rhn/(   s   up2dateErrors(   s   up2dateAuth(   s
   up2dateLog(   s   up2dateUtils(   s   up2date(   s   config(   s	   rpcServer(   s   rpmUtils(   s	   rollbacks(   s   rhnPackageInfo(   s   transactions   updates   removes   refresh_lists
   fullUpdates   checkNeedUpdates   runTransactions   verifys	   verifyAllc         C   s  |  t i j oa d | | d | d | d | d f } y t i | t i ƒ a	 Wn d | GHd Sn Xt	 Sn¦ |  t i
 j oL t | ƒ t d ƒ j o	 d	 GHqd
 | d | d | d | d f } nJ |  t i j o t i t	 ƒ n) |  t i j o n |  t i j o n d  S(   Ns   %s/%s-%s-%s.%s.rpms   names   versions   releases   archs   Error opening %s for readingiÿÿÿÿs    s   Repackaging...s   %s-%s-%s.%s.rpm(   s   whats   rpms   RPMCALLBACK_INST_OPEN_FILEs   paths   hdrs   fileNames   oss   opens   O_RDONLYs   fds   RPMCALLBACK_INST_STARTs   types   RPMCALLBACK_INST_CLOSE_FILEs   closes   RPMCALLBACK_INST_PROGRESSs   RPMCALLBACK_UNINST_STOP(   s   whats   amounts   totals   hdrs   paths   fileName(    (    s"   /usr/share/rhn/actions/packages.pys   rpmCallback*   s&     )		*c         C   s=  t  |  ƒ t  g  ƒ j o d d h  f Sn t i d |  ƒ y t i |  t ƒ WnÍ t i j
 oG } h  } d | d <d | d <t | i ƒ | d <d	 d
 | | f Sny t i j
 oA } h  } d | d <d | d <| i
 | d <d d
 | | f Sn* t i j
 o } d d | h  f Sn Xt i ƒ  d d |  h  f Sd S(   s0   We have been told that we should remove packagesi   s$   Invalid arguments passed to functions   Called remove_packagesi    s   versions   packages.remove.failed_depss   names   failed_depsi   s   %ss   packages.remove.rpmremoveerrorss   rpmremoveerrorsi   i   s7   %s could not be removed because it was on the skip lists   %s removed  successfullyN(   s   types   pkgLists   logs	   log_debugs   up2dates   removePackagess   rpmCallbacks   up2dateErrorss   DependencyErrors   es   datas   __cleanDepss   depss   RpmRemoveErrors   RpmRemoveSkipListErrors   up2dateUtilss   touchTimeStamp(   s   pkgLists   es   data(    (    s"   /usr/share/rhn/actions/packages.pys   removeI   s,     




c   
      C   s/  h  } t } d } t i ƒ  } | d o | d } n d | } y t i	 | ƒ d }	 Wn d d | f Sn Xy t i	 t i ƒ d } Wn d } n X| |	 d j o d d | f Sn | d j o; y  t t i d	 ƒ } | i ƒ  Wqd d
 | f SqXn t i ƒ  } | o | Sn t d d ƒ Sd  S(   Ns   /var/lib/rpms   dbpaths   %s/Packagesi   i    s   unable to stat the rpm databasei
   sN   rpm database not modified since last update (or package list recently updated)s   w+s!   unable to open the timestamp files   rhnsdi   (   s   datas   Nones   updates   dbpaths   configs   initUp2dateConfigs   cfgs   RPM_PACKAGE_FILEs   oss   stats   dbtimes   up2dateUtilss   LAST_UPDATE_FILEs   lasts   opens   files   closes   touchTimeStamps   rets   refresh_list(
   s   rhnsds   lasts   dbpaths   cfgs   updates   rets   files   RPM_PACKAGE_FILEs   datas   dbtime(    (    s"   /usr/share/rhn/actions/packages.pys   checkNeedUpdaten   s6    

c         C   s   |  t j o d Sn |  Sd  S(   Ns    (   s   values   None(   s   value(    (    s"   /usr/share/rhn/actions/packages.pys   noneToEmpty“   s    c      	   C   s¹   g  } x¢ |  D]š } | \ \ } } } \ }
 } } } } | | | |
 | | | | g }	 t t |	 ƒ \ } } } }
 } } } } | i | | | f |
 | f | | | f ƒ q Wt | ƒ Sd  S(   N(   s
   clean_depss   depss   deps   names   versions   releases	   needsNames   needsVersions   flagss	   suggesteds   senses   valuess   maps   noneToEmptys   appends   tuple(   s   depss	   suggesteds   needsVersions   deps   versions   flagss
   clean_depss   senses   releases   valuess	   needsNames   name(    (    s"   /usr/share/rhn/actions/packages.pys   __cleanDeps™   s     $'/c         C   sw   g  } xf |  D]^ } | \ } \ } } } | | | g } t t	 | ƒ \ } } } | i
 | | | | f f ƒ q W| Sd  S(   N(   s   clean_failuress   failuress   failures   msgs   flagss   suggests   senses   valuess   maps   noneToEmptys   append(   s   failuress   suggests   valuess   failures   flagss   senses   msgs   clean_failures(    (    s"   /usr/share/rhn/actions/packages.pys   __cleanFailures¨   s      c         C   s£   g  } x’ t t |  ƒ ƒ D]~ } |  | d } |  | d } t | ƒ } x9 t t | ƒ ƒ D]% } | | t
 j o d | | <q[ q[ W| i | | f ƒ q W| Sd  S(   Ni    i   s    (   s   clean_conflictss   ranges   lens	   conflictss   conflict_indexs   reasons   pkgs   lists   tmps   is   Nones   append(   s	   conflictss   tmps   is   reasons   conflict_indexs   pkgs   clean_conflicts(    (    s"   /usr/share/rhn/actions/packages.pys   __cleanConflicts±   s      c         C   s¾  t  } y t |  | ƒ } Wnšt i j
 o[ } h  } d | d <d | | d <| i
 o h  d | i
 <} n d d | i | f Sn2t i j
 oT } h  } | i o h  d | i <} n d | d <d	 | | d <d
 d | f SnÐt i j
 oZ } h  } | i o h  d t | i ƒ <} n d | d <d | | d <d d | f Snht i j
 ob } h  } | i o h  d t | i ƒ <} n d | d <d | | d <d d | d | f Snøt i j
 o” } h  } | i o h  d | i <} n | i o# | i | d <t i | i ƒ } n d } d | d <d | | d <d d | i | f | f SnVt i j
 o} | i oÜ y | i } t | i d d d ƒ t d ƒ j oZ | i d d | i d d d | i d d d t | i d d d ƒ f f g } n Wn1 t j
 o d } n t j
 o d } n Xh  d t  | ƒ <} n h  } d | d <d  | | d <d! d" | | f Sn*t i! j
 oX } | i o h  d# | i <} n h  } d | d <d$ | | d <d% d& | | f SnÄt i" j
 o[ } h  } | i# o h  d' | i# <} n d | d <d( | | d <d) d* | i# | f Sn[t i$ j
 o } d+ d, h  f Sn7t i% j
 oA } h  d- | <} d | d <d. | | d <d/ d0 | | f Snèt i& j
 oD } h  d1 | i
 <} d | d <d2 | | d <d3 d4 | | f Sn–t i' j
 oD } h  d5 | i
 <} d | d <d6 | | d <d7 d4 | h  f SnDt i( j
 o d8 d9 h  f Sn"t i) j
 o d: d; h  f Sn t i* j
 o } d< d4 | h  f SnØ t i+ j
 o } d= d4 | h  f Sn° t i, j
 oA } h  } | i- | d> <d | d <d? | | d <d@ dA | f Sna t i. j
 oQ } h  dB | i/ <} | i0 | dC <d | d <dD | | d <dE dF | | f Sn X| Sd  S(G   Ns   0s   versions   %s.package_install_failures   names   package_that_failedi    s/   Failed: Packages failed to install properly: %ss   packages_on_skip_lists   %s.packages_on_skip_listi   s:   Failed: Some of the packages specified were on a skip lists   failed_depss   %s.failed_depsi   s5   Failed: packages requested raised dependency problemss   failed_elementss   %s.failed_transactioni(   s<   Failed: The transaction failed for the following reasons:
%ss   packagess    s   %s.deps_on_skip_listi   s„   The dependency %s is provided by the folowing packages: %s, but they are not available due to client configuration (skip lists, etc)i    i   i   l    s7   There was a parsing error with the rpm conflict messages>   There was an overflow error converting the return code to intss   package_conflictss   %s.package_conflictsi   sC   Failed: There was a package conflict error with the package set: %ss   package_file_conflictss   %s.package_file_conflictsi   s>   Failed: There was file conflict error with the package set: %ss   dependency_senses   %s.dependency_sensei   s5   There was a dependency sense error with the sense: %si   s=   Failed: There was a communication error talking to the servers   missing_package_errors   %s.file_not_foundi   s;   Failed: There was a File Not Found error. The error was: %ss   unsigned_packages   %s.unsigned_packagei   sE   Failed: There was a package gpg verification error. The error was: %ss   gpg_failed_packages   %s.gpg_failed_packagei   i   s5   Failed: gpg is not properly installed on this machinei   sK   Failed: The package signing key for Red Hat, Inc. is not on the gpg keyringi*   i+   s   missing_packagess   %s.packages_not_availablei)   s9   Failed: Some of the packages requested are not available.s   space_requireds   space_availables   %s.out_of_spacei!   sB   Failed: The was an error installing the package: the error was: %s(1   s   Nones   rets   applys   methods   argss   up2dateErrorss   RpmInstallErrors   es   datas   names   pkgs   errmsgs   SkipListErrors   pkglists   DependencyErrors   depss   __cleanDepss   TransactionErrors   __cleanFailuress   UnsolvedDependencyErrors   deps   pkgss   up2dateUtilss   pkglistToStrings   packagess   ConflictErrors   rcs   tmprcs   types   ints	   TypeErrors   OverflowErrors   __cleanConflictss   FileConflictErrors   DependencySenseErrors   senses   CommunicationErrors   FileNotFoundErrors#   GPGVerificationUnsignedPackageErrors   GPGVerificationErrors   GPGInstallationErrors   GPGKeyringErrors    GPGVerificationUntrustedKeyErrors   GPGVerificationUnknownKeyErrors   PackageNotAvailableErrors   missing_packagess   OutOfSpaceErrors   tss   freeDiskSpace(   s   methods   names   argss   es   rets   tmprcs   packagess   data(    (    s"   /usr/share/rhn/actions/packages.pys   _catchErrors¿   sÚ    











	(^










c         C   s  t  |  ƒ t  g  ƒ j o d d h  f Sn t i d |  ƒ xd |  D]\ } | d | d j o | d j o
 d j n o  d | d <| d <d | d <qA qA Wt t d	 d |  f ƒ } t  | ƒ t  f  ƒ j o | Sn t i	 ƒ  t
 d
 o d d h  f Sn d d h  f Sd S(   s:   We have been told that we should retrieve/install packagesi   s$   Invalid arguments passed to functions   Called update_packagesi   i   i   s    i    s   packages.updates   retrieveOnlyst   Packages sucessfully retrieved but due to client specified options, the packages were downloaded, but not installed.s$   Packages were installed successfullyN(   s   types   pkgLists   logs	   log_debugs   pkgs   _catchErrorss   batchRuns   rets   up2dateUtilss   touchTimeStamps   cfg(   s   pkgLists   rets   pkg(    (    s"   /usr/share/rhn/actions/packages.pys   updateV  s       6
i    c         C   s¶   |  o d t d <n t t d d g  d f ƒ } h  } d | d <d | d <| i | d <| i | d	 <| i | d
 <| i	 | d <| i
 | d <| i | d <| i | d <d d | f Sd  S(   Ni   s   forceInstalls   packages.fullUpdates   0s   versions#   packages.fullUpdate.succesfulUpdates   names   packagesNotFounds   skippedPackagess   obsoletedPackagess   installedObsoletingPackagess   packagesToInstalls   depPackagess   kernelsToInstalli    s   Full update completed(   s   forces   cfgs   _catchErrorss   batchRuns   rets   datas   packagesNotFounds   skippedPackagess   obsoletedPackagess   installedObsoletingPackagess   packagesToInstalls   depPackagess   kernelsToInstall(   s   forces   rets   data(    (    s"   /usr/share/rhn/actions/packages.pys
   fullUpdatex  s    

c         C   sb   d k  l } | o% | i |  g  | d d d | ƒ} n" | i |  g  | d d d d ƒ} | Sd  S(   N(   s   wrappers
   fromDaemoni   s
   actionPkgss
   returnInfo(   s   up2date_clients   wrappers   pkgLists   batchRuns   onlyLists
   fullUpdates   ret(   s   onlyLists   pkgLists
   fullUpdates   wrappers   ret(    (    s"   /usr/share/rhn/actions/packages.pys   batchRunŠ  s    !c         C   s˜   t  i ƒ  } t i d ƒ t } t i ƒ  y t i ƒ  Wn d GHd d h  f Sn Xy t i	 ƒ  Wn d GHd d h  f Sn Xt
 i ƒ  d d h  f Sd  S(	   Ns   Called refresh_rpmlists8   ERROR: refreshing remote package list for System Profilei   s   Error refreshing package lists<   ERROR: refreshing remote transaction list for System Profiles!   Error refreshing transaction listi    s   rpmlist refreshed(   s	   rpcServers	   getServers   ss   logs	   log_debugs   Nones   rets   rhnPackageInfos   updatePackageProfiles   updateTransactionss   up2dateUtilss   touchTimeStamp(   s   rhnsds   rets   s(    (    s"   /usr/share/rhn/actions/packages.pys   refresh_list•  s     

c         C   sÝ   t  i ƒ  } |  | _ y t i | ƒ \ } } } WnL t
 i j
 o= } h  } | i | d <d | d <d | d <d d | f Sn Xt t i d | | | t f ƒ } t | ƒ t f  ƒ j o | Sn t i ƒ  d d	 h  f Sd  S(
   Ns   missing_packagesi    s   versions.   packages.runTransaction.packages_not_availables   namei)   s9   Failed: Some of the packages requested are not available.s   packages.runTransactions%   packages.transaction ran successfully(   s   transactions   TransactionDatas   tsds   transactionDatas   datas   up2dates   genTransactions   tss   addeds   removeds   up2dateErrorss   PackageNotAvailableErrors   es   missing_packagess   _catchErrorss   runTransactions   rpmCallbacks   rets   types   up2dateUtilss   touchTimeStamp(   s   transactionDatas   es   datas   tsds   tss   rets   addeds   removed(    (    s"   /usr/share/rhn/actions/packages.pys   runTransaction­  s    	

!
c         C   s“   t  i d ƒ h  } d | d <d | d <t i |  ƒ \ } } | | d <t | ƒ o/ d | d <d | d <| | d <d	 d
 | f Sn d d | f Sd  S(   Ns   Called packages.verifys   packages.verifys   namei    s   versions   verify_infos    packages.verify.missing_packagess   missing_packagesi+   s-   packages requested to be verified are missings   packages verified(	   s   logs	   log_debugs   datas   rpmUtilss   verifyPackagess   packagess   rets   missing_packagess   len(   s   packagess   rets   missing_packagess   data(    (    s"   /usr/share/rhn/actions/packages.pys   verifyÐ  s    





c          C   sN   t  i d ƒ h  }  d |  d <d |  d <t i ƒ  } | |  d <d d |  f Sd  S(   Ns   Called packages.verifyAlls   packages.verifyAlls   namei    s   versions   verify_infos   packages verified(   s   logs	   log_debugs   datas   rpmUtilss   verifyAllPackagess   ret(   s   datas   ret(    (    s"   /usr/share/rhn/actions/packages.pys	   verifyAllâ  s    


c          C   sb  t  i ƒ  d d d d f d f d d d d f d f g }  d	 d
 d d d f d f d	 d
 d d d f d f g } d	 d
 d d d f d f d	 d
 d d d f d f g } d	 d
 d d d f d f d	 d
 d d d f d f g } d	 d
 d d d f d f d	 d
 d d d f d f g } h  d | <} d d d d d f d d d d d f g } t	 | ƒ GHt
 ƒ  GHd  S(   Ns   wgets   1.8.2s   5s    s   us   cvss   1.11.2s   8s
   kernel-smps   2.4.21s   4.0.1.ELs   i686s   es   4.ELs   is   packagess   glibcs   pam(   s   up2dateAuths   updateLoginInfos	   packages1s	   packages2s
   packages2as	   packages3s
   packages3as   datas   pkgss   verifys	   verifyAll(   s	   packages1s	   packages2s	   packages3s
   packages2as
   packages3as   datas   pkgs(    (    s"   /usr/share/rhn/actions/packages.pys   mainî  s    
06666*s   __main__()   s   syss   paths   appends   up2date_clients   up2dateErrorss   up2dateAuths
   up2dateLogs   up2dateUtilss   up2dates   configs	   rpcServers   rpmUtilss	   rollbackss   rhnPackageInfos   transactions   rpms   times   oss   initUp2dateConfigs   cfgs   initLogs   logs   __rhnexport__s   rpmCallbacks   removes   Nones   checkNeedUpdates   noneToEmptys   __cleanDepss   __cleanFailuress   __cleanConflictss   _catchErrorss   updates
   fullUpdates   batchRuns   refresh_lists   runTransactions   verifys	   verifyAlls   mains   __name__("   s	   rpcServers   __cleanConflictss   __rhnexport__s   rpms   _catchErrorss	   rollbackss   rpmCallbacks
   up2dateLogs
   fullUpdates   verifys   cfgs   mains   configs	   verifyAlls   checkNeedUpdates   up2dateErrorss   batchRuns   noneToEmptys   updates   runTransactions   syss   up2dateUtilss   rhnPackageInfos   __cleanDepss   logs   refresh_lists   transactions   up2dates   removes   __cleanFailuress   up2dateAuths   times   rpmUtilss   os(    (    s"   /usr/share/rhn/actions/packages.pys   ?   sJ   				 		%%						—	"	#			+