]> git.mxchange.org Git - quix0rs-apt-p2p.git/blobdiff - apt_dht/MirrorManager.py
Add more to khashmir's DHT implementation.
[quix0rs-apt-p2p.git] / apt_dht / MirrorManager.py
index 6795cc04dd77b9428d0864fb6be9edab330f5593..dd8030a2c5b08cffbbe62923a10ca8260389c553 100644 (file)
@@ -9,6 +9,9 @@ from AptPackages import AptPackages
 
 aptpkg_dir='.apt-dht'
 
+class MirrorError(Exception):
+    """Exception raised when there's a problem with the mirror."""
+
 class MirrorManager:
     """Manages all requests for mirror objects."""
     
@@ -68,7 +71,7 @@ class MirrorManager:
         if site in self.apt_caches and baseDir in self.apt_caches[site]:
             return self.apt_caches[site][baseDir].findHash(path)
         d = defer.Deferred()
-        d.errback("Not Found")
+        d.errback(MirrorError("Site Not Found"))
         return d
 
 class TestMirrorManager(unittest.TestCase):
@@ -96,8 +99,8 @@ class TestMirrorManager(unittest.TestCase):
                     "%s hashes don't match: %s != %s" % (path, found_hash[0], true_hash))
 
     def test_findHash(self):
-        self.packagesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "Packages$" | tail -n 1').read().rstrip('\n')
-        self.sourcesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "Sources$" | tail -n 1').read().rstrip('\n')
+        self.packagesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "_main_.*Packages$" | tail -n 1').read().rstrip('\n')
+        self.sourcesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "_main_.*Sources$" | tail -n 1').read().rstrip('\n')
         for f in os.walk('/var/lib/apt/lists').next()[2]:
             if f[-7:] == "Release" and self.packagesFile.startswith(f[:-7]):
                 self.releaseFile = f
@@ -163,7 +166,7 @@ class TestMirrorManager(unittest.TestCase):
         d = self.client.findHash(idx_path)
         d.addCallback(self.verifyHash, idx_path, idx_hash)
 
-        d.addCallback(lastDefer.callback)
+        d.addBoth(lastDefer.callback)
         return lastDefer
 
     def tearDown(self):