فهرست منبع

Merge pull request #16 from Ernest0x/fix_repository_errors

Added missing repository path/url when raising DoesNotExist and AlreadyExists exceptions
Jonas Borgström 11 سال پیش
والد
کامیت
e9fd2bc5e8
2فایلهای تغییر یافته به همراه7 افزوده شده و 5 حذف شده
  1. 4 3
      attic/remote.py
  2. 3 2
      attic/repository.py

+ 4 - 3
attic/remote.py

@@ -71,6 +71,7 @@ class RemoteRepository(object):
             self.name = name
 
     def __init__(self, location, create=False):
+        self.repository_url = '%s@%s:%s' % (location.user, location.host, location.path)
         self.p = None
         self.cache = LRUCache(256)
         self.to_send = b''
@@ -105,9 +106,9 @@ class RemoteRepository(object):
             self.id = self.call('open', (location.path, create))
         except self.RPCError as e:
             if e.name == b'DoesNotExist':
-                raise Repository.DoesNotExist
+                raise Repository.DoesNotExist(self.repository_url)
             elif e.name == b'AlreadyExists':
-                raise Repository.AlreadyExists
+                raise Repository.AlreadyExists(self.repository_url)
 
     def __del__(self):
         self.close()
@@ -247,7 +248,7 @@ class RemoteRepository(object):
                 return res
         except self.RPCError as e:
             if e.name == b'DoesNotExist':
-                raise Repository.DoesNotExist
+                raise Repository.DoesNotExist(self.repository_url)
             raise
 
     def get_many(self, ids, peek=None):

+ 3 - 2
attic/repository.py

@@ -41,6 +41,7 @@ class Repository(object):
 
 
     def __init__(self, path, create=False):
+        self.path = path
         self.io = None
         self.lock = None
         if create:
@@ -216,7 +217,7 @@ class Repository(object):
             segment, offset = self.index[id]
             return self.io.read(segment, offset, id)
         except KeyError:
-            raise self.DoesNotExist
+            raise self.DoesNotExist(self.path)
 
     def get_many(self, ids, peek=None):
         for id in ids:
@@ -254,7 +255,7 @@ class Repository(object):
             self.compact.add(segment)
             self.segments.setdefault(segment, 0)
         except KeyError:
-            raise self.DoesNotExist
+            raise self.DoesNotExist(self.path)
 
     def add_callback(self, cb, data):
         cb(None, None, data)