From 6e02643d3f59cacee93de9037177f368621c87a6 Mon Sep 17 00:00:00 2001
From: Daira Hopwood <daira@jacaranda.org>
Date: Thu, 22 Nov 2012 05:33:35 +0000
Subject: [PATCH] Move code around and add new directories for cloud backend
 merge.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
---
 setup.py                                           |  5 +++++
 src/allmydata/scripts/debug.py                     | 14 +++++++-------
 src/allmydata/storage/backends/__init__.py         |  0
 src/allmydata/storage/backends/cloud/__init__.py   |  0
 .../storage/backends/cloud/s3/__init__.py          |  0
 src/allmydata/storage/backends/disk/__init__.py    |  0
 .../storage/{ => backends/disk}/immutable.py       |  0
 .../storage/{ => backends/disk}/mutable.py         |  0
 src/allmydata/storage/backends/null/__init__.py    |  0
 src/allmydata/storage/server.py                    |  4 ++--
 src/allmydata/storage/shares.py                    |  4 ++--
 src/allmydata/test/common.py                       |  2 +-
 src/allmydata/test/test_storage.py                 |  4 ++--
 src/allmydata/test/test_system.py                  |  2 +-
 14 files changed, 20 insertions(+), 15 deletions(-)
 create mode 100644 src/allmydata/storage/backends/__init__.py
 create mode 100644 src/allmydata/storage/backends/cloud/__init__.py
 create mode 100644 src/allmydata/storage/backends/cloud/s3/__init__.py
 create mode 100644 src/allmydata/storage/backends/disk/__init__.py
 rename src/allmydata/storage/{ => backends/disk}/immutable.py (100%)
 rename src/allmydata/storage/{ => backends/disk}/mutable.py (100%)
 create mode 100644 src/allmydata/storage/backends/null/__init__.py

