tahoe-lafs/tahoe-lafs.git
12 years agoRequire Python 2.5.
david-sarah [Wed, 16 May 2012 02:41:49 +0000 (02:41 +0000)]
Require Python 2.5.

12 years agomisc/build_helpers/check-interfaces.py: avoid spurious warnings about ignored excepti...
david-sarah [Fri, 18 May 2012 02:12:52 +0000 (02:12 +0000)]
misc/build_helpers/check-interfaces.py: avoid spurious warnings about ignored exceptions on shutdown. Also make the check function able to write errors to an arbitrary stream.

12 years agodictutil.DictOfSets: remove .union() method, it was misleading
Brian Warner [Wed, 16 May 2012 23:50:57 +0000 (16:50 -0700)]
dictutil.DictOfSets: remove .union() method, it was misleading

Unlike set.union(), which returns a new set, DictOfSets.union() modified
the DictOfSets in-place. The name collision bit me when I changed some
code from using DictOfSets to a normal set, and expected that
set.union() would modify the set in-place. Since there was only one user
of DictOfSets.union, I figured it was safer to just get rid of it.

12 years agoimmutable repairer: populate servers-responding properly
Brian Warner [Wed, 16 May 2012 23:50:43 +0000 (16:50 -0700)]
immutable repairer: populate servers-responding properly

If a server did not respond to the pre-repair filecheck, but did respond
to the repair, that server was not correctly added to the
RepairResults.data["servers-responding"] list. (This resulted from a
buggy usage of DictOfSets.union() in filenode.py).

In addition, servers to which filecheck queries were sent, but did not
respond, were incorrectly added to the servers-responding list
anyawys. (This resulted from code in the checker.py not paying attention
to the 'responded' flag).

The first bug was neatly masked by the second: it's pretty rare to have
a server suddenly start responding in the one-second window between a
filecheck and a subsequent repair, and if the server was around for the
filecheck, you'd never notice the problem. I only spotted the smelly
code while I was changing it for IServer cleanup purposes.

I added coverage to test_repairer.py for this. Trying to get that test
to fail before fixing the first bug is what led me to discover the
second bug. I also had to update test_corrupt_file_verno, since it was
incorrectly asserting that 10 servers responded, when in fact one of
them throws an error (but the second bug was causing it to be reported
anyways).

12 years agoUpdate my (davidsarah) gpg fingerprint in CREDITS. Mwahaha! :-)
david-sarah [Wed, 16 May 2012 23:15:26 +0000 (23:15 +0000)]
Update my (davidsarah) gpg fingerprint in CREDITS. Mwahaha! :-)

12 years agofileutil.py: use try/finally to close file in write_atomically.
david-sarah [Wed, 16 May 2012 23:08:39 +0000 (23:08 +0000)]
fileutil.py: use try/finally to close file in write_atomically.

12 years agoChange logging.rst to address warner's review comment. refs #1693
david-sarah [Wed, 16 May 2012 22:13:29 +0000 (22:13 +0000)]
Change logging.rst to address warner's review comment. refs #1693

12 years agowrite node.url and portnum files atomically, to fix race in test_runner
Brian Warner [Mon, 14 May 2012 20:32:03 +0000 (13:32 -0700)]
write node.url and portnum files atomically, to fix race in test_runner

Previously, test_runner sometimes fails because the _node_has_started()
poller fires after the portnum file has been opened, but before it has
actually been filled, allowing the test process to observe an empty file,
which flunks the test.

This adds a new fileutil.write_atomically() function (using the usual
write-to-.tmp-then-rename approach), and uses it for both node.url and
client.port . These files are written a bit before the node is really up and
running, but they're late enough for test_runner's purposes, which is to know
when it's safe to read client.port and use 'tahoe restart' (and therefore
SIGINT) to restart the node.

The current node/client code doesn't offer any better "are you really done
with startup" indicator.. the ideal approach would be to either watch the
logfile, or connect to its flogport, but both are a hassle. Changing the node
to write out a new "all done" file would be intrusive for regular
operations.

12 years agoImprove a comment in __init__.py.
david-sarah [Mon, 14 May 2012 16:34:31 +0000 (16:34 +0000)]
Improve a comment in __init__.py.

12 years agoSuppress the PowmInsecureWarning from PyCrypto. refs #1586
david-sarah [Mon, 14 May 2012 03:23:52 +0000 (03:23 +0000)]
Suppress the PowmInsecureWarning from PyCrypto. refs #1586

