Yesterday, added per-remote, per-key state storage. This is exported via the external special remote protocol, and I expect to use it at least for Tahoe Lafs.
Also, made the assistant write ssh config files with better permissions, so ssh won't refuse to use them. (The only case I know of where that happened was on Windows.)
Today, made addurl
and importfeed
honor annex.diskreserve. Found out about
this the hard way, when an importfeed cron job filled up my server with
youtube videos. I should probably also make import
honor
annex.diskreserve.
I've been working, so far inconclusively, on making the assistant deal with remotes that might open a long duration network connection. Problem being that if the connection is lost, and the remote is not smart enough to reconnect, all further use of it could fail.
In a restarttransferrer
branch, I have made the assistant start separate
transferkeys
processes for each remote. So if a remote starts to
fail, the assistant can stop its transferkeys
process, and restart it,
solving the problem.
But, if a resource needed for a remote is not available, this degrades to every transfer attempt to that remote restarting it. So I don't know if this is the right approach.
Other approaches being considered include asking that implementors of external special remotes deal with reconnection themselves (Tobias, do you deal with this in your remotes?), or making the assistant only restart failing remotes after it detects there's been a network connection change.