;ò
>5¡@c           @   s-   d  k  Z  d k l Z d f  d „  ƒ  YZ d  S(   N(   s   RepoMDErrors   RepoMDc           B   sË   t  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 d „  Z RS(   s   represents the repomd xml filec         C   sx   | |  _  h  |  _ t i | ƒ } | i ƒ  } | i	 } | i } | d j o |  i | ƒ n t d | ‚ | i ƒ  d S(   s0   takes a repoid and a filename for the repomd.xmls   repomds$   Error: other unknown root element %sN(   s   repoids   selfs   repoDatas   libxml2s	   parseFiles   files   docs   getRootElements   roots   names   xmlfiletypes   childrens   nodes
   loadRepoMDs   RepoMDErrors   freeDoc(   s   selfs   repoids   files   nodes   xmlfiletypes   docs   root(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   __init__   s     				c         C   sd   |  i i | ƒ o@ |  i | } | i | ƒ o | | Sq` t d | | f ‚ n t d | ‚ d S(   s)    return the data from the repository Datas    Error: request %s not in %s datas   Error: odd MDtype requested: %sN(   s   selfs   repoDatas   has_keys   mdtypes   dss   requests   RepoMDError(   s   selfs   mdtypes   requests   ds(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   _returnData(   s     c         C   sa   |  i i | ƒ o= |  i | } | i | ƒ o | | | <q] t d | ‚ n t d | ‚ d S(   s–   stores repository data
           mdtype = primary, filelists, other, group
           dataname = checksum, timestamp, basepath, relativepath
        s2   Warning: duplicate data of %s description inputteds#   Warning: odd mdtype being put in %sN(   s   selfs   repoDatas   has_keys   mdtypes   dss   datanames   datas   RepoMDError(   s   selfs   mdtypes   datanames   datas   ds(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   _storeRepoData6   s     c   	      C   sO  | i d ƒ } |  i i | ƒ o h  |  i | <n | i } x| t j	 oý | i	 d j o | i
 } q@ n | i d j oH | i d ƒ } | i d ƒ } |  i | d | ƒ |  i | d | ƒ nv | i d j o5 | i d ƒ } | i } |  i | d | | f ƒ n1 | i d	 j o  | i } |  i | d	 | ƒ n | i
 } q@ q@ Wd
 S(   s+   loads a repository data node into the classs   types   elements   locations   bases   hrefs   basepaths   relativepaths   checksums	   timestampN(   s   nodes   props   mdtypes   selfs   repoDatas   has_keys   childrens   datanodes   Nones   types   nexts   names   bases   relatives   _storeRepoDatas   csumTypes   contents   csums	   timestamp(	   s   selfs   nodes	   timestamps   mdtypes   relatives   bases   datanodes   csums   csumType(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   loadRepoDataNodeG   s0     	 				c         C   sf   x_ | t j	 oQ | i d j o | i } q n | i d j o |  i | ƒ n | i } q q Wd S(   sD   iterates through the data nodes and populates some simple data areass   elements   dataN(   s   nodes   Nones   types   nexts   names   selfs   loadRepoDataNode(   s   selfs   node(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys
   loadRepoMDc   s      		c         C   s   |  i | d ƒ Sd S(   sW   returns a tuple of (checksum type, checksum) for the specified Metadata
           files   checksumN(   s   selfs   _returnDatas   mdtype(   s   selfs   mdtype(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys	   _checksumq   s     c         C   s2   |  i | d ƒ } |  i | d ƒ } | | f Sd S(   s=   returns location to specified metadata file, (base, relative)s   basepaths   relativepathN(   s   selfs   _returnDatas   mdtypes   bases   relative(   s   selfs   mdtypes   relatives   base(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys	   _locationw   s     c         C   s   |  i | d ƒ Sd S(   s-   returns timestamp for specified metadata files	   timestampN(   s   selfs   _returnDatas   mdtype(   s   selfs   mdtype(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys
   _timestamp~   s     c         C   s   |  i d ƒ Sd S(   sH   returns a tuple of (checksum type, checksum) for the other Metadata files   otherN(   s   selfs	   _checksum(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   otherChecksum‚   s     c         C   s   |  i d ƒ Sd S(   s9   returns location to other metadata file, (base, relative)s   otherN(   s   selfs	   _location(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   otherLocation†   s     c         C   s   |  i d ƒ Sd S(   s)   returns timestamp for other metadata files   otherN(   s   selfs
   _timestamp(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   otherTimestampŠ   s     c         C   s   |  i d ƒ Sd S(   sJ   returns a tuple of (checksum type, checksum) for the primary Metadata files   primaryN(   s   selfs	   _checksum(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   primaryChecksumŽ   s     c         C   s   |  i d ƒ Sd S(   s;   returns location to primary metadata file, (base, relative)s   primaryN(   s   selfs	   _location(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   primaryLocation’   s     c         C   s   |  i d ƒ Sd S(   s+   returns timestamp for primary metadata files   primaryN(   s   selfs
   _timestamp(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   primaryTimestamp–   s     c         C   s   |  i d ƒ Sd S(   sL   returns a tuple of (checksum type, checksum) for the filelists Metadata files	   filelistsN(   s   selfs	   _checksum(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   filelistsChecksumš   s     c         C   s   |  i d ƒ Sd S(   s=   returns location to filelists metadata file, (base, relative)s	   filelistsN(   s   selfs	   _location(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   filelistsLocationž   s     c         C   s   |  i d ƒ Sd S(   s-   returns timestamp for filelists metadata files	   filelistsN(   s   selfs
   _timestamp(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   filelistsTimestamp¢   s     c         C   s   |  i d ƒ Sd S(   sH   returns a tuple of (checksum type, checksum) for the group Metadata files   groupN(   s   selfs	   _checksum(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   groupChecksum¦   s     c         C   s   |  i d ƒ Sd S(   s9   returns location to group metadata file, (base, relative)s   groupN(   s   selfs	   _location(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   groupLocationª   s     c         C   s   |  i d ƒ Sd S(   s)   returns timestamp for group metadata files   groupN(   s   selfs
   _timestamp(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   groupTimestamp®   s     c         C   s   |  i i ƒ  Sd S(   s,   return list of metadata file types availableN(   s   selfs   repoDatas   keys(   s   self(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys	   fileTypes²   s     (   s   __name__s
   __module__s   __doc__s   __init__s   _returnDatas   _storeRepoDatas   loadRepoDataNodes
   loadRepoMDs	   _checksums	   _locations
   _timestamps   otherChecksums   otherLocations   otherTimestamps   primaryChecksums   primaryLocations   primaryTimestamps   filelistsChecksums   filelistsLocations   filelistsTimestamps   groupChecksums   groupLocations   groupTimestamps	   fileTypes(    (    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   RepoMD   s,    																				(   s   libxml2s   mdErrorss   RepoMDErrors   RepoMD(   s   RepoMDErrors   libxml2s   RepoMD(    (    s:   /usr/share/rhn/up2date_client/repoBackends/repoMDObject.pys   ?   s   	