12 years agoClarify an ambiguity about which version number is meant in quickstart.rst.
david-sarah [Mon, 14 May 2012 00:26:37 +0000 (00:26 +0000)]
Clarify an ambiguity about which version number is meant in quickstart.rst.

12 years agoperformance.rst: small updates, mention (lack of) MDMF
Brian Warner [Sun, 13 May 2012 21:07:39 +0000 (14:07 -0700)]
performance.rst: small updates, mention (lack of) MDMF

refs #1398

12 years agoCREDITS: add amiller, zooko, rearrange a bit
Brian Warner [Sun, 13 May 2012 17:32:17 +0000 (10:32 -0700)]
CREDITS: add amiller, zooko, rearrange a bit

12 years agoDoc updates and cosmetic fixes for #1115 patch.
Brian Warner [Sun, 13 May 2012 08:12:22 +0000 (01:12 -0700)]
Doc updates and cosmetic fixes for #1115 patch.

Removes the caveat from webapi.txt about count-good-share-hosts being wrong.

This series should close #1115.

12 years agoFixed an error in previous commit where an empty servermap would throw an exception...
Andrew Miller [Sun, 1 Apr 2012 23:31:53 +0000 (19:31 -0400)]
Fixed an error in previous commit where an empty servermap would throw an exception in 'count-good-share-hosts'. Augmented unit test.

Signed-off-by: Andrew Miller <amiller@dappervision.com>
12 years agoAdded tests for count-good-share-hosts under check and repair conditions. Patched...
Andrew Miller [Sun, 1 Apr 2012 05:55:19 +0000 (01:55 -0400)]
Added tests for count-good-share-hosts under check and repair conditions. Patched the incorrect computation in immutable/filenode.py

Signed-off-by: Andrew Miller <amiller@dappervision.com>
Fixed missing import statements

Signed-off-by: Andrew Miller <amiller@dappervision.com>
12 years agotest_web: fix use of headers= that's been wrong for a while
Brian Warner [Sun, 13 May 2012 07:42:24 +0000 (00:42 -0700)]
test_web: fix use of headers= that's been wrong for a while

12 years agowebapi: don't allow ETags in t=info or t=rename-form, both are variable
Brian Warner [Sun, 13 May 2012 07:41:53 +0000 (00:41 -0700)]
webapi: don't allow ETags in t=info or t=rename-form, both are variable

t=info contains randomly-generated ophandles, and t=rename-form contains the
name of the child being renamed, so neither is eligible for a
short-circuiting ETag. Enhanced test_web to exercise this. Had to improve
FakeCHKFileNode slightly to let it participate. Refs #443.

12 years agotest_web: improve ETag tests, add If-None-Match test
Brian Warner [Sun, 13 May 2012 07:19:20 +0000 (00:19 -0700)]
test_web: improve ETag tests, add If-None-Match test

12 years agoAdded unit tests covering #466:comment-15. Refactored the 'etag' behavior for immutab...
Andrew Miller [Sat, 31 Mar 2012 20:46:34 +0000 (16:46 -0400)]
Added unit tests covering #466:comment-15. Refactored the 'etag' behavior for immutable files to respond to all GET '?t=' flags, not just t=None

Signed-off-by: Andrew Miller <amiller@dappervision.com>
12 years agoShort circuit GET on ETags match
Jeremy Fitzhardinge [Sun, 13 May 2012 03:42:52 +0000 (20:42 -0700)]
Short circuit GET on ETags match

When client does a conditional GET/HEAD with If-none-match:, if the condition
fails (ie, the client's ETag matches the file's) then we can short-circuit
the whole process and immediately return an empty body.

12 years agoAdd ETags for immutable directories
Jeremy Fitzhardinge [Sun, 13 May 2012 03:42:52 +0000 (20:42 -0700)]
Add ETags for immutable directories

Like immutable files, the ETag is based on the storage index. However, since
a directory is a special interpretation of a file, it is distinguished from
the file by prepending "DIR:" onto the start of the ETag, and adding
-representation on the end (where -representation is the ?t= argument, json,
info, etc).

It also checks the return of setETag and avoids generating a representation
if the client already has it.

12 years agotest-dont-use-too-old-dep.py: fix tarfile timestamps
Brian Warner [Sun, 13 May 2012 06:33:11 +0000 (23:33 -0700)]
test-dont-use-too-old-dep.py: fix tarfile timestamps

