r307 - in branches/rewrite: . src

Otavio Salvador partial-mirror-devel@lists.alioth.debian.org
Fri, 12 Nov 2004 11:53:42 -0700


Author: otavio
Date: Fri Nov 12 11:53:42 2004
New Revision: 307

Modified:
   branches/rewrite/   (props changed)
   branches/rewrite/src/Dists.py
Log:
 r253@nurf:  otavio | 2004-11-12T18:50:18.095147Z
 - Remove got_files;
 - Change files to private;
 - Add get_index method.
 


Modified: branches/rewrite/src/Dists.py
==============================================================================
--- branches/rewrite/src/Dists.py	(original)
+++ branches/rewrite/src/Dists.py	Fri Nov 12 11:53:42 2004
@@ -25,46 +25,59 @@
     This class provides methods to manage dists on partial-mirrors
     """
 
-    got_files = []
-
     def __init__ (self, backend):
         self._backend = backend
-        self.files = []
+        self.__files = []
         self._dir = Dir(backend["mirror_dir"], backend["name"])
 
-        for c in backend["components"]:
-            for d in backend["distributions"]:
-                for a in backend["architectures"]:
+    def __fill_files(self):
+        for c in self._backend["components"]:
+            for d in self._backend["distributions"]:
+                for a in self._backend["architectures"]:
 
                     server = "%s/dists/%s/%s/binary-%s/Packages.gz" \
-                             % (backend["server"], d, c, a)
+                             % (self._backend["server"], d, c, a)
                     filename = "%s/dists/%s/%s/binary-%s/Packages.gz" \
-                               % (backend["mirror_dir"] + backend["name"], d, c, a)
-                    self.files.append((server, filename))
+                               % (self._backend["mirror_dir"] + self._backend["name"], d, c, a)
+                    self.__files.append((server, filename))
 
                     server = "%s/dists/%s/%s/Release" \
-                             % (backend["server"], d, c,)
+                             % (self._backend["server"], d, c,)
                     filename = "%s/dists/%s/%s/Release" \
-                               % (backend["mirror_dir"] + backend["name"], d, c)
-                    self.files.append((server, filename))
+                               % (self._backend["mirror_dir"] + self._backend["name"], d, c)
+                    self.__files.append((server, filename))
                     
-                    if backend["get_sources"]:
+                    if self._backend["get_sources"]:
                         server = "%s/dists/%s/%s/source/Sources.gz" \
-                                 % (backend["server"], d, c,)
+                                 % (self._backend["server"], d, c,)
                         filename = "%s/dists/%s/%s/source/Sources.gz" \
-                                   % (backend["mirror_dir"] + backend["name"], d, c)
-                        self.files.append((server, filename))
+                                   % (self._backend["mirror_dir"] + self._backend["name"], d, c)
+                        self.__files.append((server, filename))
 
     def create (self):
         """ Get all files """
-        for f in self.files:
+        for f in self.__files:
             self._get(f)
 
     def update (self):
         """ Get only files that need updates """
-        for f in self.files:
+        self.__fill_files()
+        for f in self.__files:
             self._get(f)
 
+    def get_index(self):
+        """
+        Get only index files (on Debian, this mean: Packages.gz
+        and Sources.gz)
+        """
+        # TODO: Put checking using Release file when available.
+        files = []
+        self.__fill_files()
+        for url, f in self.__files:
+            if os.path.basename(str(f)) != "Release":
+                files.append(str(f))
+        return files
+
 class RemoteDists (Dists):
     """
     This class provides methods to fill dists dir downloading remote files
@@ -76,7 +89,6 @@
         server, filename = file
         self._dir.create(os.path.dirname(filename))
         Download(server, filename)
-        Dists.got_files.append(filename)
         
 class LocalDists (Dists):
     """
@@ -90,4 +102,3 @@
         orig, filename = file
         self._dir.create(os.path.dirname(filename))
         os.link (orig.lstrip('file://'), filename)
-        Dists.got_files.append(filename)