storage: remove the leftover incoming/XYZ/ directory when we're done with it

This commit is contained in:
Brian Warner 2007-09-15 14:34:04 -07:00
parent 6a9040198c
commit d628d5f503
2 changed files with 17 additions and 0 deletions

View File

@ -195,6 +195,12 @@ class BucketWriter(Referenceable):
filelen = os.stat(self.finalhome)[stat.ST_SIZE]
self.ss.bucket_writer_closed(self, filelen)
# if we were the last share to be moved, remove the incoming/
# directory that was our parent
parentdir = os.path.split(self.incominghome)[0]
if not os.listdir(parentdir):
os.rmdir(parentdir)
class BucketReader(Referenceable):
implements(RIBucketReader)

View File

@ -202,6 +202,17 @@ class Server(unittest.TestCase):
renew_secret, cancel_secret,
sharenums, size, Referenceable())
def test_remove_incoming(self):
ss = self.create("test_remove_incoming")
already, writers = self.allocate(ss, "vid", range(3), 10)
for i,wb in writers.items():
wb.remote_write(0, "%10d" % i)
wb.remote_close()
incomingdir = os.path.join(self.workdir("test_remove_incoming"),
"shares", "incoming")
leftover_dirs = os.listdir(incomingdir)
self.failUnlessEqual(leftover_dirs, [])
def test_allocate(self):
ss = self.create("test_allocate")