[tahoe-lafs-trac-stream] [tahoe-lafs] #1363: refactor storage_client.py, use IServer objects instead of rrefs
tahoe-lafs
trac at tahoe-lafs.org
Sun Feb 20 13:01:01 PST 2011
#1363: refactor storage_client.py, use IServer objects instead of rrefs
--------------------+-------------------------------------------------------
Reporter: warner | Owner: warner
Type: task | Status: new
Priority: major | Milestone: undecided
Component: code | Version: 1.8.2
Keywords: | Launchpad Bug:
--------------------+-------------------------------------------------------
There's an internal cleanup I've been meaning to do for a while. I started
it in source:src/allmydata/storage_client.py a few years ago (some of the
TODO notes at the top indicate my plans), but didn't follow through. The
goal is for the client to manage a collection of "{{{IServer}}}" objects,
each of which represents a storage server. These objects each hold a
{{{RemoteReference}}} and track metadata about the server (like nickname,
versions, etc).
As we start to handle other kinds of servers, these objects will be a
place to abstract out the common behavior. The change will be to support
#466, as signed announcements result in a different notion of "server id"
than unsigned ones. The {{{IServer}}} object will get some methods that
tell the caller what write-enabler seed or lease-renewal seed or peer-
selection seed to use.
The next change will be to move the details of interacting with the share
into {{{IServer}}}, such as the actual {{{callRemote}}} method names.
Then, when we add an HTTP-based server (which would use {{{GET}}} with a
{{{Range:}}} header), the uploader/downloader doesn't need to know quite
so much about the server type.
This ticket is to track the refactoring progress and host the patches for
review.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1363>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list