Commit graph

2320 commits

Author SHA1 Message Date
Joey Hess
3e68c1c2fd add remote state logs
This allows a remote to store a piece of arbitrary state associated with a
key. This is needed to support Tahoe, where the file-cap is calculated from
the data stored in it, and used to retrieve a key later. Glacier also would
be much improved by using this.

GETSTATE and SETSTATE are added to the external special remote protocol.

Note that the state is left as-is even when a key is removed from a remote.
It's up to the remote to decide when it wants to clear the state.

The remote state log, $KEY.log.rmt, is a UUID-based log. However,
rather than using the old UUID-based log format, I created a new variant
of that format. The new varient is more space efficient (since it lacks the
"timestamp=" hack, and easier to parse (and the parser doesn't mess with
whitespace in the value), and avoids compatability cruft in the old one.

This seemed worth cleaning up for these new files, since there could be a
lot of them, while before UUID-based logs were only used for a few log
files at the top of the git-annex branch. The transition code has also
been updated to handle these new UUID-based logs.

This commit was sponsored by Daniel Hofer.
2014-01-03 16:35:57 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmH-n1yD04qmSeXKKzYaXFTN1ciFWVb5As
a1dd7d46e1 Added a comment: Can't seem to get the configuration I am looking for from the webapp 2014-01-02 23:41:44 +00:00
http://joeyh.name/
15a4588116 Added a comment 2014-01-02 00:15:28 +00:00
Joey Hess
8e3032df2d added GETWANTED, SETWANTED for Tobias's flickr remote
This was unexpectedly difficult because of a depdenency cycle. To parse a
preferred content expression involves several things that need to operate
on the list of remotes. Which needs Remote.External. The only way to avoid
this cycle (I tried breaking it at several points) was to skip parsing the
expression in SETWANTED.

That's sorta ok, because git-annex already has to deal with unparsable
preferred content expressions being stored, in order to handle eg,
upgrades. But I'm still not very happy that I cannot check it.

I feel this is a strong indication that I need to beware of further
bloating the special remote protocol interface.
2014-01-01 20:12:20 -04:00
Joey Hess
0e2fe4a7ab tweak this month 2013-12-31 17:50:11 -04:00
Joey Hess
9b5a74827c devblog 2013-12-31 17:44:35 -04:00
Joey Hess
8dbf230afe Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-31 16:39:50 -04:00
Joey Hess
341b72fd9a update roadmap 2013-12-31 15:55:11 -04:00
http://joeyh.name/
07ca84612d Added a comment 2013-12-31 19:16:16 +00:00
https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8
66dd1c3151 Added a comment 2013-12-31 18:20:32 +00:00
http://joeyh.name/
3a683ed3c7 Added a comment 2013-12-31 17:56:34 +00:00
Joey Hess
1eebb1ecec Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-31 13:53:34 -04:00
Joey Hess
ed1fcab6d7 external special remote protocol: Added GETUUID. 2013-12-31 13:50:18 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8
540cbd26be Added a comment: Feature requests 2013-12-31 14:05:45 +00:00
http://joeyh.name/
376ca250b1 Added a comment 2013-12-29 17:50:23 +00:00
Joey Hess
edc662ec20 mention that INITREMOTE is also called by git-annex enableremote 2013-12-29 13:44:39 -04:00
Joey Hess
054e4f17e2 implement PREPARE-FAILURE for Tobias 2013-12-29 13:39:25 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8
c96c0a367a Added a comment: Feature requests 2013-12-28 13:57:35 +00:00
Joey Hess
8cfaadf55c add webapp support to TODO 2013-12-27 16:37:58 -04:00
Joey Hess
445b7b41b9 add credential storage support for external special remotes & update example 2013-12-27 16:01:43 -04:00
Joey Hess
0014599dd9 hint about PROGRESS throttling 2013-12-27 14:39:56 -04:00
Joey Hess
3cd8f1bb13 todo: url lists 2013-12-27 13:09:35 -04:00
Joey Hess
9125a25738 defer SETSTATE and GETSTATE for now
TAHOE-LAFS may use these eventually, but that's TBD and none of git-annex's
own special remotes need that, except for the web special remote's urls.
2013-12-27 13:07:56 -04:00
Joey Hess
a7f3724e21 implement GETCONFIG and SETCONFIG
Changed protocol spec to make SETCONFIG only store it persistently when run
during INITREMOTE. I see no reason to support storing it persistently at
other times, and doing so would unnecessarily complicate the code.

Also, letting that be done would probably result in use for storing data that
doesn't really belong there, and special remote authors who don't
understand how the union merging works would probably be surprised the
results.
2013-12-27 12:37:23 -04:00
Joey Hess
0c972961bb update 2013-12-27 12:04:51 -04:00
Joey Hess
526a7bb2b4 improve comments 2013-12-27 02:56:52 -04:00
Joey Hess
3289155e28 don't send PREPARE before INITREMOTE
That complicated special remote programs, because they had to avoid making
PREPARE fail if some configuration is missing, because the remote might not
be initialized yet. Instead, complicate git-annex slightly by only sending
PREPARE immediately before some other request other than INITREMOTE (or
PREPARE of course).
2013-12-27 02:49:10 -04:00
Joey Hess
6d504b57e7 make some requests optional, simplify and future-proof protocol more 2013-12-27 02:11:06 -04:00
Joey Hess
0de9135bc0 external special remote documentation and example script 2013-12-26 18:15:18 -04:00
Joey Hess
38694ed582 simplify PROGRESS
Only one transfer will be running at a time, per external special remote.
2013-12-26 16:18:38 -04:00
Joey Hess
8803e36814 future-proofing 2013-12-25 20:04:31 -04:00
Joey Hess
1dc930063a basic data types and serialization for external special remote protocol
This is mostly straightforward, but did turn out quite nicely stronly
typed, and with a quite nice automatic tokenization and parsing of received
messages.

Made a few minor changes to the protocol to clear up ambiguities and make
it easier to parse. Note particularly that setting remote configuration
is moved to a separate command, which allows a remote to set arbitrary data.
2013-12-25 17:54:57 -04:00
Richard Hartmann
b11d88dd17 doc/: s/amoung/among/gi
Qouth ye olde [Wiktionary](http://en.wiktionary.org/wiki/amoung)

Archaic spelling of among.
2013-12-18 22:09:18 +01:00
http://joeyh.name/
4c5dc8df0e removed 2013-12-18 20:12:16 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnN99WKdpXGRJD8xpJxfsoumA9ZVCBjxrE
5b0dcfc4f5 Added a comment: nice 2013-12-18 18:12:18 +00:00
178.12.110.165
59f6cbdef6 poll vote (/sdcard/annex) 2013-12-18 01:06:53 +00:00
Joey Hess
f833f92cd0 remove done todo about upgrading 2013-12-17 16:31:34 -04:00
Joey Hess
0419f241a4 I think I've convinced myself that the assistant is safe on windows despite the lack of lsof 2013-12-17 14:07:37 -04:00
http://joeyh.name/
5ff2706c06 Added a comment 2013-12-16 20:42:24 +00:00
Joey Hess
081cfba131 Merge branch 'master' of ssh://git-annex.branchable.com 2013-12-16 16:33:17 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmicVKRM8vJX4wPuAwlLEoS2cjmFXQkjkE
72363ca72f Added a comment: not useful for "plain directory" special remote? 2013-12-16 20:10:19 +00:00
Joey Hess
81d051cad5 simplify 2013-12-16 11:36:19 -04:00
Joey Hess
145de01ebe use messages for query responses to allow communicating error 2013-12-16 10:30:28 -04:00
Joey Hess
87662ec14c rename HAS to CHECKPRESENT for consistency with hook special remote 2013-12-13 15:32:06 -04:00
Joey Hess
cb6a703660 refine protocol
More complicated, but less asynchronous, which will make it easier for
special remote programs to use it, at the expense of some added complexity
in git-annex.
2013-12-11 17:26:27 -04:00
Joey Hess
8223066716 update 2013-12-11 14:06:14 -04:00
Joey Hess
05e84b15cc clarify 2013-12-11 14:05:00 -04:00
Joey Hess
f4d847297c update 2013-12-11 14:04:03 -04:00
Joey Hess
d180b8e5af reorder 2013-12-11 14:02:49 -04:00
Joey Hess
37df2e3ebf layout 2013-12-11 14:02:10 -04:00