r308 - in branches/rewrite: etc src
Marco Presi
partial-mirror-devel@lists.alioth.debian.org
Sat, 13 Nov 2004 08:48:00 -0700
Author: zufus
Date: Sat Nov 13 08:47:59 2004
New Revision: 308
Modified:
branches/rewrite/etc/debpartial-mirror.conf
branches/rewrite/src/Dists.py
branches/rewrite/src/PackageList.py
branches/rewrite/src/Pool.py
Log:
Pool.py: added "findUpdates" method
Dists.py: we should add a method to update BackendPackageList after we
updated the Packages.gz and Sources.gz
PackageList.py: fixed a simple bug in "get" method
Modified: branches/rewrite/etc/debpartial-mirror.conf
==============================================================================
--- branches/rewrite/etc/debpartial-mirror.conf (original)
+++ branches/rewrite/etc/debpartial-mirror.conf Sat Nov 13 08:47:59 2004
@@ -61,10 +61,10 @@
;; This backend is a local repository, as you can see from the use of the
;; file:// URL. The idea is that we have a set of custom-made packages
;; stored on the local computer.
-[local_custom_packages]
-server = file:///var/lib/custom-packages
-components = main
-distributions = local
+;;[local_custom_packages]
+;;server = file:///var/lib/custom-packages
+;;components = main
+;;distributions = local
;; These packages depend on Debian official packages. We will use the
;; "sarge" backend (above) to satisfy these dependencies.
Modified: branches/rewrite/src/Dists.py
==============================================================================
--- branches/rewrite/src/Dists.py (original)
+++ branches/rewrite/src/Dists.py Sat Nov 13 08:47:59 2004
@@ -16,6 +16,10 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# $Id$
+# TODO:
+# Add a control on md5sum to check wich files has to be updated
+
+
import os
from Dir import *
from Download import *
@@ -54,6 +58,12 @@
% (self._backend["mirror_dir"] + self._backend["name"], d, c)
self.__files.append((server, filename))
+
+ def __updateBackendPkgList(self):
+ """Update Package List of this Backend"""
+ print "Warning! updateBackendPkgList not complete!!\n"
+ pass
+
def create (self):
""" Get all files """
for f in self.__files:
@@ -64,6 +74,8 @@
self.__fill_files()
for f in self.__files:
self._get(f)
+ self.__updateBackendPkgList()
+
def get_index(self):
"""
@@ -98,7 +110,6 @@
Dists.__init__(self, backend)
def _get(self, file):
- print "LocalDists::_get(self, file): Warning!! Implementing yet! %s" % file
orig, filename = file
self._dir.create(os.path.dirname(filename))
os.link (orig.lstrip('file://'), filename)
Modified: branches/rewrite/src/PackageList.py
==============================================================================
--- branches/rewrite/src/PackageList.py (original)
+++ branches/rewrite/src/PackageList.py Sat Nov 13 08:47:59 2004
@@ -73,7 +73,7 @@
def items(self):
return self._name.items()
- def get(self, item):
+ def get(self, key):
if not self._name.has_key(key):
raise PackageDoesNotExist, key
return self._name[key]
Modified: branches/rewrite/src/Pool.py
==============================================================================
--- branches/rewrite/src/Pool.py (original)
+++ branches/rewrite/src/Pool.py Sat Nov 13 08:47:59 2004
@@ -19,6 +19,7 @@
import os
from Dir import *
+from PackageList import *
import Config
class Pool (Dir):
@@ -29,7 +30,36 @@
def __init__(self, backend):
self._backend = backend
-
+ self._backendPkgList = backend.pkglist
+ self._poolPkgList = PackageList()
+ self._needUpdate = PackageList()
+
+ 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():
+ try:
+ p = self._poolPkgList.get(pkg)
+ if p['md5sum'] != pkg[1]['md5sum']:
+ self._needUpdate.add(pkg)
+ except PackageDoesNotExist:
+ self._needUpdate.add(pkg)
+
+
+ def update (self):
+ """
+ Get from remote repository new version of packages that were
+ previously downloaded
+ """
+ self.download (self, self._needUpdate)
+
+ def download (self, plist):
+ """
+ Get the a PackageList
+ """
+
class RemotePool (Pool):
"""