It turns out that TarFile.addfile() doesn't provide a reasonable default
timestamp, resulting in files dated to 1970 (they're probably wearing
bell-bottoms and listening to disco too). Then, when the bdist_egg command
tries to create a *zip*file with those files, it explodes because zipfiles
cannot handle timestamps before 1980 (it prefers boomboxes and jackets with
straps on the shoulders, thank you very much).

This puts a modern time.time() on the members of the tarfile, allowing future
cryptocoderarchaeologists the opportunity to make fun of fashion trends from
the user's chosen era, rather than an artificially older one.

refs #1342

12 years agoAdd 'tahoe debug flogtool' command, test for --help, and docs. This version gets...
david-sarah [Sat, 31 Mar 2012 22:41:22 +0000 (22:41 +0000)]
Add 'tahoe debug flogtool' command, test for --help, and docs. This version gets the help synopses more correct, and changes the doc to say that this command is added in 1.10.0 rather than 1.9.2. fixes #1693

12 years agomodify build_helpers files
Zooko [Sun, 13 May 2012 03:42:52 +0000 (20:42 -0700)]
modify build_helpers files

Should close #1342. This makes the actual changes to the two test
files (separated from the 'rename' patch to avoid VC complications).

12 years agorename build_helpers files
Zooko [Sun, 13 May 2012 02:59:59 +0000 (19:59 -0700)]
rename build_helpers files

This is from the darcs patch for #1342, which failed to apply on my darcs
tree, so I'm landing it from git. I'm landing the rename-files part
separately from the modify-those-files part to avoid VC complications.

12 years agowebapi: remove undocumented t=mkdir-p operation
Brian Warner [Sun, 13 May 2012 02:19:43 +0000 (19:19 -0700)]
webapi: remove undocumented t=mkdir-p operation

Closes #380

12 years agoImprove webapi t=move docs.
Brian Warner [Wed, 9 May 2012 23:46:53 +0000 (16:46 -0700)]
Improve webapi t=move docs.

12 years agowebui: merge 'move' form with 'rename' form
Brian Warner [Wed, 9 May 2012 21:18:44 +0000 (14:18 -0700)]
webui: merge 'move' form with 'rename' form

12 years agotest_web: improve shouldFail2() error reporting
Brian Warner [Wed, 9 May 2012 21:18:37 +0000 (14:18 -0700)]
test_web: improve shouldFail2() error reporting

12 years agowebapi 'move'-button cleanups
Brian Warner [Wed, 9 May 2012 21:18:27 +0000 (14:18 -0700)]
webapi 'move'-button cleanups

test_web.py: use shouldFail2(), safer than old shouldFail()
directory.py: forbid slashes in from_name=, return BAD_REQUEST instead of
              GONE when trying to move into a non-directory

12 years agoAdd unit test for moving a directory
Marcus Wanner [Thu, 24 Nov 2011 06:51:42 +0000 (01:51 -0500)]
Add unit test for moving a directory

My gut tells me this case sould be tested. The rename suite tests it, so
move's will too.

12 years agoChange the arbitrary URI support from implied to explicit
Marcus Wanner [Sat, 19 Nov 2011 01:42:10 +0000 (20:42 -0500)]
Change the arbitrary URI support from implied to explicit

The move webapi function now takes a target_type argument which lets it
know whether the target is a subdirectory name or URI. This is an
improvement over the old system in which the move handler tried to guess
whether the target was a name or a URI. Also fixed a little docs
copypaste problem and tweaked some line wrapping.

12 years agoAdding 'move' button to web UI, closes #1579
Marcus Wanner [Thu, 10 Nov 2011 08:00:11 +0000 (03:00 -0500)]
Adding 'move' button to web UI, closes #1579

This adds "move file" capability to the web UI's directory display. The
support and test framework is heavily based on the similar "rename file"
feature. Unit tests and documentation are included. Multiple in-progress
versions of this patch may be found in ticket 1579. This version
includes arbitrary URI target support and is compatible with the change
from tahoe_css to tahoe.css.

12 years agoCREDITS: lebek
Zooko O'Whielacronx [Thu, 3 May 2012 17:30:33 +0000 (17:30 +0000)]
CREDITS: lebek

12 years agoMake sure that foolscap.logging.log.setLogDir is called with a str (not unicode)...
david-sarah [Sun, 29 Apr 2012 02:28:44 +0000 (02:28 +0000)]
Make sure that foolscap.logging.log.setLogDir is called with a str (not unicode) path, v2. Includes test. fixes #1725

