Zooko O'Whielacronx
e89edf8803
fix a few unused imports and suchlike, discovered by pyflakes
2008-02-13 07:38:08 -07:00
Zooko O'Whielacronx
3f8df27063
use base62 encoding for storage indexes, on disk and in verifier caps, and in logging and diagnostic tools
...
base62 encoding fits more information into alphanumeric chars while avoiding the troublesome non-alphanumeric chars of base64 encoding. In particular, this allows us to work around the ext3 "32,000 entries in a directory" limit while retaining the convenient property that the intermediate directory names are leading prefixes of the storage index file names.
2008-02-12 20:48:37 -07:00
Brian Warner
1f7b980a51
catalog-shares: add expiration time to output
2008-02-11 18:44:54 -07:00
Brian Warner
ca27b8e5ad
add 'tahoe catalog-shares' tool, to make a one-line summary of each share file. This can help do cross-server correlation of sharefiles, looking for anomalies
2008-02-11 18:17:01 -07:00
Brian Warner
d6fb0bf039
tahoe dump-share: remove --filename option, just take it from argv
2008-02-06 14:15:33 -07:00
Brian Warner
b4c9409138
dump-share: tweak formatting a little bit, to make dumping multiple shares in a row easier to read
2008-02-06 13:37:43 -07:00
Brian Warner
2dcac796e9
add 'tahoe find-shares' command, to locate share files on a local node's disk
2008-02-06 13:19:51 -07:00
Brian Warner
e92a2b5ab2
dump-cap: include UEB_hash in output
2008-02-06 12:48:19 -07:00
Brian Warner
4cdb252d5a
cli scripts: remove the for-educational-purposes standalone clauses. Closes #261 .
2008-01-16 00:08:51 -07:00
Brian Warner
37b7f136ce
'tahoe dump-cap': accept http:// -prefixed URLs too
2008-01-14 14:12:27 -07:00
Brian Warner
6ca0efeef6
add 'tahoe dump-cap' command, to show storage index, lease secrets, etc
2008-01-14 13:43:25 -07:00
robk-tahoe
198f593cad
fix dumb typo in tahoe run
2008-01-10 20:14:00 -07:00
robk-tahoe
0b097ac485
change default node-directory on windows to do registry lookup, not ~/.tahoe
2008-01-10 19:32:18 -07:00
robk-tahoe
8f4f3bf6cc
add 'run' command to tahoe
...
adds a 'run' commands to bin/tahoe / tahoe.exe
it loads a client node into the tahoe process itself,
running in the base dir specified by --basedir/-C and
defaulting to the current working dir.
it runs synchronously, and the tahoe process blocks until
the reactor is stopped.
2008-01-09 19:54:12 -07:00
robk-tahoe
08f445a562
added a 'repl' command to tahoe.exe
...
this is probably not of very high utility in the unix case of bin/tahoe
but is useful when working with native builds, e.g. py2exe's tahoe.exe,
to examine and debug the runtime environment, linking problems etc.
2008-01-09 19:19:52 -07:00
robk-tahoe
4e3f089257
tweak running to make node start/stop code optional
...
add a 'install_node_control' flag to runner.run(), default True
this enables the start/stop node commands
which are not too useful on windows
2008-01-08 19:51:18 -07:00
Zooko O'Whielacronx
4223f7216d
rename "dir-uri" to "dir-cap"
2008-01-08 10:41:27 -07:00
robk-tahoe
6fa70befd5
added "tahoe webopen" command
...
taking the same arguments as tahoe ls, it does a webbrowser.open to the page
specified by those args. hence "tahoe webopen" will open a browser to the
root dir specified in private/root_dir.cap by default.
this might be a good alternative to the start.html page.
2008-01-04 18:34:10 -07:00
Zooko O'Whielacronx
ab4303609d
cmdline: give useful error messages about the --dir-uri and ~/.tahoe/private/root_dir.cap
2008-01-03 17:35:35 -07:00
Zooko O'Whielacronx
23961448da
a few formatting tidy-ups
2008-01-03 17:14:19 -07:00
Zooko O'Whielacronx
5995d11a3c
remove automatic private dir
...
* rename my_private_dir.cap to root_dir.cap
* move it into the private subdir
* change the cmdline argument "--root-uri=[private]" to "--dir-uri=[root]"
2008-01-03 17:02:05 -07:00
Brian Warner
7fb37209ee
create_node.py: need to create private/ dir in create-client so we can touch the my_private_dir.cap file
2007-12-18 15:42:18 -07:00
Brian Warner
60d6728ab3
oops, touch private/my_private_dir.cap when creating the client
2007-12-18 15:36:59 -07:00
Brian Warner
8b9f86fb17
remove the slash-to-bang conversion from CLI tools and webapi.txt
2007-12-17 20:22:26 -07:00
Zooko O'Whielacronx
a983f6d60c
rename "my_private_dir.uri" to "my_private_dir.cap"
2007-12-17 18:35:25 -07:00
Zooko O'Whielacronx
caa69b007e
refactor the feature of getting versions of packages, include the version numbers of more of the packages that we use
2007-12-12 19:37:37 -07:00
Brian Warner
d6f2dbbac7
mutable: handle bad hashes, improve test coverage, rearrange slightly to facilitate these
2007-11-13 23:08:15 -07:00
Zooko O'Whielacronx
59d6c3c822
decentralized directories: integration and testing
...
* use new decentralized directories everywhere instead of old centralized directories
* provide UI to them through the web server
* provide UI to them through the CLI
* update unit tests to simulate decentralized mutable directories in order to test other components that rely on them
* remove the notion of a "vdrive server" and a client thereof
* remove the notion of a "public vdrive", which was a directory that was centrally published/subscribed automatically by the tahoe node (you can accomplish this manually by making a directory and posting the URL to it on your web site, for example)
* add a notion of "wait_for_numpeers" when you need to publish data to peers, which is how many peers should be attached before you start. The default is 1.
* add __repr__ for filesystem nodes (note: these reprs contain a few bits of the secret key!)
* fix a few bugs where we used to equate "mutable" with "not read-only". Nowadays all directories are mutable, but some might be read-only (to you).
* fix a few bugs where code wasn't aware of the new general-purpose metadata dict the comes with each filesystem edge
* sundry fixes to unit tests to adjust to the new directories, e.g. don't assume that every share on disk belongs to a chk file.
2007-12-03 14:52:42 -07:00
Zooko O'Whielacronx
a50cea61bd
remove tahoe_put-web2ish.py
...
It isn't currently used, and I don't remember what part of its behavior was so much better than tahoe_put.py, and Brian has subsequently improved tahoe_put.py.
2007-11-19 14:07:28 -07:00
Brian Warner
247bfe8d58
mutable: fix usage of NeedMoreDataError
2007-11-07 17:52:09 -07:00
Zooko O'Whielacronx
3c222bbe26
setup: print out the version number of pycryptopp in "tahoe --version"
2007-11-07 10:11:56 -07:00
Brian Warner
cc5d35cc07
dump-share: emit SDMF information too
2007-11-06 19:46:31 -07:00
Brian Warner
fdbe692810
add container_size to mutable dump-share output
2007-11-06 19:31:22 -07:00
Brian Warner
ddf4d23bef
test_system.mutable: add test coverage for the 'dump-share' debug command
2007-11-06 19:10:49 -07:00
Brian Warner
0b2f62466b
debug: add mutable-slot support to 'dump-share' command
2007-11-06 18:55:55 -07:00
Brian Warner
e304c74f8f
trailing-whitespace eradication, no functional changes
2007-11-01 15:34:07 -07:00
Brian Warner
8465e99fe4
trailing-whitespace eradication, no functional changes
2007-11-01 15:29:12 -07:00
Brian Warner
3425cd9202
trailing-whitespace eradication, no functional changes
2007-11-01 15:29:03 -07:00
Brian Warner
433802f5ca
trailing-whitespace eradication, no functional changes
2007-11-01 15:28:58 -07:00
Brian Warner
bf29cb38ed
trailing-whitespace eradication, no functional changes
2007-11-01 15:28:54 -07:00
Brian Warner
f192ffc18d
trailing-whitespace eradication, no functional changes
2007-11-01 15:28:50 -07:00
Brian Warner
5491339912
'tahoe stop': use SIGKILL, clean up twistd.pid ourselves, wait forever
2007-10-29 11:43:35 -07:00
Brian Warner
afcc8107af
tahoe_ls: list individual files
2007-10-21 12:33:06 -07:00
Zooko O'Whielacronx
81c56b8e53
shush, pyflakes
2007-10-26 18:53:21 -07:00
Zooko O'Whielacronx
81e0820904
cli: use urllib.quote() on vdrive-path arguments before passing them through HTTP
2007-10-26 18:30:44 -07:00
Zooko O'Whielacronx
bba7b81456
startstop_node: use the new find_exe module
2007-10-15 10:25:15 -07:00
Brian Warner
f0e727867a
cli: simplify code by using stdlib's httplib module
2007-10-11 22:29:23 -07:00
Brian Warner
4361b32f2d
cli: implement 'mv'. Closes #162 .
2007-10-11 20:31:48 -07:00
Brian Warner
3709b343ab
tahoe_get.py: remove unused import
2007-10-11 19:47:40 -07:00
Brian Warner
8985b6565d
cli: add test coverage
2007-10-11 19:20:41 -07:00
Brian Warner
479abae92f
cli: fix usage to refer to 'tahoe', not 'allmydata'. Closes #154 .
2007-10-11 15:37:52 -07:00
Brian Warner
e1f604f7cd
change our default HTTP port to 8123
2007-10-11 13:17:23 -07:00
Brian Warner
ee72a5adfd
rename client.tac to tahoe-client.tac, so that 'ps ax|grep tahoe' works. Closes #156 .
2007-10-11 02:48:06 -07:00
Brian Warner
a76898244b
create_node.py: allow config['webport'] to be missing, for check_memory
2007-10-11 02:19:59 -07:00
Brian Warner
0f000784ce
create_node: use a webport by default, on localhost:8011
2007-10-11 02:01:23 -07:00
Brian Warner
7fd1964c6f
runner: make most commands use ~/.tahoe by default (create-client, start/stop/restart, all CLI tools, but *not* create-introducer
2007-10-11 01:54:23 -07:00
Brian Warner
a470947cc3
cli: use urllib.escape on all URIs
2007-10-11 01:34:44 -07:00
Brian Warner
5b28411b04
cli: add --node-directory and --root-uri to all commands
2007-10-11 00:30:36 -07:00
Brian Warner
ec8781e587
'tahoe restart': re-enable --force option, which was accidentally lost
2007-10-10 20:10:03 -07:00
Brian Warner
51b59b1219
dump-share: clarify the label on the size of the original file
2007-09-26 15:00:59 -07:00
Zooko O'Whielacronx
e3d782da52
cli: use port 8123 as the example port number
2007-09-24 13:17:27 -07:00
Zooko O'Whielacronx
93efd2902e
startstop_node.py: use SIGINT instead of SIGTERM to stop the node ( fixes #143 )
2007-09-23 07:06:54 -07:00
Zooko O'Whielacronx
594a104c71
startstop_node.py: fix bug with options passed to restart and enable restart --profile
2007-09-21 15:48:15 -07:00
Zooko O'Whielacronx
3e4616f4ad
cli: add --profile flag
2007-09-21 15:03:47 -07:00
Zooko O'Whielacronx
20079e3019
startstop_node.py: don't pass config to do_start() and do_stop()
2007-09-21 15:03:15 -07:00
Zooko O'Whielacronx
28b2c19f1e
startstop_node.py: find twistd.py in sys.prefix/scripts if there isn't a twistd executable on the path
2007-09-21 14:45:20 -07:00
Zooko O'Whielacronx
f0b427485b
startstop_node.py: remove debug printout which breaks unit tests
2007-09-20 17:02:36 -07:00
Zooko O'Whielacronx
c2e310825d
startstop_node.py: improve the hack of launching twistd
...
Thanks to Brian for helping me figure out the cleaner way to do this: take the
first result from which("twistd"), and if it has the extension ".bat" or
".exe" then execute it, else execute python and give it as the first argument.
2007-09-20 12:37:50 -07:00
Brian Warner
e2f19825d9
startstop_node.py: improve test coverage a little bit
2007-09-19 01:50:27 -07:00
Brian Warner
cf69accfb6
startstop_node.py: use SIGINT instead of SIGTERM, to allow the node a chance to clean up
2007-09-17 02:24:21 -07:00
Brian Warner
6cd11037c6
debug: remove the 'dump-share-leases' command, it is subsumed by 'dump-share'
2007-09-17 01:44:39 -07:00
Brian Warner
277e720f7c
storage: add version number to share data. Closes #90 .
2007-09-04 09:00:24 -07:00
Brian Warner
dbcabc1142
debug: 'dump-uri-extension' command becomes 'dump-share', add 'dump-share-leases'. Both display leases.
2007-09-02 14:48:20 -07:00
Brian Warner
b620d0955b
debug.py: add share-overhead size info to dump-uri-extension
2007-08-26 23:42:39 -07:00
Brian Warner
ac358fc32f
tahoe_put.py: hush pyflakes by removing unused 'sys' import
2007-08-17 16:29:50 -07:00
Zooko O'Whielacronx
0c22044f7e
command-line: remove the --vdrive option (it is now hardcoded to "global")
2007-08-23 13:27:00 -07:00
Zooko O'Whielacronx
9996836d23
command-line: fix ticket #111 by requiring input to be a local file and sending Content-Length header
2007-08-17 14:59:49 -07:00
Zooko O'Whielacronx
594912e334
command-line: fix a few bugs in the "execute this python file" way to execute rm
2007-08-17 14:17:31 -07:00
Brian Warner
3e2d1e28eb
tahoe_put-web2ish.py: clean up imports to be pyflakes-compliant, add newline to output
2007-08-16 17:47:52 -07:00
Brian Warner
2014662b47
cli.py: fix typo in synopsis
2007-08-16 17:47:24 -07:00
Zooko O'Whielacronx
a12ef1ae82
command-line: add "rm", and tidy-up variable names, and make it so "allmydata-tahoe spam" prints a usage message instead of returning silently
2007-08-17 13:23:16 -07:00
Zooko O'Whielacronx
e554962ac3
command-line: remove some redundant options checking
2007-08-17 13:06:43 -07:00
Zooko O'Whielacronx
bffd0c97f5
command-line: fix all three commands and all two ways to invoke them to require node-url and give a useful usage string if node-url is absent or of the wrong form
2007-08-17 12:54:47 -07:00
Zooko O'Whielacronx
e4f07a975f
tahoe_put.py: don't treat "^HTTP 200 OK" appearing somewhere in the body as if it appeared in the header
2007-08-17 12:06:41 -07:00
Zooko O'Whielacronx
7e8c6eb50b
tahoe_put.py: require node-url to be provided
2007-08-17 12:06:11 -07:00
Zooko O'Whielacronx
922663a7e2
cmdline: change "--server" to "--node-url" and make it have no default value
2007-08-16 16:53:27 -07:00
Zooko O'Whielacronx
1564987e6c
put now exits after doing its work, and it prints a terse message if 200 or 201, and a full dump of response elsewise
2007-08-16 16:30:39 -07:00
Zooko O'Whielacronx
6ed3a23c62
incomplete version of tahoe-put.py
...
It doesn't exit properly afterward, and it might not do the best things with non-success responses from the server.
(See tahoe-put-web2ish.py for an example of better response handling.)
2007-08-16 16:01:01 -07:00
Brian Warner
ceef80bee6
scripts: rearrange Options, make --version behave the same for all commands
2007-08-16 12:50:19 -07:00
Zooko O'Whielacronx
6c4fb6fd93
a first crack at the "put" command-line
...
There are actually two versions in this patch, one of which requires twisted.web2 and the other of which uses the Python standard library's socket module. The socketish one doesn't know when the web server is done so it hangs after doing its thing. (Oh -- maybe I should add an HTTP header asking the web server to close the connection when finished.) The web2ish one works better in that respect. Neither of them handle error responses from the server very well yet.
After lunch I intend to finish the socketish one.
To try one, mv src/allmydata/scripts/tahoe_put-{socketish,web2ish}.py src/allmydata/scripts/tahoe_put.py .
If you want to try the web2ish one, and you can't find a web2 package to install, you can get one from:
http://allmydata.org/~zooko/repos/twistedweb2snarf/
2007-08-16 12:15:38 -07:00
wilcoxjg
e13783cd6a
If do_stop attempts to stop a nonexistent process the OSError exception is caught (by errno) and handled tersely.
2007-08-09 08:57:45 -07:00
Zooko O'Whielacronx
524c9f1fc2
startstop_node now works if the logs directory already exists
...
Thanks to Arno and Arch for pointing this out.
2007-08-08 21:43:48 -07:00
Brian Warner
2ba415bd3e
move nodelogs from BASEDIR/twistd.log* to BASEDIR/logs/twistd.log*, closes #61
2007-07-24 20:44:33 -07:00
Brian Warner
1d9a58977f
uri: implement URI-processing classes, IFileURI/IDirnodeURI, use internally
2007-07-21 15:40:36 -07:00
Brian Warner
9be3da03f6
runner.py: make 'allmydata-tahoe --version' emit version numbers of everything
2007-07-16 14:58:36 -07:00
Brian Warner
c6f52e379a
rename storageserver.py to just storage.py, since it has both server and client sides now
2007-07-13 17:25:45 -07:00
Brian Warner
4d868e6649
fix dump-uri-extension
2007-07-13 16:58:08 -07:00
Brian Warner
9238c61224
cli: implement 'get'
2007-07-11 10:26:19 -07:00
Zooko O'Whielacronx
32166c360a
tahoe_ls: remove a couple of vestigial or debugging bits
2007-07-10 19:46:40 -07:00
Brian Warner
b419b853ea
cli: implement 'allmydata-tahoe ls'
2007-07-10 19:37:37 -07:00
Brian Warner
d8a878da86
startstop_node.py: refactor find_twistd() out so it is only run when you need to start a node
2007-07-10 19:13:55 -07:00
Brian Warner
f22801aa33
runner.py: further refactoring
2007-07-10 19:05:18 -07:00
Brian Warner
4a16d20d85
runner.py: start to refactor into separate files
2007-07-10 18:41:52 -07:00
Brian Warner
944583a599
tahoe-ls.py: hush a pyflakes warning
2007-07-10 16:26:05 -07:00
Brian Warner
dec729028f
tahoe-ls.py: initial version of an 'ls' CLI utility
2007-07-10 15:34:55 -07:00
Zooko O'Whielacronx
2a4423ba14
tahoe-get.py: fix bug: actually respect the optional server argument
2007-07-09 18:47:16 -07:00
Zooko O'Whielacronx
9bc87f610c
tahoe-get.py: add optional target-local-file argument
2007-07-09 18:27:11 -07:00
Zooko O'Whielacronx
9641a6df22
tahoe-get.py: accept vdrive and server options (using optparse)
2007-07-09 18:20:02 -07:00
Zooko O'Whielacronx
8769f2eeba
tahoe-get.py: the first, most primitive command-line client
2007-07-09 18:19:53 -07:00
Brian Warner
5fbdce155c
runner.py: add --force flag to restart, to restart a not-already-running node
2007-07-07 11:17:32 -07:00
Brian Warner
b11fa20191
merge vdrive.py and filetable.py into a single dirnode.py
2007-06-26 17:16:58 -07:00
Brian Warner
912fc5a77e
runner.py: improve test coverage further: implement --quiet with StringIOs
2007-06-26 16:19:18 -07:00
Brian Warner
de24d3cd94
dump_uri_extension: improve test coverage of runner.py
2007-06-26 15:55:00 -07:00
Brian Warner
a505560bbe
improve test coverage of runner.py
2007-06-26 15:36:46 -07:00
Brian Warner
fb02488a8e
vdrive: switch to URI:DIR and URI:DIR-RO, providing transitive readonlyness
2007-06-25 13:23:51 -07:00
Brian Warner
1cb1faf11d
runner.py: add 'dump-directory-node' command
2007-06-15 00:47:05 -07:00
Brian Warner
e0dfedb0a6
add 'allmydata-tahoe dump-uri-extension' utility command
2007-06-11 18:38:21 -07:00
Brian Warner
208a932d10
runner.py: allow --multiple to enable starting/stopping/creating multiple nodes at once
2007-06-06 14:06:57 -07:00
Brian Warner
daa4c32381
runner.py: allow all directory-using commands (create/start/stop) to accept argv[-1] as well as --basedir
2007-06-06 11:37:19 -07:00
Brian Warner
4c7c5df41e
runner.py: spoke too soon. Really fix #51 this time.
2007-05-24 11:20:39 -07:00
Brian Warner
d0db98cc40
runner.py: expanduser() basedirs, so '~' works. Closes #51 .
2007-05-24 11:10:19 -07:00
Zooko O'Whielacronx
d19d1058e0
extirpate all references the "queen" and "metatracker"
...
This is a potentially disruptive and potentially ugly change to the code base,
because I renamed the object that serves in both roles from "Queen" to
"IntroducerAndVdrive", which is a bit of an ugly name.
However, I think that clarity is important enough in this release to make this
change. All unit tests pass. I'm now darcs recording this patch in order to
pull it to other machines for more testing.
2007-04-30 09:57:52 -07:00
Zooko O'Whielacronx
7b0db1c91f
make runner find twistd and invoke it with python
...
This makes allmydata-tahoe work on Windows, and probably doesn't make it fail on other platforms.
2007-04-26 23:14:13 -07:00
Brian Warner
813fdd70da
test_runner.py: improve test coverage a little bit
2007-04-23 21:28:19 -07:00
Brian Warner
d1a848e0a7
runner.py: add --quiet, use it from test cases
2007-04-23 21:17:13 -07:00
Brian Warner
491f96258e
test_runner.py: add some coverage for allmydata.scripts.runner, to create nodes
2007-04-19 18:56:45 -07:00
Brian Warner
a3c9ead74f
replace 'queen' with 'introducer' in a lot of places, but not all
2007-04-19 17:30:21 -07:00
Brian Warner
3376c2b0a1
node creation: be willing to utilize a pre-existing (but empty) directory
2007-03-29 14:32:28 -07:00
Zooko O'Whielacronx
4b4f5bbcba
change #!/usr/bin/python to #!/usr/bin/env python
...
Note that using "whatever version of python the name 'python' maps to in the current shell environment" is more error-prone that specifying which python you mean, such as by executing "/usr/bin/python setup.py" instead of executing "./setup.py". When you build tahoe (by running "make") it will make a copy of bin/allmydata-tahoe in instdir/bin/allmydata-tahoe with the shebang line rewritten to execute the specific version of python that was used when building instead of to execute "/usr/bin/env python".
However, it seems better that the default for lazy people be "whatever 'python' means currently" instead of "whatever 'python' meant to the manufacturer of your operating system".
2007-03-29 14:01:28 -07:00
Brian Warner
25ff9e1f97
complete the Introducer changes, separate out vdrive access, make everything work again
2007-03-27 16:12:11 -07:00
Brian Warner
3490378551
move all packages into src/, fix allmydata.Crypto build. Now you must perform a 'setup.py build' before using anything, and you must add the build directory (build/lib.linux-i686-2.4) to your PYTHONPATH before doing anything
2006-12-14 03:39:50 -07:00