Main leasedb changes.

* Split some functions of StorageServer into Accountant, Account and ExpirationPolicy.
* Remove lease-related methods from share classes, and use lease database instead.
* Stop using lease renew secrets.
* Repair tests.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Remove unused files storage/lease.py and storage/expirer.py.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Rename 'buckets' to 'sharesets' on storage status page.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
leasedb: use a semantic primary key (storage_index, shnum, account_id), rather than an integer, for the leases table.
Take advantage of this to simplify add_or_renew_leases.
Fix a bug in add_starter_lease (which is not used yet) when a starter lease already exists.
Clean up leftover accesses to self._dirty.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Add test_leasedb.py.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Add documentation for each storage backend.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Update terminology in RAIC design doc.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
.gitignore: changes to facilitate cloud backend merge.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Add dependency on our fork of txAWS (0.2.1.post5).
Add 'six' to ignorable package list because it is a dependency of txAWS via python-dateutil.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Move code around and add new directories for cloud backend merge.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Move BucketWriter and BucketReader to storage/bucket.py.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Add new files for cloud merge.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Changes and additions to interface documentation.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Changes to Bucket{Reader,Writer} and disk backend.
Delete storage/shares.py.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Changes to node classes (Node, Client and StorageServer).

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Changes to debug.py.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Simplify Account.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Fix bugs in Accountant.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Changes to fileutil.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
Changes to crawler classes (ShareCrawler and AccountingCrawler).
Pass in a Clock to allow (in theory) deterministic testing, although this isn't used yet by tests.
Simplify the generic ShareCrawler code by not attempting to track state during processing
of a single prefix.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>