12 years agointroweb announcements: show serverid, not tubid
Brian Warner [Tue, 24 Apr 2012 05:37:28 +0000 (01:37 -0400)]
introweb announcements: show serverid, not tubid

'serverid' is the pubkey (for V2 clients), falling back to the tubid (for V1
clients). This also required cleaning up the way the index is created for the
old V1 introducer.

12 years agoFix introweb display for mixed V1/V2 clients. Closes #1721.
Brian Warner [Mon, 23 Apr 2012 22:02:22 +0000 (18:02 -0400)]
Fix introweb display for mixed V1/V2 clients. Closes #1721.

This significantly cleans up the IntroducerServer web-status renderers.
Instead of poking around in the introducer's internals, now the web-status
renderers get clean AnnouncementDescriptor and SubscriberDescriptor
objects. They are still somewhat foolscap-centric, but will provide a clean
abstraction boundary for future improvements.

The specific #1721 bug was that old (V1) subscribers were handled by
wrapping their RemoteReference in a special WrapV1SubscriberInV2Interface
object, but the web-status display was trying to peek inside the object to
learn what host+port it was associated with, and the wrapper did not proxy
those extra attributes.

A test was added to test_introducer to make sure the introweb page renders
properly and at least contains the nicknames of both the V1 and V2 clients.

12 years agoUpdated webapi.rst to list /cap as a synonym for /uri
Patrick R McDonald [Wed, 11 Apr 2012 02:36:43 +0000 (21:36 -0500)]
Updated webapi.rst to list /cap as a synonym for /uri

12 years agoAdding jg71 to CREDITS 6/head
markus reichelt [Sat, 14 Apr 2012 14:01:07 +0000 (16:01 +0200)]
Adding jg71 to CREDITS

12 years agoFix for ticket #1662
Patrick R McDonald [Tue, 10 Apr 2012 14:55:25 +0000 (09:55 -0500)]
Fix for ticket #1662

12 years agodocs/frontends/drop-upload.rst: document more known issues and link to new ticket...
david-sarah [Fri, 6 Apr 2012 04:39:46 +0000 (04:39 +0000)]
docs/frontends/drop-upload.rst: document more known issues and link to new ticket for an existing one.

12 years agoChange capitalization of WUI and introducer welcome page headings; add test for intro...
david-sarah [Thu, 5 Apr 2012 23:57:23 +0000 (23:57 +0000)]
Change capitalization of WUI and introducer welcome page headings; add test for introducer welcome page. Also fix a typo in a CSS class name. fixes #1708

12 years agotest/common.py: remove ununsed 'is_bad' mechanism
Brian Warner [Wed, 4 Apr 2012 19:11:03 +0000 (12:11 -0700)]
test/common.py: remove ununsed 'is_bad' mechanism

This was a premature feature addition to the mock filenode, and gets in the
way of the IServer refactoring I'm trying to do. Best to remove it now and
re-introduce it in a better form later when it's actually needed.

12 years agochecker.py: minor simplifications
Brian Warner [Wed, 4 Apr 2012 19:05:31 +0000 (12:05 -0700)]
checker.py: minor simplifications

12 years agomake IServer instances retain identity in copy() and deepcopy()
Brian Warner [Wed, 4 Apr 2012 18:14:09 +0000 (11:14 -0700)]
make IServer instances retain identity in copy() and deepcopy()

12 years agomove IServer from storage_client.py to interfaces.py
Brian Warner [Wed, 4 Apr 2012 18:13:59 +0000 (11:13 -0700)]
move IServer from storage_client.py to interfaces.py

12 years agoRename web CheckResults to -Renderer, to avoid confusion. Closes #1705.
Brian Warner [Tue, 3 Apr 2012 03:02:59 +0000 (20:02 -0700)]
Rename web CheckResults to -Renderer, to avoid confusion. Closes #1705.

This avoids the name collision between the actual results
objects (defined in allmydata.check_results) and the code that renders
these objects into HTML (defined in allmydata.web.check_results). Only
the web-side objects were renamed.

12 years agowebapi.rst: de-tabify
Brian Warner [Mon, 2 Apr 2012 23:32:05 +0000 (16:32 -0700)]
webapi.rst: de-tabify

12 years agoservermap.py: oops, fix _done() condition, good catch by davidsarah
Brian Warner [Sun, 1 Apr 2012 22:08:42 +0000 (15:08 -0700)]
servermap.py: oops, fix _done() condition, good catch by davidsarah

