noRetry,
stdRetry,
pickRemote,
- stallDetection,
) where
import Annex.Common
-- Upload, supporting canceling detected stalls.
upload :: Remote -> Key -> AssociatedFile -> RetryDecider -> NotifyWitness -> Annex Bool
-upload r key f d witness = stallDetection r >>= \case
- Nothing -> go (Just ProbeStallDetection)
- Just StallDetectionDisabled -> go Nothing
- Just sd -> runTransferrer sd r key f d Upload witness
+upload r key f d witness =
+ case remoteAnnexStallDetection (Remote.gitconfig r) of
+ Nothing -> go (Just ProbeStallDetection)
+ Just StallDetectionDisabled -> go Nothing
+ Just sd -> runTransferrer sd r key f d Upload witness
where
go sd = upload' (Remote.uuid r) key f sd d (action . Remote.storeKey r key f) witness
-- Download, supporting canceling detected stalls.
download :: Remote -> Key -> AssociatedFile -> RetryDecider -> NotifyWitness -> Annex Bool
-download r key f d witness = logStatusAfter key $ stallDetection r >>= \case
- Nothing -> go (Just ProbeStallDetection)
- Just StallDetectionDisabled -> go Nothing
- Just sd -> runTransferrer sd r key f d Download witness
+download r key f d witness = logStatusAfter key $
+ case remoteAnnexStallDetection (Remote.gitconfig r) of
+ Nothing -> go (Just ProbeStallDetection)
+ Just StallDetectionDisabled -> go Nothing
+ Just sd -> runTransferrer sd r key f d Download witness
where
go sd = getViaTmp (Remote.retrievalSecurityPolicy r) vc key f $ \dest ->
download' (Remote.uuid r) key f sd d (go' dest) witness
lessActiveFirst active a b
| Remote.cost a == Remote.cost b = comparing (`M.lookup` active) a b
| otherwise = comparing Remote.cost a b
-
-stallDetection :: Remote -> Annex (Maybe StallDetection)
-stallDetection r = maybe globalcfg (pure . Just) remotecfg
- where
- globalcfg = annexStallDetection <$> Annex.getGitConfig
- remotecfg = remoteAnnexStallDetection $ Remote.gitconfig r
import Assistant.Alert.Utility
import Assistant.Commits
import Assistant.Drop
-import Annex.Transfer (stallDetection)
import Types.Transfer
import Logs.Transfer
import Logs.Location
( do
debug [ "Transferring:" , describeTransfer t info ]
notifyTransfer
- sd <- liftAnnex $ stallDetection remote
+ let sd = remoteAnnexStallDetection
+ (Remote.gitconfig remote)
return $ Just (t, info, go remote sd)
, do
debug [ "Skipping unnecessary transfer:",
, annexRetry :: Maybe Integer
, annexForwardRetry :: Maybe Integer
, annexRetryDelay :: Maybe Seconds
- , annexStallDetection :: Maybe StallDetection
, annexAllowedUrlSchemes :: S.Set Scheme
, annexAllowedIPAddresses :: String
, annexAllowUnverifiedDownloads :: Bool
, annexForwardRetry = getmayberead (annexConfig "forward-retry")
, annexRetryDelay = Seconds
<$> getmayberead (annexConfig "retrydelay")
- , annexStallDetection =
- either (const Nothing) id . parseStallDetection
- =<< getmaybe (annexConfig "stalldetection")
, annexAllowedUrlSchemes = S.fromList $ map mkScheme $
maybe ["http", "https", "ftp"] words $
getmaybe (annexConfig "security.allowed-url-schemes")