summaryrefslogtreecommitdiff
path: root/Assistant/DaemonStatus.hs
Commit message (Collapse)AuthorAge
* flip catchDefaultIOGravatar Joey Hess2012-09-17
|
* add an alert while a locally initiated pairing request is in progressGravatar Joey Hess2012-09-09
| | | | Has a button to cancel the request.
* first pass at alert buttonsGravatar Joey Hess2012-09-08
| | | | | | | | | They work fine. But I had to go to a lot of trouble to get Yesod to render routes in a pure function. It may instead make more sense to have each alert have an assocated IO action, and a single route that runs the IO action of a given alert id. I just wish I'd realized that before the past several hours of struggling with something Yesod really doesn't want to allow.
* implement pair request broadcastsGravatar Joey Hess2012-09-08
| | | | | | | | | | Pair requests are sent on all network interfaces, and contain the best available hostname to use to contact the host on that interface. Added a pairing in progress page. Revert "reduce some boilerplate using ghc extensions", because it caused overlapping instances for Text.
* display errors when any named thread crashesGravatar Joey Hess2012-09-06
|
* preserve bytesComplete when updating a transfer infoGravatar Joey Hess2012-08-31
| | | | Avoids flicker to 0% when resuming a paused transfer.
* fix alterTransferInfoGravatar Joey Hess2012-08-31
| | | | don't want to stomp over fields other than the ones being changed
* fix resume buttonGravatar Joey Hess2012-08-29
| | | | | Change alterTransferInfo to not merge in old values, including transferPaused.
* avoid possibly re-adding a removed transfer when updating its infoGravatar Joey Hess2012-08-28
| | | | Doesn't fix the bug I thought it'd fix, but is clearly correct.
* add support for readonly remotesGravatar Joey Hess2012-08-26
| | | | | | | Currently only the web special remote is readonly, but it'd be possible to also have readonly drives, or other remotes. These are handled in the assistant by only downloading from them, and never trying to upload to them.
* don't exclude special remotes from the knownRemotes list used by the assistantGravatar Joey Hess2012-08-26
| | | | But do exclude them when pushing out changes.
* avoid requeueing a download from a remote that no longer has a keyGravatar Joey Hess2012-08-24
|
* remove pointless bracketGravatar Joey Hess2012-08-23
|
* avoid unnecessary transfer scans when syncing a disconnected remoteGravatar Joey Hess2012-08-22
| | | | | | | | | | | | | | | | | | | | Found a very cheap way to determine when a disconnected remote has diverged, and has new content that needs to be transferred: Piggyback on the git-annex branch update, which already checks for divergence. However, this does not check if new content has appeared locally while disconnected, that should be transferred to the remote. Also, this does not handle cases where the two git repos are in sync, but their content syncing has not caught up yet. This code could have its efficiency improved: * When multiple remotes are synced, if any one has diverged, they're all queued for transfer scans. * The transfer scanner could be told whether the remote has new content, the local repo has new content, or both, and could optimise its scan accordingly.
* implement pausing of transfersGravatar Joey Hess2012-08-10
| | | | | | A paused transfer's thread keeps running, keeping the slot in use. This is intentional; pausing a transfer should not let other queued transfers to run in its place.
* process group killingGravatar Joey Hess2012-08-10
| | | | | | | | | | | | | | | | | | | | This seems to work pretty well. Handled the process groups like this: - git-annex processes started by the assistant for transfers are run in their own process groups. - otherwise, rely on the shell to allocate a process group for git-annex There is potentially a problem if some other program runs git-annex directly (not using sh -c) The program and git-annex would then be in the same process group. If that git-annex starts a transfer and it's canceled, the program would also get killed. May or may not be a desired result. Also, the new updateTransferInfo probably closes a race where it was possible for the thread id to not be recorded in the transfer info, if the transfer info file from the transfer process is read first.
* added an alert after a file transferGravatar Joey Hess2012-08-06
|
* fix kqueue buildGravatar Joey Hess2012-07-30
|
* implement server-side alert closingGravatar Joey Hess2012-07-30
| | | | | Rather than using bootstrap's client-side closing. Now closed alerts stay closed.
* prune old filler alertsGravatar Joey Hess2012-07-30
|
* make old activiy alerts stay visibleGravatar Joey Hess2012-07-30
| | | | | | They're updated to show whether the activity succeeded or failed. This adds several TODOs to the code to fix later.
* better ordering of alertsGravatar Joey Hess2012-07-29
|
* add alerts to DaemonStatusGravatar Joey Hess2012-07-29
|
* refactorGravatar Joey Hess2012-07-29
|
* send notifications when the TransferQueue is changedGravatar Joey Hess2012-07-28
| | | | | | The fun part was making it move things from TransferQueue to currentTransfers entirely atomically. Which will avoid inconsistent display if the WebApp renders the current status at just the wrong time. STM to the rescue!
* move DaemonStatus manipulation out of the Annex monad to IOGravatar Joey Hess2012-07-28
| | | | | | I've convinced myself that nothing in DaemonStatus can deadlock, as it always keepts the TMVar full. That was the only reason it was in the Annex monad.
* add a NotificationBroadcaster to DaemonStatusGravatar Joey Hess2012-07-28
| | | | | First use of it is to make the status checkpointer thread block until there is really a change to the status.
* pull from newly mounted git remotesGravatar Joey Hess2012-07-22
|
* wait on child transfer processes, and invalidate cacheGravatar Joey Hess2012-07-06
| | | | | | There's still a bug; if the child updates its transfer info file, then the data from it will superscede the TransferInfo, losing the info that we should wait on this child.
* wrote transfer threadGravatar Joey Hess2012-07-05
| | | | finally!
* queue Uploads of newly added files to remotesGravatar Joey Hess2012-07-05
| | | | | | | Added knownRemotes to DaemonStatus. This list is not entirely trivial to calculate, and having it here should make it easier to add/remove remotes on the fly later on. It did require plumbing the daemonstatus through to some more threads.
* added currentTransfersGravatar Joey Hess2012-07-02
|
* licenseGravatar Joey Hess2012-06-23
|
* check for unstaged old symlinks in the sanity checkerGravatar Joey Hess2012-06-13
|
* add sanity checker threadGravatar Joey Hess2012-06-13
| | | | Currently wakes up once a day, and does nothing. :)
* tweakGravatar Joey Hess2012-06-13
|
* finish daemon status threadGravatar Joey Hess2012-06-13
|
* implement daemon status serialization to a fileGravatar Joey Hess2012-06-13
| | | | | Also afterLastDaemonRun, with 10 minute slop to handle majority of clock skew issues.
* reorganizeGravatar Joey Hess2012-06-13