12 years agodoc: cross-link known_issues.rst and cautions.rst with one another
Zooko O'Whielacronx [Sun, 1 Apr 2012 21:40:39 +0000 (21:40 +0000)]
doc: cross-link known_issues.rst and cautions.rst with one another

12 years agodocs: FTP-and-SFTP.rst: recommend SFTP
Zooko O'Whielacronx [Sun, 1 Apr 2012 21:20:02 +0000 (21:20 +0000)]
docs: FTP-and-SFTP.rst: recommend SFTP

Add an explicit recommendation of SFTP over FTP. Separate the known issues of
FTP from SFTP. List "SFTP" first in all lists of the two. Use unicode bullet
points and prepend a utf-8 BOM. Use out-of-line rst hyperlinks.

13 years agointerfaces.py: ensure that NoSuchChildError can be converted to str even when it...
david-sarah [Sun, 14 Aug 2011 22:59:59 +0000 (22:59 +0000)]
interfaces.py: ensure that NoSuchChildError can be converted to str even when it is for a non-ASCII name. fixes #1483

12 years agomisc/build_helpers/show-tool-versions.py: s/print_stderr/print_stdout/
david-sarah [Sun, 1 Apr 2012 02:28:26 +0000 (02:28 +0000)]
misc/build_helpers/show-tool-versions.py: s/print_stderr/print_stdout/

13 years agobin/tahoe-script.template: fix the error message that is displayed when a runner...
david-sarah [Wed, 17 Aug 2011 22:26:51 +0000 (22:26 +0000)]
bin/tahoe-script.template: fix the error message that is displayed when a runner script cannot be found. fixes #1488

12 years agodocs: quickstart: edits
Zooko O'Whielacronx [Sun, 1 Apr 2012 01:57:17 +0000 (01:57 +0000)]
docs: quickstart: edits

