r309 - branches/rewrite/src

Marco Presi partial-mirror-devel@lists.alioth.debian.org
Sat, 13 Nov 2004 09:25:51 -0700


Author: zufus
Date: Sat Nov 13 09:25:49 2004
New Revision: 309

Modified:
   branches/rewrite/src/Dists.py
   branches/rewrite/src/Pool.py
Log:
Pool.py: completed update methods also in Local and Remote Pools
subclasses

Dists.py: removed the call to updateBackend



Modified: branches/rewrite/src/Dists.py
==============================================================================
--- branches/rewrite/src/Dists.py	(original)
+++ branches/rewrite/src/Dists.py	Sat Nov 13 09:25:49 2004
@@ -74,8 +74,6 @@
         self.__fill_files()
         for f in self.__files:
             self._get(f)
-        self.__updateBackendPkgList()
-
 
     def get_index(self):
         """

Modified: branches/rewrite/src/Pool.py
==============================================================================
--- branches/rewrite/src/Pool.py	(original)
+++ branches/rewrite/src/Pool.py	Sat Nov 13 09:25:49 2004
@@ -33,16 +33,19 @@
         self._backendPkgList = backend.pkglist
         self._poolPkgList = PackageList()
         self._needUpdate = PackageList()
+        self._server = "%s/pool/" % (self._backend["server"])
+        self._local = "%/pool/" % (self._backend["mirror_dor"])
+
 
     def find_updates (self, backendList):
         """
         Look into the Backend PackageList and look for packages that
         have newer version on remote repository
         """
-        for pkg in backend.pkglist.items():
+        for (pkgName, pkg) in backend.pkglist.items():
             try:
                 p = self._poolPkgList.get(pkg)
-                if p['md5sum'] != pkg[1]['md5sum']:
+                if p['md5sum'] != pkg['md5sum']:
                     self._needUpdate.add(pkg)
             except PackageDoesNotExist:
                 self._needUpdate.add(pkg)
@@ -53,22 +56,36 @@
         Get from remote repository new version of packages that were
         previously downloaded
         """
-        self.download (self, self._needUpdate)
+        self.download (self._needUpdate)
     
     def download (self, plist):
         """
         Get the a PackageList
         """
-        
+        self._get (plist)
 
 class RemotePool (Pool):
     """
     This class provides methods to fill pool dir downloading remote files
     """
-    pass
+    def __init__(self, backend):
+        Pool.__init__(self, backend)
+
+    def self._get (self, plist):
+        for (pkg_name, pkg) in plist.items():
+            Download (self._server + pkg['Section'] + '/' + pkg['Filename'],
+                      self._local + pkg['Section'] + '/' + pkg['Filename'])
 
 class LocalPool (Pool):
     """
     This class provides methods to fill pool dir referring to local files
     """
-    pass
+    def __init__(self, backend):
+        Pool.__init__(self, backend)
+        self._server = self._server.lstrip ('file://')
+        
+    def self._get (plist):
+        for (pkg_name, pkg) in plist.items():
+            os.link (server + pkg['Section'] + '/' + pkg['Filename'],
+                     self._local + pkg['Section'] + '/' + pkg['Filename'])
+