Implement metadata caching for S3 backend.
[cumulus.git] / python / cumulus / store / __init__.py
index 08b4517..35de0ee 100644 (file)
@@ -1,4 +1,4 @@
-import re, urlparse
+import exceptions, re, urlparse
 
 type_patterns = {
     'checksums': re.compile(r"^snapshot-(.*)\.(\w+)sums$"),
@@ -6,6 +6,11 @@ type_patterns = {
     'snapshots': re.compile(r"^snapshot-(.*)\.lbs$")
 }
 
+class NotFoundError(exceptions.KeyError):
+    """Exception thrown when a file is not found in a repository."""
+
+    pass
+
 class Store:
     """Base class for all cumulus storage backends."""
 
@@ -21,6 +26,17 @@ class Store:
     def delete(self, type, name):
         raise NotImplementedException
 
+    def stat(self, type, name):
+        raise NotImplementedException
+
+    def scan(self):
+        """Cache file information stored in this backend.
+
+        This might make subsequent list or stat calls more efficient, but this
+        function is intended purely as a performance optimization."""
+
+        pass
+
 def open(url):
     (scheme, netloc, path, params, query, fragment) \
         = urlparse.urlparse(url)