r354 - in branches/rewrite: . src

Otavio Salvador partial-mirror-devel@lists.alioth.debian.org
Fri, 19 Nov 2004 16:26:37 -0700


Author: otavio
Date: Fri Nov 19 16:26:36 2004
New Revision: 354

Modified:
   branches/rewrite/   (props changed)
   branches/rewrite/src/Backend.py
   branches/rewrite/src/Dists.py
Log:
 r350@nurf:  otavio | 2004-11-19T23:26:17.054943Z
 Move upgrade logic to Dists instead of Backend. In backend we should have one management issues and not low level things.


Modified: branches/rewrite/src/Backend.py
==============================================================================
--- branches/rewrite/src/Backend.py	(original)
+++ branches/rewrite/src/Backend.py	Fri Nov 19 16:26:36 2004
@@ -17,13 +17,8 @@
 # $Id: DirManagement.py 249 2004-09-25 23:32:39Z zufus $
 
 
-import apt_pkg
-from os.path import basename
-
 from Config import *
 from Dists import *
-from PackageList import *
-from Package import *
 from Pool import *
 
 class Backend:
@@ -41,9 +36,6 @@
         self._cfg = config
         self._name = name
 
-        self.__bin = PackageList()
-        self.__source = PackageList()
-
         if isinstance(self._cfg.getBackend(self._name), ConfigBackendMirror):
             self._dists = RemoteDists(self)
         elif isinstance(self._cfg.getBackend(self._name), ConfigBackendMerge):
@@ -62,41 +54,8 @@
         self._dists.update()
 
     def upgrade (self):
-        bin = PackageList()
-        source = PackageList()
-
-        for f in self._dists.get_index():
-            # Choose object type
-            if basename(f) == 'Packages':
-                pkg = Package
-                pkglist = bin
-            elif basename(f) == 'Sources':
-                pkg = SourcePackage
-                pkglist = source
-
-            # Load file on list
-            parse = apt_pkg.ParseTagFile(open(f, "r"))
-            print "Loading", f
-            while parse.Step() == 1:
-                p = pkg(parse.Section)
-                pkglist.add(p)
-
-        pkgfilter = []
-        try:
-            pkgfilter = self._cfg.getOption('filter', self._name)
-        except InvalidOption:
-            pass
-
-        # Apply filter or use as final list
-        if pkgfilter:
-            self.__bin = bin.filter(pkgfilter)
-            self.__source = source.filter(pkgfilter)
-        else:
-            self.__bin = bin
-            self.__source = source
-
-        self.__bin.resolveDepends(bin)
-            
+        self._dists.upgrade()
+        
     def remove (self):
         """ Remove backend """
         self._pool.remove()

Modified: branches/rewrite/src/Dists.py
==============================================================================
--- branches/rewrite/src/Dists.py	(original)
+++ branches/rewrite/src/Dists.py	Fri Nov 19 16:26:36 2004
@@ -20,9 +20,14 @@
 # Add a control on md5sum to check wich files has to be updated
 
 
-import os
-from FileSystem import *
+from apt_pkg import ParseTagFile
+from os.path import basename, dirname
+from os import link
+
 from Download import *
+from FileSystem import *
+from Package import *
+from PackageList import *
 
 class Dists:
     """
@@ -34,6 +39,10 @@
         self._files = []
         self._dir = FileSystem(backend["mirror_dir"], backend["name"])
 
+        # Package lists
+        self.__bin = PackageList()
+        self.__source = PackageList()
+
     def _fill_files(self):
         # If we already have it doen't rerun
         if self._files:
@@ -75,6 +84,48 @@
                 files.append(str(f.split('.gz')[0]))
         return files
 
+    def upgrade(self):
+        bin = PackageList()
+        source = PackageList()
+
+        for f in self.get_index():
+            # Choose object type
+            if basename(f) == 'Packages':
+                pkg = Package
+                pkglist = bin
+            elif basename(f) == 'Sources':
+                pkg = SourcePackage
+                pkglist = source
+
+            # Load file on list
+            parse = ParseTagFile(open(f, "r"))
+            print "Loading", f
+            while parse.Step() == 1:
+                p = pkg(parse.Section)
+                pkglist.add(p)
+
+        pkgfilter = []
+        try:
+            pkgfilter = self._cfg.getOption('filter', self._name)
+        except InvalidOption:
+            pass
+
+        # Apply filter or use as final list
+        if pkgfilter:
+            self.__bin = bin.filter(pkgfilter)
+            self.__source = source.filter(pkgfilter)
+        else:
+            self.__bin = bin
+            self.__source = source
+
+        self.__bin.resolveDepends(bin)
+
+    def getBinaryPackagesList(self):
+        return self.__bin
+
+    def getSourcePackagesList(self):
+        return self.__source
+
 class RemoteDists (Dists):
     """
     This class provides methods to fill dists dir downloading remote files