• use out-of-line links to avoid a warning from rst2html --verbose (fixes #1704)
• reflow to 77 fill-column and prepend utf-8 BOM (fixes #1703)
• recommend Python 2.7 (fixes #1702)
• remove link to wiki:AdvancedInstall (fixes #1701)

12 years agoSpelling error in a comment.
david-sarah [Sun, 1 Apr 2012 01:36:55 +0000 (01:36 +0000)]
Spelling error in a comment.

13 years agotest_node.py: test that we tolerate a UTF-8 BOM at the start of tahoe.cfg, and can...
david-sarah [Mon, 8 Aug 2011 18:05:52 +0000 (18:05 +0000)]
test_node.py: test that we tolerate a UTF-8 BOM at the start of tahoe.cfg, and can read UTF-8 option values. refs #1470

13 years agonode.py: tolerate a UTF-8 BOM at the start of tahoe.cfg. fixes #1470
david-sarah [Mon, 8 Aug 2011 18:02:04 +0000 (18:02 +0000)]
node.py: tolerate a UTF-8 BOM at the start of tahoe.cfg. fixes #1470

13 years agomutable/layout.py: improve confusing documentation of layout. fixes #1534
david-sarah [Wed, 14 Sep 2011 14:39:47 +0000 (14:39 +0000)]
mutable/layout.py: improve confusing documentation of layout. fixes #1534

12 years agosetup: show-tool-versions: report cl only on windows, report buildslave, git, openssl...
Zooko O'Whielacronx [Sun, 1 Apr 2012 00:59:25 +0000 (00:59 +0000)]
setup: show-tool-versions: report cl only on windows, report buildslave, git, openssl, and lzip, but not 7za

12 years agoDocument PYTHONPATH problem when running flogtool. refs #1693
david-sarah [Sat, 31 Mar 2012 22:39:34 +0000 (22:39 +0000)]
Document PYTHONPATH problem when running flogtool. refs #1693

12 years agoMutable repair: use new MODE_REPAIR to query all servers *and* get privkey
Brian Warner [Sat, 31 Mar 2012 06:56:41 +0000 (23:56 -0700)]
Mutable repair: use new MODE_REPAIR to query all servers *and* get privkey

This fixes bug #1689. Repair was using MODE_READ to build the servermap,
which doesn't try hard enough to grab the privkey, and also doesn't guarantee
sending queries to all servers. This patch adds a new MODE_REPAIR which does
both, and does a separate, distinct mapupdate to start wth repair cycle,
instead of relying upon the (MODE_CHECK) mapupdate leftover from the
filecheck that triggered the repair.

12 years agoAdd test for bug #1689: repairing empty file hits no-privkey assertion
Brian Warner [Sat, 31 Mar 2012 18:36:20 +0000 (11:36 -0700)]
Add test for bug #1689: repairing empty file hits no-privkey assertion

12 years agoFTP-and-SFTP.rst: there were two more instances of 'rootcap'. Also made the wording...
david-sarah [Sat, 31 Mar 2012 02:32:47 +0000 (02:32 +0000)]
FTP-and-SFTP.rst: there were two more instances of 'rootcap'. Also made the wording tweak from ticket:1487#comment:4 . fixes #1487

12 years agotest_ftp.py: fix a couple of unused imports. refs #1668
david-sarah [Sat, 31 Mar 2012 02:17:25 +0000 (02:17 +0000)]
test_ftp.py: fix a couple of unused imports. refs #1668

12 years agoFTP-and-SFTP.rst: directories containing mutable files should now be listable via...
david-sarah [Sat, 31 Mar 2012 01:37:30 +0000 (01:37 +0000)]
FTP-and-SFTP.rst: directories containing mutable files should now be listable via FTP. refs #680

12 years agoftpd file `size' attribute must be an integer
Peter Le Bek [Thu, 22 Mar 2012 13:18:06 +0000 (13:18 +0000)]
ftpd file `size' attribute must be an integer

12 years agounit test for ftpd LIST
Peter Le Bek [Fri, 30 Mar 2012 23:41:39 +0000 (23:41 +0000)]
unit test for ftpd LIST

12 years agofix ftpd mtime retrieval
Peter Le Bek [Fri, 30 Mar 2012 23:41:19 +0000 (23:41 +0000)]
fix ftpd mtime retrieval

12 years agotest_introducer.SystemTest: fix race condition
Brian Warner [Sat, 31 Mar 2012 00:29:06 +0000 (17:29 -0700)]
test_introducer.SystemTest: fix race condition

SystemTest has a couple of different phases, separated by a poller which
waits for everything to be idle (all messages delivered, none in flight). It
does this by watching some internal "_debug_outstanding" counters in the
server and in each client, and waiting for them to hit zero.

Just before the last phase, we replace the server with a new one (to make
sure clients re-send their messages properly). Unfortunately, the polling
function closed over the variable holding the original server, and didn't see
the replacement. It kept polling the old server, and failed to notice the
outstanding messages for the new server. The last phase of the test (check3)
was started too early, which failed (since some messages had not yet been
delivered), and then exploded in a flurry of dirty-reactor errors (because
some messages were delivered after test shutdown).

This replaces the closed-over-variable with a "self.the_introducer", which
seems to fix the race.

One additional place to look at in the future: the client
announcement-receive path (remote_announce) uses an eventually(). If the
message has been received and the eventual-send posted (but not yet executed)
when the poller sees it, the poller might erroneously conclude that the
client is idle and cause the same problem as above. To fix this, the poller
(probably all pollers) could be enhanced to do a flushEventualQueue before
querying the are-we-done-yet predicate function.

12 years agoCosmetic formatting in docs.
david-sarah [Thu, 22 Mar 2012 22:05:34 +0000 (22:05 +0000)]
Cosmetic formatting in docs.

12 years agoPut SFTP before FTP in various docs. fixes #1692
david-sarah [Thu, 22 Mar 2012 22:04:53 +0000 (22:04 +0000)]
Put SFTP before FTP in various docs. fixes #1692

12 years agoCorrect a link to frontends/drop-upload.rst. fixes #1690
david-sarah [Thu, 22 Mar 2012 22:01:18 +0000 (22:01 +0000)]
Correct a link to frontends/drop-upload.rst. fixes #1690

12 years agoFix mutable status (mapupdate/retrieve/publish) to use serverids, not tubids
Brian Warner [Sat, 17 Mar 2012 23:52:32 +0000 (16:52 -0700)]
Fix mutable status (mapupdate/retrieve/publish) to use serverids, not tubids

This still leaves immutable-publish results incorrectly using tubids instead
of serverids. That will need some more work, since it might change the Helper
interface.

12 years agoIServer.get_name(): remove v0- prefix from displayed server names
Brian Warner [Wed, 14 Mar 2012 23:36:40 +0000 (16:36 -0700)]
IServer.get_name(): remove v0- prefix from displayed server names

Don't remove the prefix if it isn't there: that avoids the need to fix tests
which use a bogus key (usually all-zeros).

12 years agoFix a missing comma in the last patch. refs #1295
david-sarah [Wed, 14 Mar 2012 23:50:40 +0000 (23:50 +0000)]
Fix a missing comma in the last patch. refs #1295

12 years agoTemporarily suppress the DeprecationWarning about IFinishableConsumer; it's irritatin...
david-sarah [Wed, 14 Mar 2012 23:47:29 +0000 (23:47 +0000)]
Temporarily suppress the DeprecationWarning about IFinishableConsumer; it's irritating, but not in a way that is likely to make me fix the underlying issue (#1525) any sooner :-). refs #1295

12 years agominor: hush pyflakes, move pycryptopp dep to unconditional section
Brian Warner [Wed, 14 Mar 2012 06:13:51 +0000 (23:13 -0700)]
minor: hush pyflakes, move pycryptopp dep to unconditional section

Also change Makefile's "pyflakes" rule to emit less output, so buildbot will
count errors properly.

12 years agoUpdate find_links URLs in setup.cfg to https://tahoe-lafs.org. This is not just a...
david-sarah [Tue, 13 Mar 2012 20:30:41 +0000 (20:30 +0000)]
Update find_links URLs in setup.cfg to https://tahoe-lafs.org. This is not just a doc change; look out for compatibility problems.

12 years agoMinor updates to URLs.
david-sarah [Tue, 13 Mar 2012 20:28:53 +0000 (20:28 +0000)]
Minor updates to URLs.

12 years agoUpdate more links from http: to https: in documentation and comments.
david-sarah [Tue, 13 Mar 2012 20:26:54 +0000 (20:26 +0000)]
Update more links from http: to https: in documentation and comments.

12 years agonew introducer: signed extensible dictionary-based messages! refs #466
Brian Warner [Sun, 20 Nov 2011 10:21:32 +0000 (02:21 -0800)]
new introducer: signed extensible dictionary-based messages! refs #466

This introduces new client and server halves to the Introducer (renaming the
old one with a _V1 suffix). Both have fallbacks to accomodate talking to a
different version: the publishing client switches on whether the server's
.get_version() advertises V2 support, the server switches on which
subscription method was invoked by the subscribing client.

The V2 protocol sends a three-tuple of (serialized announcement dictionary,
signature, pubkey) for each announcement. The V2 server dispatches messages
to subscribers according to the service-name, and throws errors for invalid
signatures, but does not otherwise examine the messages. The V2 receiver's
subscription callback will receive a (serverid, ann_dict) pair. The
'serverid' will be equal to the pubkey if all of the following are true:

  the originating client is V2, and was told a privkey to use
  the announcement went through a V2 server
  the signature is valid

If not, 'serverid' will be equal to the tubid portion of the announced FURL,
as was the case for V1 receivers.

Servers will create a keypair if one does not exist yet, stored in
private/server.privkey .

The signed announcement dictionary puts the server FURL in a key named
"anonymous-storage-FURL", which anticipates upcoming Accounting-related
changes in the server advertisements. It also provides a key named
"permutation-seed-base32" to tell clients what permutation seed to use. This
is computed at startup, using tubid if there are existing shares, otherwise
the pubkey, to retain share-order compatibility for existing servers.

12 years ago'tahoe admin generate-keypair/derive-pubkey': add Ed25519 keypair commands
Brian Warner [Mon, 12 Mar 2012 22:02:58 +0000 (15:02 -0700)]
'tahoe admin generate-keypair/derive-pubkey': add Ed25519 keypair commands

Also add parse_privkey/parse_pubkey tools to util.keyutil

12 years agobump pycryptopp dependency to >=0.6.0, to get ed25519 signatures
Brian Warner [Wed, 14 Mar 2012 01:09:14 +0000 (18:09 -0700)]
bump pycryptopp dependency to >=0.6.0, to get ed25519 signatures

This is for the upcoming #466 signed-introducer code.

12 years agoUpdate copyright notices. refs #1686
david-sarah [Tue, 13 Mar 2012 20:50:57 +0000 (20:50 +0000)]
Update copyright notices. refs #1686

12 years agoMake the link on the Welcome page to 'https://tahoe-lafs.org/', not 'http:'. Includes...
david-sarah [Thu, 8 Mar 2012 23:17:58 +0000 (23:17 +0000)]
Make the link on the Welcome page to 'https://tahoe-lafs.org/', not 'http:'. Includes a test. fixes #1682

12 years agoUpdate various references to allmydata.org or http://tahoe-lafs.org in comments,...
david-sarah [Thu, 8 Mar 2012 23:17:19 +0000 (23:17 +0000)]
Update various references to allmydata.org or http://tahoe-lafs.org in comments, to https://tahoe-lafs.org. refs #1682

12 years agoSuppress a warning from win32eventreactor on Windows (patch v2). fixes #1681
david-sarah [Mon, 27 Feb 2012 19:03:17 +0000 (19:03 +0000)]
Suppress a warning from win32eventreactor on Windows (patch v2). fixes #1681

12 years agoAdd nickname/nodeid to storage-status web page. Closes #1204.
Brian Warner [Tue, 13 Mar 2012 02:57:36 +0000 (19:57 -0700)]
Add nickname/nodeid to storage-status web page. Closes #1204.

Also add tahoe.css to the page, to make it look slightly prettier.

12 years agoadd some quick tests of the introducer/web improvements
Brian Warner [Mon, 12 Mar 2012 19:35:36 +0000 (12:35 -0700)]
add some quick tests of the introducer/web improvements

12 years agointroducer web page: add CSS styling, roughly match client Welcome page
Brian Warner [Wed, 7 Mar 2012 02:25:05 +0000 (18:25 -0800)]
introducer web page: add CSS styling, roughly match client Welcome page

Also add /static and the top-level /tahoe.css -type stuff to the introducer's
web server.

12 years agotahoe.css: fix #section typo, update welcome.xhtml to match
Brian Warner [Wed, 7 Mar 2012 02:22:41 +0000 (18:22 -0800)]
tahoe.css: fix #section typo, update welcome.xhtml to match

The "#section" declaration (which matches id="section") should have been
".section" (which matches class="section").

The welcome page has a feature that I actually liked: the little "This
Client" sidebar sits just to the right of the start of the Controls block.
Fixing .section broke that (the clear:both introduces a gap, forcing the
Controls block to start strictly below the bottom of the This Client block).
So I also removed class="section" from the Controls block to allow them to
share the horizontal space again.

12 years agomake provisioning/reliability work in the new location, fix tests
Brian Warner [Wed, 15 Feb 2012 18:24:42 +0000 (18:24 +0000)]
make provisioning/reliability work in the new location, fix tests

12 years agoremove 'provisioning'/'reliability' from WUI, add to misc/operations_helpers
Brian Warner [Wed, 15 Feb 2012 18:18:53 +0000 (18:18 +0000)]
remove 'provisioning'/'reliability' from WUI, add to misc/operations_helpers

Also remove docs related to reliability/provisioning pages

12 years agoprovisioning.py: update disk sizes and usage numbers
Brian Warner [Mon, 13 Feb 2012 15:57:08 +0000 (15:57 +0000)]
provisioning.py: update disk sizes and usage numbers

12 years agoconfiguration.rst: another attempt to fix formatting of sample tahoe.cfg.
david-sarah [Tue, 31 Jan 2012 00:09:49 +0000 (00:09 +0000)]
configuration.rst: another attempt to fix formatting of sample tahoe.cfg.

12 years agoconfiguration.rst: remove the obsolete sizelimit option from the sample tahoe.cfg...
david-sarah [Tue, 31 Jan 2012 00:06:43 +0000 (00:06 +0000)]
configuration.rst: remove the obsolete sizelimit option from the sample tahoe.cfg. Also fix the RST formatting of blank lines in the file.

12 years agoAdd a Python 3 blocker to setup.py, to display a better error message when it is...
david-sarah [Fri, 27 Jan 2012 01:55:25 +0000 (01:55 +0000)]
Add a Python 3 blocker to setup.py, to display a better error message when it is run under Python 3.

12 years agoEnsure that verification proceeds and stops when appropriate.
Kevan [Fri, 13 Jan 2012 02:11:42 +0000 (18:11 -0800)]
Ensure that verification proceeds and stops when appropriate.

The removed assertions are appropriate for a download that seeks to
return plaintext to a caller; if we don't have at least k active remote
shares, then we can't hope to do that. They're not appropriate for a
verification operation; a user can try to verify a file that has fewer
than k shares available, so that shouldn't be treated as an error.
Instead, we proceed with fewer than k shares, and ensure that we
terminate the download if we have no shares at all and we're verifying.