;ò
êwƒ?c           @   sÁ   d  k  Z  d  k Z d  k Z d  k Z d  k Z d k l Z l Z d  k Z d  k Z d  k	 Z	 d  k
 Z
 d  k Z d  k Z d f  d „  ƒ  YZ d f  d „  ƒ  YZ d „  Z e d j o e ƒ  n d  S(   N(   s   _s   N_s   RollbackTransactionc           B   s5   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   s:   g  |  _ g  |  _ t |  _ t |  _ t |  _ t |  _ d  S(   N(   s   selfs   addedPackagess   removedPackagess   Nones   tids   removedLists	   addedLists   ts(   s   self(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __init__4   s    					c         C   sM   h  } |  i ƒ  \ |  _ |  _ |  i | d <|  i | d <|  i | d <| Sd  S(   Ns   addeds   removeds   tid(   s   datas   selfs   genNamess   removedLists	   addedLists   tid(   s   selfs   data(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   getData=   s    c   	      C   s  h  } g  } g  } xo |  i D]d \ } } d } | d o d | d } n | d | d | d | | d d f } | i	 | ƒ q Wxo |  i
 D]d \ } } d } | d o d | d } n | d | d | d | | d d	 f } | i	 | ƒ qŽ W| | f Sd  S(
   Ns    s   epochs   %ss   names   versions   releases   archs   -s   +(   s   datas   removedLists	   addedLists   selfs   removedPackagess   hdrs   instances   epochs   pkgInfos   appends   addedPackagess   filename(	   s   selfs	   addedLists   hdrs   pkgInfos   removedLists   instances   epochs   filenames   data(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   genNamesG   s$    
 (
 (c      	   C   sÑ   d } | d t i |  i ƒ |  i f } |  i ƒ  \ } } x? | D]7 } | d | d | d | d | d | d f } qB Wx? | D]7 } | d | d | d | d | d | d f } q„ W| d	 } | Sd  S(
   Ns    s   install time: %s	 tid:%s
s   		[%s] %s-%s-%s:%s
i   i    i   i   i   s   
(	   s   outs   times   ctimes   selfs   tids   genNamess   removedLists	   addedLists   pkgInfo(   s   selfs	   addedLists   pkgInfos   removedLists   out(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   displayY   s    # 5 5
c   	      C   s  |  i ƒ  t i ƒ  |  _ |  i i t i ƒ t i t i B} t i t i
 Bt i Bt i B} g  |  _ x' |  i D] \ } } |  i i | ƒ qn Wxä |  i D]Ù \ } } d | d j o* |  i i | ƒ |  i i | | d ƒ q˜ d } | d o | d } n t i d | d d | d d | d d	 | d	 ƒ } | o" t i t i
 Bt i Bt i B} n |  i i | | d
 ƒ q˜ W|  i i ƒ  } | o t i t d ƒ | ƒ ‚ n |  i i t i  t i Bt i! Bt i" Bƒ |  i i# | ƒ | o |  i i$ | ƒ n |  i Sd  S(   Ns   kernels   Providenames   is    s   epochs   names   versions   releases   archs   usA   Dependencies should have already been resolved, but they are not.(%   s   selfs   getDatas   rpms   TransactionSets   tss
   setVSFlagss   RPMVSF_NOMD5s   RPMPROB_FILTER_OLDPACKAGEs   RPMTRANS_FLAG_NOMD5s   tsflagss   RPMPROB_FILTER_REPLACENEWFILESs   RPMPROB_FILTER_REPLACEOLDFILESs   RPMPROB_FILTER_REPLACEPKGs	   probflagss   kernelss   addedPackagess   hdrs   instances   addErases   removedPackagess   filenames   appends
   addInstalls   epochs   rpmUtilss   installedHeaderByKeywords   hdrlists   checks   depss   up2dateErrorss   DependencyErrors   _s   RPMVSF_NODSAs   RPMVSF_NORSAs   RPMVSF_NEEDPAYLOADs   setFlagss   setProbFilter(	   s   selfs   hdrs   tsflagss   hdrlists	   probflagss   instances   epochs   depss   filename(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   genTransactione   s@    
	
 
 

"((   s   __name__s
   __module__s   __init__s   getDatas   genNamess   displays   genTransaction(    (    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   RollbackTransaction3   s
   			
		s   Rollbackc           B   sÑ   t  Z e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   sd   t  i ƒ  |  _ | o | |  _ n t i ƒ  |  _ |  i i d ƒ |  i ƒ  |  i	 ƒ  |  i
 ƒ  d  S(   Niÿÿÿÿ(   s
   up2dateLogs   initLogs   selfs   logs   tss   transactions   initReadOnlyTransactions   pushVSFlagss!   _Rollback__genAvailableTidHdrDicts!   _Rollback__genInstalledTidHdrDicts   _Rollback__genTransDict(   s   selfs   ts(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __init__±   s    

c         C   s”   h  |  _ x„ |  i i ƒ  D]s } t ƒ  } |  i i | ƒ o |  i | | _	 n |  i i | ƒ o |  i | | _
 n | | _ | |  i | <q Wd  S(   N(   s   selfs	   transDicts   availableTidHdrDicts   keyss   tids   RollbackTransactions   rollbackTransactions   installedTidHdrDicts   has_keys   addedPackagess   removedPackages(   s   selfs   tids   rollbackTransaction(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __genTransDictÌ   s    	 		c         C   sÈ   h  |  _ |  i i ƒ  } x£ | D]› \ } } } | d o: |  i i	 d | d | d | d | d f d ƒ q n |  i i
 | ƒ o |  i | i | | f ƒ q | | f g |  i | <q Wt } d  S(   Ns	   removetidsu   Warning: name: %s: removedtid %s:  installedtime: %s installedtid:
                %s removetid found in hdr in db.  s   names   installtimes
   installtidi   (   s   selfs   installedTidHdrDicts   tss   IDTXloads   tidlists   tids   hdrs   instances   logs	   log_debugs   has_keys   appends   None(   s   selfs   hdrs   tidlists   instances   tid(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __genInstalledTidHdrDictÛ   s    	 ,c         C   sÊ   h  |  _ h  |  _ |  i i ƒ  } | o d  Sn x’ | D]Š \ } } } | d o) d | d | d | d | d f GHn |  i i	 | ƒ o |  i | i
 | | f ƒ q8 | | f g |  i | <q8 Wd  S(   Ns
   installtids   Warning: name: %s: removedtid %s:  installedtime: %s installedtid:
                %s installedtid found in hdr in repackage dir s   names	   removetids   installtime(   s   selfs
   tidHdrDicts   availableTidHdrDicts   tss   IDTXglobs	   transLists   tids   hdrs   filenames   has_keys   append(   s   selfs   tids	   transLists   hdrs   filename(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __genAvailableTidHdrDictê   s    		 )c         C   s   |  i | Sd  S(   N(   s   selfs   availableTidHdrDicts   item(   s   selfs   item(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __getitem__ü   s    c         C   s   |  i | } g  } | Sd  S(   N(   s   selfs   availableTidHdrDicts   items   hdrlists   tmplist(   s   selfs   items   tmplists   hdrlist(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   getPackages   s    c         C   s   |  i i ƒ  Sd  S(   N(   s   selfs   availableTidHdrDicts   keys(   s   self(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   keys  s    c         C   s   |  i i ƒ  Sd  S(   N(   s   selfs   availableTidHdrDicts   values(   s   self(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   values	  s    c         C   s   |  i i | ƒ Sd  S(   N(   s   selfs   availableTidHdrDicts   has_keys   key(   s   selfs   key(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   has_key  s    c         C   sK   |  i i ƒ  } | i ƒ  d } x! | D] } | |  i | ƒ } q& W| Sd  S(   Ns    (   s   selfs   availableTidHdrDicts   keyss   tidlists   sorts   rets   tids   showTransaction(   s   selfs   tidlists   tids   ret(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   printTransactions  s    
 c         C   s,   |  i i | ƒ o |  i | i ƒ  Sn d  S(   N(   s   selfs	   transDicts   has_keys   tids   display(   s   selfs   tid(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   showTransaction  s    c         C   sC   h  } x2 |  i i ƒ  D]! } |  i | i ƒ  | d | <q W| Sd  S(   Ns   %s(   s   datas   selfs	   transDicts   keyss   tids   getData(   s   selfs   tids   data(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   getTransactionsData  s
     c         C   s:   |  i i ƒ  } | i ƒ  t | ƒ o | d Sn t Sd  S(   Niÿÿÿÿ(   s   selfs   availableTidHdrDicts   keyss   tidlists   sorts   lens   None(   s   selfs   tidlist(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   getLatestTid"  s
    
c         C   s`   |  i i ƒ  } g  } x, | D]$ } | | j o | i | ƒ q q W| i ƒ  | i	 ƒ  | Sd  S(   N(
   s   selfs   availableTidHdrDicts   keyss   tidlists	   sinceLists   is   tids   appends   sorts   reverse(   s   selfs   tids   tidlists	   sinceLists   i(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   getTidsSince*  s     

c         C   sO   |  i | i ƒ  } t i ƒ  } t i	 | | i
 d d ƒ} |  i | ƒ | Sd  S(   Ns   transdirs   /var/spool/repackage(   s   selfs	   transDicts   tids   genTransactions   transs   wrapperUtilss   RpmCallbacks   rpmCallbacks   rpmUtilss   runTransactions   callbacks   rets   removeStaleTransaction(   s   selfs   tids   rpmCallbacks   rets   trans(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   rollback5  s
    c         C   s=   t  } |  i | ƒ } x | D] } |  i | ƒ } q W| Sd  S(   N(   s   Nones   rets   selfs   getTidsSinces   tids   tidlists   is   rollback(   s   selfs   tids   tidlists   rets   i(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys
   doRollbackE  s     c         C   s;   |  i | } | i } x | i D] } |  i | ƒ q  Wd  S(   N(   s   selfs	   transDicts   tids   transs   removedLists   stalePackagess   pkgs   _Rollback__removePackage(   s   selfs   tids   transs   stalePackagess   pkg(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   removeStaleTransactionS  s
    	
 c         C   s†   t  i  d d t i | ƒ | d f ƒ } xV | D]N } |  i i d | ƒ y t	 i
 | ƒ Wq0 t i t d ƒ | ƒ ‚ q0 Xq0 Wd  S(   Ns
   %s/%s.%s.*s   /var/spool/repackagei   s   deleting %ss   cannot remove %s(   s   globs   up2dateUtilss   pkgToStrings   pkgs	   fileNamess   fileNames   selfs   logs   log_mes   oss   removes   up2dateErrorss	   FileErrors   _(   s   selfs   pkgs   fileNames	   fileNames(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   __removePackage[  s    ) c         C   sJ   |  i | } | i ƒ  } h  d | <d | d <d | d <} | Sd  S(   Ns   tids   removed_packagess   removeds   added_packagess   added(   s   selfs	   transDicts   tids   transs   getDatas   datas   infodict(   s   selfs   tids   infodicts   transs   data(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys
   getTidInfok  s    )c         C   s8   |  i ƒ  } | o t i d ƒ ‚ n |  i | ƒ Sd  S(   Ns%   No transactions available to rollback(   s   selfs   getLatestTids   tids   up2dateErrorss   NoRollbacksToUndoErrors
   getTidInfo(   s   selfs   tid(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   getUndoInfot  s    c         C   s,   |  i ƒ  } | o |  i | ƒ Sn d Sd  S(   Ns    (   s   selfs   getLatestTids   tids   showTransaction(   s   selfs   tid(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   previewUndoz  s    c         C   s7   |  i ƒ  } | o |  i | ƒ n t i d ƒ ‚ d  S(   Ns!   There are no transactions to undo(   s   selfs   getLatestTids   tids
   doRollbacks   up2dateErrorss   NoRollbacksToUndoError(   s   selfs   tid(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   undo  s    (   s   __name__s
   __module__s   Nones   __init__s   _Rollback__genTransDicts!   _Rollback__genInstalledTidHdrDicts!   _Rollback__genAvailableTidHdrDicts   __getitem__s   getPackagess   keyss   valuess   has_keys   printTransactionss   showTransactions   getTransactionsDatas   getLatestTids   getTidsSinces   rollbacks
   doRollbacks   removeStaleTransactions   _Rollback__removePackages
   getTidInfos   getUndoInfos   previewUndos   undo(    (    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   Rollback°   s,   																					c          C   s¢   d  k  } t i d d ƒ t ƒ  } | i ƒ  } d } d | GH| i ƒ  GH| i | } d | GH| i | i
 ƒ  }  d |  GHd | i | i ƒ  GH| i | ƒ GHd  S(   Ns   _unsafe_rollbackss   1i?ïÚ=s   latesttid: %ss   rollback.transDict[foo]: %ss*   rollback.transDict[foo].genTransaction: %ss%   rollback.transDict[foo].display(): %s(   s   syss   rpms   addMacros   Rollbacks   rollbacks   getLatestTids   foos   printTransactionss	   transDicts	   transdicts   genTransactions   transs   displays
   doRollback(   s   transs   rollbacks   syss	   transdicts   foo(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   mainˆ  s    					s   __main__(   s   oss   rpms   transactions   times   up2dateErrorss   rhpl.translates   _s   N_s   globs
   up2dateLogs   wrapperUtilss   rpmUtilss   up2dateUtilss   RollbackTransactions   Rollbacks   mains   __name__(   s   wrapperUtilss   transactions   Rollbacks
   up2dateLogs   oss   globs   up2dateErrorss   RollbackTransactions   N_s   up2dateUtilss   times   rpmUtilss   mains   rpms   _(    (    s*   /usr/share/rhn/up2date_client/rollbacks.pys   ?   s    											}Ø	$