aboutsummaryrefslogtreecommitdiff
path: root/Assistant
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-05-19 16:19:33 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-05-19 16:19:33 -0400
commitf5480e80f4e3f3299a4d738f413460c0dbff35f8 (patch)
tree31a0e669f538a596222efa08b759380a9538be20 /Assistant
parent897d9fb51740379c824ccf53bfb86a31c771ab39 (diff)
assistant: When there are multiple remotes giving different ways to access the same repository, honor remote cost settings and use the cheapest available.
Note that TransferInfo does not always contain the Remote, although any transfer added to the TransferQueue does have a Remote in its TransferInfo. The transferkeys command still accepts a UUID, which is useful to handle upgrades, where an old assistant version runs the new transferkeys. This commit was sponsored by Kalle Svensson.
Diffstat (limited to 'Assistant')
-rw-r--r--Assistant/TransferSlots.hs2
-rw-r--r--Assistant/TransferrerPool.hs6
2 files changed, 4 insertions, 4 deletions
diff --git a/Assistant/TransferSlots.hs b/Assistant/TransferSlots.hs
index a36a3ee32..cafbb7bdf 100644
--- a/Assistant/TransferSlots.hs
+++ b/Assistant/TransferSlots.hs
@@ -149,7 +149,7 @@ genTransfer t info = case transferRemote info of
- usual cleanup. However, first check if something else is
- running the transfer, to avoid removing active transfers.
-}
- go remote transferrer = ifM (liftIO $ performTransfer transferrer t $ associatedFile info)
+ go remote transferrer = ifM (liftIO $ performTransfer transferrer t info)
( do
maybe noop
(void . addAlert . makeAlertFiller True
diff --git a/Assistant/TransferrerPool.hs b/Assistant/TransferrerPool.hs
index 6ad9b6b99..cfd6e01fa 100644
--- a/Assistant/TransferrerPool.hs
+++ b/Assistant/TransferrerPool.hs
@@ -56,9 +56,9 @@ checkTransferrerPoolItem program batchmaker i = case i of
{- Requests that a Transferrer perform a Transfer, and waits for it to
- finish. -}
-performTransfer :: Transferrer -> Transfer -> AssociatedFile -> IO Bool
-performTransfer transferrer t f = catchBoolIO $ do
- T.sendRequest t f (transferrerWrite transferrer)
+performTransfer :: Transferrer -> Transfer -> TransferInfo -> IO Bool
+performTransfer transferrer t info = catchBoolIO $ do
+ T.sendRequest t info (transferrerWrite transferrer)
T.readResponse (transferrerRead transferrer)
{- Starts a new git-annex transferkeys process, setting up handles