diff --git a/setup.py b/setup.py
index d6fe60b9..ffa7ae93 100644
--- a/setup.py
+++ b/setup.py
@@ -455,6 +455,11 @@ setup(name=APPNAME,
                 'allmydata.mutable',
                 'allmydata.scripts',
                 'allmydata.storage',
+                'allmydata.storage.backends',
+                'allmydata.storage.backends.cloud',
+                'allmydata.storage.backends.cloud.s3',
+                'allmydata.storage.backends.disk',
+                'allmydata.storage.backends.null',
                 'allmydata.test',
                 'allmydata.util',
                 'allmydata.web',
diff --git a/src/allmydata/scripts/debug.py b/src/allmydata/scripts/debug.py
index 54dc1df2..79926a35 100644
--- a/src/allmydata/scripts/debug.py
+++ b/src/allmydata/scripts/debug.py
@@ -35,7 +35,7 @@ verify-cap for the file that uses the share.
         self['filename'] = argv_to_abspath(filename)
 
 def dump_share(options):
-    from allmydata.storage.mutable import MutableShareFile
+    from allmydata.storage.backends.disk.mutable import MutableShareFile
     from allmydata.util.encodingutil import quote_output
 
     out = options.stdout
@@ -52,7 +52,7 @@ def dump_share(options):
     return dump_immutable_share(options)
 
 def dump_immutable_share(options):
-    from allmydata.storage.immutable import ShareFile
+    from allmydata.storage.backends.disk.immutable import ShareFile
 
     out = options.stdout
     f = ShareFile(options['filename'])
@@ -153,7 +153,7 @@ def format_expiration_time(expiration_time):
 
 
 def dump_mutable_share(options):
-    from allmydata.storage.mutable import MutableShareFile
+    from allmydata.storage.backends.disk.mutable import MutableShareFile
     from allmydata.util import base32, idlib
     out = options.stdout
     m = MutableShareFile(options['filename'])
@@ -635,8 +635,8 @@ def call(c, *args, **kwargs):
 
 def describe_share(abs_sharefile, si_s, shnum_s, now, out):
     from allmydata import uri
-    from allmydata.storage.mutable import MutableShareFile
-    from allmydata.storage.immutable import ShareFile
+    from allmydata.storage.backends.disk.mutable import MutableShareFile
+    from allmydata.storage.backends.disk.immutable import ShareFile
     from allmydata.mutable.layout import unpack_share
     from allmydata.mutable.common import NeedMoreDataError
     from allmydata.immutable.layout import ReadBucketProxy
@@ -829,8 +829,8 @@ Obviously, this command should not be used in normal operation.
 
 def corrupt_share(options):
     import random
-    from allmydata.storage.mutable import MutableShareFile
-    from allmydata.storage.immutable import ShareFile
+    from allmydata.storage.backends.disk.mutable import MutableShareFile
+    from allmydata.storage.backends.disk.immutable import ShareFile
     from allmydata.mutable.layout import unpack_header
     from allmydata.immutable.layout import ReadBucketProxy
     out = options.stdout
diff --git a/src/allmydata/storage/backends/__init__.py b/src/allmydata/storage/backends/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/src/allmydata/storage/backends/cloud/__init__.py b/src/allmydata/storage/backends/cloud/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/src/allmydata/storage/backends/cloud/s3/__init__.py b/src/allmydata/storage/backends/cloud/s3/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/src/allmydata/storage/backends/disk/__init__.py b/src/allmydata/storage/backends/disk/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/src/allmydata/storage/immutable.py b/src/allmydata/storage/backends/disk/immutable.py
similarity index 100%
rename from src/allmydata/storage/immutable.py
rename to src/allmydata/storage/backends/disk/immutable.py
diff --git a/src/allmydata/storage/mutable.py b/src/allmydata/storage/backends/disk/mutable.py
similarity index 100%
rename from src/allmydata/storage/mutable.py
rename to src/allmydata/storage/backends/disk/mutable.py
diff --git a/src/allmydata/storage/backends/null/__init__.py b/src/allmydata/storage/backends/null/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/src/allmydata/storage/server.py b/src/allmydata/storage/server.py
index 857ea21a..2403e11b 100644
--- a/src/allmydata/storage/server.py
+++ b/src/allmydata/storage/server.py
@@ -10,10 +10,10 @@ import allmydata # for __full_version__
 
 from allmydata.storage.common import si_b2a, si_a2b, storage_index_to_dir
 _pyflakes_hush = [si_b2a, si_a2b, storage_index_to_dir] # re-exported
-from allmydata.storage.mutable import MutableShareFile, EmptyShare, \
+from allmydata.storage.backends.disk.mutable import MutableShareFile, EmptyShare, \
      create_mutable_sharefile
 from allmydata.mutable.layout import MAX_MUTABLE_SHARE_SIZE
-from allmydata.storage.immutable import ShareFile, BucketWriter, BucketReader
+from allmydata.storage.backends.disk.immutable import ShareFile, BucketWriter, BucketReader
 from allmydata.storage.crawler import BucketCountingCrawler
 from allmydata.storage.accountant import Accountant
 from allmydata.storage.expiration import ExpirationPolicy
diff --git a/src/allmydata/storage/shares.py b/src/allmydata/storage/shares.py
index 558bddc1..bcdf98c4 100644
--- a/src/allmydata/storage/shares.py
+++ b/src/allmydata/storage/shares.py
@@ -1,7 +1,7 @@
 #! /usr/bin/python
 
-from allmydata.storage.mutable import MutableShareFile
-from allmydata.storage.immutable import ShareFile
+from allmydata.storage.backends.disk.mutable import MutableShareFile
+from allmydata.storage.backends.disk.immutable import ShareFile
 
 def get_share_file(filename):
     f = open(filename, "rb")
diff --git a/src/allmydata/test/common.py b/src/allmydata/test/common.py
index 311a82c6..fe4d2aa0 100644
--- a/src/allmydata/test/common.py
+++ b/src/allmydata/test/common.py
@@ -17,7 +17,7 @@ from allmydata.check_results import CheckResults, CheckAndRepairResults, \
 from allmydata.storage_client import StubServer
 from allmydata.mutable.layout import unpack_header
 from allmydata.mutable.publish import MutableData
-from allmydata.storage.mutable import MutableShareFile
+from allmydata.storage.backends.disk.mutable import MutableShareFile
 from allmydata.util import hashutil, log, fileutil, pollmixin
 from allmydata.util.assertutil import precondition
 from allmydata.util.consumer import download_to_data
diff --git a/src/allmydata/test/test_storage.py b/src/allmydata/test/test_storage.py
index 150ba9bc..ab515fc2 100644
--- a/src/allmydata/test/test_storage.py
+++ b/src/allmydata/test/test_storage.py
@@ -12,8 +12,8 @@ import itertools
 from allmydata import interfaces
 from allmydata.util import fileutil, hashutil, base32, time_format
 from allmydata.storage.server import StorageServer
-from allmydata.storage.mutable import MutableShareFile
-from allmydata.storage.immutable import BucketWriter, BucketReader, ShareFile
+from allmydata.storage.backends.disk.mutable import MutableShareFile
+from allmydata.storage.backends.disk.immutable import BucketWriter, BucketReader, ShareFile
 from allmydata.storage.common import DataTooLargeError, storage_index_to_dir, \
      UnknownMutableContainerVersionError, UnknownImmutableContainerVersionError
 from allmydata.storage.leasedb import SHARETYPE_IMMUTABLE, SHARETYPE_MUTABLE
diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py
index 0f35f4ea..fe00fea3 100644
--- a/src/allmydata/test/test_system.py
+++ b/src/allmydata/test/test_system.py
@@ -8,7 +8,7 @@ from twisted.internet import threads # CLI tests use deferToThread
 
 import allmydata
 from allmydata import uri
-from allmydata.storage.mutable import MutableShareFile
+from allmydata.storage.backends.disk.mutable import MutableShareFile
 from allmydata.storage.server import si_a2b
 from allmydata.immutable import offloaded, upload
 from allmydata.immutable.literal import LiteralFileNode
-- 
2.45.2