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